diff --git a/NAMESPACE b/NAMESPACE index 6909636f..f9d64e8f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -18,6 +18,7 @@ export(add_geolocate_control) export(add_globe_control) export(add_globe_minimap) export(add_h3j_source) +export(add_h3t_source) export(add_heatmap_layer) export(add_image) export(add_image_source) diff --git a/R/h3j-h3t.R b/R/h3j-h3t.R index e680d5cd..1080e3fa 100644 --- a/R/h3j-h3t.R +++ b/R/h3j-h3t.R @@ -47,3 +47,84 @@ add_h3j_source <- function(map, id, url) { } +# addH3TSource +#' Add a tiled hexagon source from the H3 geospatial indexing system. +#' +#' Wraps the [h3t](https://github.com/INSPIDE/h3j-h3t) tile protocol, which +#' registers a `h3tiles://` MapLibre protocol and fetches H3J-formatted JSON +#' tiles from a `{z}/{x}/{y}` endpoint. Unlike [add_h3j_source()], which pulls +#' a single H3J file, this source lets the map request only the cells visible +#' in the current viewport — on pan/zoom the protocol handler fires a fresh +#' request per tile. +#' +#' @param map A map object created by `maplibre()` or a `maplibre_proxy`. +#' @param id Unique source ID. +#' @param tiles A character vector of tile URL templates, each using the +#' `h3tiles://` scheme. The tokens `{z}`, `{x}`, `{y}` are substituted by +#' MapLibre on each tile request. Example: +#' `"h3tiles://h3t.example.com/{z}/{x}/{y}.h3t?q=..."`. +#' @param sourcelayer Name of the source layer that downstream `add_fill_layer()` +#' (or similar) calls reference via `source_layer`. Defaults to `id`. +#' @param geometry_type Either `"Polygon"` (hex boundaries) or `"Point"` (cell +#' centroids). Defaults to `"Polygon"`. +#' @param minzoom,maxzoom Zoom bounds for the source (MapLibre semantics). +#' @param promote_id Whether to promote the `h3id` property to the feature ID. +#' @param debug If `TRUE`, the protocol handler logs per-tile timing to the +#' browser console. +#' @references https://github.com/INSPIDE/h3j-h3t +#' @export +#' @examplesIf interactive() +#' maplibre(center = c(-119, 34), zoom = 5) |> +#' add_h3t_source( +#' id = "sardine", +#' tiles = "h3tiles://h3t.example.com/{z}/{x}/{y}.h3t?q=" +#' ) |> +#' add_fill_layer( +#' id = "sardine", +#' source = "sardine", +#' source_layer = "sardine", +#' fill_color = interpolate( +#' column = "value", values = c(0, 100), +#' stops = c("#ffffcc", "#e31a1c") +#' ), +#' fill_opacity = 0.7 +#' ) +add_h3t_source <- function(map, id, tiles, + sourcelayer = id, + geometry_type = c("Polygon", "Point"), + minzoom = 0, + maxzoom = 14, + promote_id = TRUE, + debug = FALSE) { + geometry_type <- match.arg(geometry_type) + if (is.character(tiles)) tiles <- as.list(tiles) + stopifnot(is.list(tiles), length(tiles) >= 1L) + + h3t_source <- list( + id = id, + tiles = tiles, + sourcelayer = sourcelayer, + geometry_type = geometry_type, + minzoom = minzoom, + maxzoom = maxzoom, + promoteId = promote_id, + debug = debug + ) + + if (inherits(map, "mapboxgl_proxy") || inherits(map, "maplibre_proxy")) { + proxy_class <- if (inherits(map, "mapboxgl_proxy")) "mapboxgl-proxy" else "maplibre-proxy" + map$session$sendCustomMessage( + proxy_class, + list( + id = map$id, + message = list(type = "add_h3t_sources", h3t_sources = list(h3t_source)) + ) + ) + } else { + map$x$h3t_sources <- c(map$x$h3t_sources, list(h3t_source)) + } + + map +} + + diff --git a/inst/htmlwidgets/lib/h3j-h3t/h3j_h3t.js b/inst/htmlwidgets/lib/h3j-h3t/h3j_h3t.js index 16631aa5..2d0140ec 100644 --- a/inst/htmlwidgets/lib/h3j-h3t/h3j_h3t.js +++ b/inst/htmlwidgets/lib/h3j-h3t/h3j_h3t.js @@ -1,3 +1,3 @@ -!function(A){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=A();else if("function"==typeof define&&define.amd)define([],A);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).h3j_h3t=A()}}((function(){return function A(e,r,t){function i(o,a){if(!r[o]){if(!e[o]){var f="function"==typeof require&&require;if(!a&&f)return f(o,!0);if(n)return n(o,!0);var s=new Error("Cannot find module '"+o+"'");throw s.code="MODULE_NOT_FOUND",s}var u=r[o]={exports:{}};e[o][0].call(u.exports,(function(A){return i(e[o][1][A]||A)}),u,u.exports,A,e,r,t)}return r[o].exports}for(var n="function"==typeof require&&require,o=0;o>3}if(n--,1===i||2===i)o+=A.readSVarint(),a+=A.readSVarint(),1===i&&(e&&f.push(e),e=[]),e.push(new t(o,a));else{if(7!==i)throw new Error("unknown command "+i);e&&e.push(e[0].clone())}}return e&&f.push(e),f},i.prototype.bbox=function(){var A=this._pbf;A.pos=this._geometry;for(var e=A.readVarint()+A.pos,r=1,t=0,i=0,n=0,o=1/0,a=-1/0,f=1/0,s=-1/0;A.pos>3}if(t--,1===r||2===r)(i+=A.readSVarint())a&&(a=i),(n+=A.readSVarint())s&&(s=n);else if(7!==r)throw new Error("unknown command "+r)}return[o,f,a,s]},i.prototype.toGeoJSON=function(A,e,r){var t,n,a=this.extent*Math.pow(2,r),f=this.extent*A,s=this.extent*e,u=this.loadGeometry(),l=i.types[this.type];function h(A){for(var e=0;e>3;e=1===t?A.readString():2===t?A.readFloat():3===t?A.readDouble():4===t?A.readVarint64():5===t?A.readVarint():6===t?A.readSVarint():7===t?A.readBoolean():null}return e}(r))}e.exports=i,i.prototype.feature=function(A){if(A<0||A>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[A];var e=this._pbf.readVarint()+this._pbf.pos;return new t(this._pbf,e,this.extent,this._keys,this._values)}},{"./vectortilefeature.js":4}],6:[function(A,e,r){!function(A,t){"object"==typeof r&&void 0!==e?e.exports=t():A.geojsonvt=t()}(this,(function(){"use strict";function A(r,t,i,n){for(var o,a=n,f=i-t>>1,s=i-t,u=r[t],l=r[t+1],h=r[i],c=r[i+1],d=t+3;da)o=d,a=g;else if(g===a){var w=Math.abs(d-f);wn&&(o-t>3&&A(r,t,o,n),r[o+2]=a,i-o>3&&A(r,o,i,n))}function e(A,e,r,t,i,n){var o=i-r,a=n-t;if(0!==o||0!==a){var f=((A-r)*o+(e-t)*a)/(o*o+a*a);f>1?(r=i,t=n):f>0&&(r+=o*f,t+=a*f)}return(o=A-r)*o+(a=e-t)*a}function r(A,e,r,i){var n={id:void 0===A?null:A,type:e,geometry:r,tags:i,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(A){var e=A.geometry,r=A.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)t(A,e);else if("Polygon"===r||"MultiLineString"===r)for(var i=0;i0&&(a+=i?(n*h-l*o)/2:Math.sqrt(Math.pow(l-n,2)+Math.pow(h-o,2))),n=l,o=h}var c=r.length-3;r[2]=1,A(r,0,c,t),r[c+2]=1,r.size=Math.abs(a),r.start=0,r.end=r.size}function a(A,e,r,t){for(var i=0;i1?1:r}function u(A,e,t,i,n,o,a,f){if(i/=e,o>=(t/=e)&&a=i)return null;for(var s=[],u=0;u=t&&B=i)){var b=[];if("Point"===w||"MultiPoint"===w)l(g,b,t,i,n);else if("LineString"===w)h(g,b,t,i,n,!1,f.lineMetrics);else if("MultiLineString"===w)d(g,b,t,i,n,!1);else if("Polygon"===w)d(g,b,t,i,n,!0);else if("MultiPolygon"===w)for(var v=0;v=r&&o<=t&&(e.push(A[n]),e.push(A[n+1]),e.push(A[n+2]))}}function h(A,e,r,t,i,n,o){for(var a,f,s=c(A),u=0===i?w:p,l=A.start,h=0;hr&&(f=u(s,d,B,v,m,r),o&&(s.start=l+a*f)):k>t?M=r&&(f=u(s,d,B,v,m,r),Q=!0),M>t&&k<=t&&(f=u(s,d,B,v,m,t),Q=!0),!n&&Q&&(o&&(s.end=l+a*f),e.push(s),s=c(A)),o&&(l+=a)}var y=A.length-3;d=A[y],B=A[y+1],b=A[y+2],(k=0===i?d:B)>=r&&k<=t&&g(s,d,B,b),y=s.length-3,n&&y>=3&&(s[y]!==s[0]||s[y+1]!==s[1])&&g(s,s[0],s[1],s[2]),s.length&&e.push(s)}function c(A){var e=[];return e.size=A.size,e.start=A.start,e.end=A.end,e}function d(A,e,r,t,i,n){for(var o=0;oo.maxX&&(o.maxX=u),l>o.maxY&&(o.maxY=l)}return o}function M(A,e,r,t){var i=e.geometry,n=e.type,o=[];if("Point"===n||"MultiPoint"===n)for(var a=0;a0&&e.size<(i?o:t))r.numPoints+=e.length/3;else{for(var a=[],f=0;fo)&&(r.numSimplified++,a.push(e[f]),a.push(e[f+1])),r.numPoints++;i&&function(A,e){for(var r=0,t=0,i=A.length,n=i-2;t0===e)for(t=0,i=A.length;t24)throw new Error("maxZoom should be in the 0-24 range");if(e.promoteId&&e.generateId)throw new Error("promoteId and generateId cannot be used together.");var t=function(A,e){var r=[];if("FeatureCollection"===A.type)for(var t=0;t1&&console.time("creation"),c=this.tiles[h]=k(A,e,r,t,f),this.tileCoords.push({z:e,x:r,y:t}),s)){s>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,t,c.numFeatures,c.numPoints,c.numSimplified),console.timeEnd("creation"));var d="z"+e;this.stats[d]=(this.stats[d]||0)+1,this.total++}if(c.source=A,i){if(e===f.maxZoom||e===i)continue;var g=1<1&&console.time("clipping");var w,p,B,b,v,m,M=.5*f.buffer/f.extent,Q=.5-M,y=.5+M,x=1+M;w=p=B=b=null,v=u(A,l,r-M,r+y,0,c.minX,c.maxX,f),m=u(A,l,r+Q,r+x,0,c.minX,c.maxX,f),A=null,v&&(w=u(v,l,t-M,t+y,1,c.minY,c.maxY,f),p=u(v,l,t+Q,t+x,1,c.minY,c.maxY,f),v=null),m&&(B=u(m,l,t-M,t+y,1,c.minY,c.maxY,f),b=u(m,l,t+Q,t+x,1,c.minY,c.maxY,f),m=null),s>1&&console.timeEnd("clipping"),a.push(w||[],e+1,2*r,2*t),a.push(p||[],e+1,2*r,2*t+1),a.push(B||[],e+1,2*r+1,2*t),a.push(b||[],e+1,2*r+1,2*t+1)}}},y.prototype.getTile=function(A,e,r){var t=this.options,i=t.extent,n=t.debug;if(A<0||A>24)return null;var o=1<1&&console.log("drilling down to z%d-%d-%d",A,e,r);for(var f,s=A,u=e,l=r;!f&&s>0;)s--,u=Math.floor(u/2),l=Math.floor(l/2),f=this.tiles[E(s,u,l)];return f&&f.source?(n>1&&console.log("found parent tile z%d-%d-%d",s,u,l),n>1&&console.time("drilling down"),this.splitTile(f.source,s,u,l,A,e,r),n>1&&console.timeEnd("drilling down"),this.tiles[a]?v(this.tiles[a],i):null):null},function(A,e){return new y(A,e)}}))},{}],7:[function(A,e,r){var t=function(A){var e,r=void 0!==(A=A||{})?A:{},t={};for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);var i,n=[],o="";document.currentScript&&(o=document.currentScript.src),o=0!==o.indexOf("blob:")?o.substr(0,o.lastIndexOf("/")+1):"",i=function(A,e,r){var t=new XMLHttpRequest;t.open("GET",A,!0),t.responseType="arraybuffer",t.onload=function(){if(200==t.status||0==t.status&&t.response)e(t.response);else{var i=J(A);i?e(i.buffer):r()}},t.onerror=r,t.send(null)};var a=r.print||console.log.bind(console),f=r.printErr||console.warn.bind(console);for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);t=null,r.arguments&&(n=r.arguments);var s=0,u=function(){return s};var l=!1;function h(A){var e,t=r["_"+A];return e="Cannot call unknown function "+A+", make sure it is exported",t||fA("Assertion failed: "+e),t}function c(A,e,r,t,i){var n={string:function(A){var e=0;if(null!=A&&0!==A){var r=1+(A.length<<2);(function(A,e,r){(function(A,e,r,t){if(!(t>0))return 0;for(var i=r,n=r+t-1,o=0;o=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&A.charCodeAt(++o);if(a<=127){if(r>=n)break;e[r++]=a}else if(a<=2047){if(r+1>=n)break;e[r++]=192|a>>6,e[r++]=128|63&a}else if(a<=65535){if(r+2>=n)break;e[r++]=224|a>>12,e[r++]=128|a>>6&63,e[r++]=128|63&a}else{if(r+3>=n)break;e[r++]=240|a>>18,e[r++]=128|a>>12&63,e[r++]=128|a>>6&63,e[r++]=128|63&a}}e[r]=0})(A,B,e,r)})(A,e=AA(r),r)}return e},array:function(A){var e=AA(A.length);return function(A,e){p.set(A,e)}(A,e),e}};var o=h(A),a=[],f=0;if(t)for(var s=0;s=t);)++i;if(i-e>16&&A.subarray&&d)return d.decode(A.subarray(e,i));for(var n="";e>10,56320|1023&s)}}else n+=String.fromCharCode((31&o)<<6|a)}else n+=String.fromCharCode(o)}return n}(B,A,e):""}var w,p,B,b,v,m,k;"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");function M(A,e){return A%e>0&&(A+=e-A%e),A}function Q(A){w=A,r.HEAP8=p=new Int8Array(A),r.HEAP16=b=new Int16Array(A),r.HEAP32=v=new Int32Array(A),r.HEAPU8=B=new Uint8Array(A),r.HEAPU16=new Uint16Array(A),r.HEAPU32=new Uint32Array(A),r.HEAPF32=m=new Float32Array(A),r.HEAPF64=k=new Float64Array(A)}var y=r.TOTAL_MEMORY||33554432;function E(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var t=e.func;"number"==typeof t?void 0===e.arg?r.dynCall_v(t):r.dynCall_vi(t,e.arg):t(void 0===e.arg?null:e.arg)}else e()}}y=(w=r.buffer?r.buffer:new ArrayBuffer(y)).byteLength,Q(w),v[6004]=5266928;var x=[],D=[],_=[],I=[];var F=Math.abs,C=Math.ceil,P=Math.floor,U=Math.min,G=0,S=null,T=null;r.preloadedImages={},r.preloadedAudios={};var V,H,R=null,L="data:application/octet-stream;base64,";function z(A){return String.prototype.startsWith?A.startsWith(L):0===A.indexOf(L)}R="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(A){return A}function O(A){return A.replace(/\b__Z[\w\d_]+/g,(function(A){return A===A?A:A+" ["+A+"]"}))}function j(){var A=new Error;if(!A.stack){try{throw new Error(0)}catch(e){A=e}if(!A.stack)return"(no stack trace available)"}return A.stack.toString()}function N(){return p.length}function Z(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(p),$(e),Q(e),1}catch(A){}}var W="function"==typeof atob?atob:function(A){var e,r,t,i,n,o,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",f="",s=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=a.indexOf(A.charAt(s++))<<2|(i=a.indexOf(A.charAt(s++)))>>4,r=(15&i)<<4|(n=a.indexOf(A.charAt(s++)))>>2,t=(3&n)<<6|(o=a.indexOf(A.charAt(s++))),f+=String.fromCharCode(e),64!==n&&(f+=String.fromCharCode(r)),64!==o&&(f+=String.fromCharCode(t))}while(s>2]=A,i[a+4>>2]=e,(a=0!=(0|n))&&(i[n>>2]=0),0|UA(A,e))return I=o,0|(d=1);i[d>>2]=0;A:do{if((0|r)>=1)if(a)for(l=0,h=1,c=1,f=0,a=A;;){if(!(f|l)){if(0==(0|(a=0|U(a,e,4,d)))&0==(0|(e=0|M()))){a=2;break A}if(0|UA(a,e)){a=1;break A}}if(0==(0|(a=0|U(a,e,0|i[16+(l<<2)>>2],d)))&0==(0|(e=0|M()))){a=2;break A}if(i[(A=t+(c<<3)|0)>>2]=a,i[A+4>>2]=e,i[n+(c<<2)>>2]=h,A=(0|(f=f+1|0))==(0|h),u=6==(0|(s=l+1|0)),0|UA(a,e)){a=1;break A}if((0|(h=h+(u&A&1)|0))>(0|r)){a=0;break}l=A?u?0:s:l,c=c+1|0,f=A?0:f}else for(l=0,h=1,c=1,f=0,a=A;;){if(!(f|l)){if(0==(0|(a=0|U(a,e,4,d)))&0==(0|(e=0|M()))){a=2;break A}if(0|UA(a,e)){a=1;break A}}if(0==(0|(a=0|U(a,e,0|i[16+(l<<2)>>2],d)))&0==(0|(e=0|M()))){a=2;break A}if(i[(A=t+(c<<3)|0)>>2]=a,i[A+4>>2]=e,A=(0|(f=f+1|0))==(0|h),u=6==(0|(s=l+1|0)),0|UA(a,e)){a=1;break A}if((0|(h=h+(u&A&1)|0))>(0|r)){a=0;break}l=A?u?0:s:l,c=c+1|0,f=A?0:f}else a=0}while(0);return I=o,0|(d=a)}function P(A,e,r,t,n,o,a){r|=0,t|=0,n|=0,o|=0,a|=0;var f,s,u=0,l=0,h=0,c=0,d=0;if(s=I,I=I+16|0,f=s,0==(0|(A|=0))&0==(0|(e|=0)))I=s;else{if(u=0|Me(0|A,0|e,0|o,((0|o)<0)<<31>>31|0),M(),!(0==(0|(d=0|i[(c=l=t+(u<<3)|0)>>2]))&0==(0|(c=0|i[c+4>>2]))|(h=(0|d)==(0|A)&(0|c)==(0|e))))do{h=(0|(c=0|i[(d=l=t+((u=(u+1|0)%(0|o)|0)<<3)|0)>>2]))==(0|A)&(0|(d=0|i[d+4>>2]))==(0|e)}while(!(0==(0|c)&0==(0|d)|h));u=n+(u<<2)|0,h&&(0|i[u>>2])<=(0|a)||(i[(d=l)>>2]=A,i[d+4>>2]=e,i[u>>2]=a,(0|a)>=(0|r)||(d=a+1|0,i[f>>2]=0,P(c=0|U(A,e,2,f),0|M(),r,t,n,o,d),i[f>>2]=0,P(c=0|U(A,e,3,f),0|M(),r,t,n,o,d),i[f>>2]=0,P(c=0|U(A,e,1,f),0|M(),r,t,n,o,d),i[f>>2]=0,P(c=0|U(A,e,5,f),0|M(),r,t,n,o,d),i[f>>2]=0,P(c=0|U(A,e,4,f),0|M(),r,t,n,o,d),i[f>>2]=0,P(c=0|U(A,e,6,f),0|M(),r,t,n,o,d))),I=s}}function U(A,e,r,t){A|=0,e|=0,r|=0;var n,o,a=0,f=0,s=0,u=0,l=0,h=0,c=0;if((0|i[(t|=0)>>2])>0){a=0;do{r=0|fA(r),a=a+1|0}while((0|a)<(0|i[t>>2]))}n=0|Qe(0|A,0|e,45),M(),o=127&n,f=0|GA(A,e),a=0|Qe(0|A,0|e,52),M(),a&=15;A:do{if(a)for(;;){if(h=0|Qe(0|A,0|e,0|(l=3*(15-a|0)|0)),M(),h&=7,c=0==(0|RA(a)),a=a+-1|0,u=0|ye(7,0,0|l),e&=~(0|M()),A=(l=0|ye(0|i[(c?464:48)+(28*h|0)+(r<<2)>>2],0,0|l))|A&~u,e|=0|M(),!(r=0|i[(c?672:256)+(28*h|0)+(r<<2)>>2])){r=0;break A}if(!a){s=6;break}}else s=6}while(0);6==(0|s)&&(A|=h=0|ye(0|(c=0|i[880+(28*o|0)+(r<<2)>>2]),0,45),e=0|M()|-1040385&e,r=0|i[4304+(28*o|0)+(r<<2)>>2],127==(127&c|0)&&(c=0|ye(0|i[880+(28*o|0)+20>>2],0,45),e=0|M()|-1040385&e,r=0|i[4304+(28*o|0)+20>>2],A=0|TA(c|A,e),e=0|M(),i[t>>2]=1+(0|i[t>>2]))),s=0|Qe(0|A,0|e,45),M(),s&=127;A:do{if(0|S(s)){e:do{if(1==(0|GA(A,e))){if((0|o)!=(0|s)){if(0|R(s,0|i[7728+(28*o|0)>>2])){A=0|HA(A,e),f=1,e=0|M();break}A=0|TA(A,e),f=1,e=0|M();break}switch(0|f){case 5:A=0|HA(A,e),e=0|M(),i[t>>2]=5+(0|i[t>>2]),f=0;break e;case 3:A=0|TA(A,e),e=0|M(),i[t>>2]=1+(0|i[t>>2]),f=0;break e;default:return c=0,k(0|(h=0)),0|c}}else f=0}while(0);if((0|r)>0){a=0;do{A=0|SA(A,e),e=0|M(),a=a+1|0}while((0|a)!=(0|r))}if((0|o)!=(0|s)){if(!(0|T(s))){if(0!=(0|f)|5!=(0|GA(A,e)))break;i[t>>2]=1+(0|i[t>>2]);break}switch(127&n){case 8:case 118:break A}3!=(0|GA(A,e))&&(i[t>>2]=1+(0|i[t>>2]))}}else if((0|r)>0){a=0;do{A=0|TA(A,e),e=0|M(),a=a+1|0}while((0|a)!=(0|r))}}while(0);return i[t>>2]=((0|i[t>>2])+r|0)%6|0,c=A,k(0|(h=e)),0|c}function G(A,e,r,t,o,a){e|=0,r|=0,t|=0,o|=0,a|=0;var f,s,u,l,h,c,d,g,w,p=0,B=0,b=0,v=0,m=0,k=0,Q=0,y=0,E=0,x=0,D=0,_=0,F=0,C=0;if(w=I,I=I+48|0,c=w+32|0,d=w+16|0,g=w,(0|(p=0|i[(A|=0)>>2]))<=0)return I=w,0|(_=0);f=A+4|0,s=c+8|0,u=d+8|0,l=g+8|0,h=((0|e)<0)<<31>>31,D=0;A:for(;;){E=(B=0|i[f>>2])+(D<<4)|0,i[c>>2]=i[E>>2],i[c+4>>2]=i[E+4>>2],i[c+8>>2]=i[E+8>>2],i[c+12>>2]=i[E+12>>2],(0|D)==(p+-1|0)?(i[d>>2]=i[B>>2],i[d+4>>2]=i[B+4>>2],i[d+8>>2]=i[B+8>>2],i[d+12>>2]=i[B+12>>2]):(E=B+(D+1<<4)|0,i[d>>2]=i[E>>2],i[d+4>>2]=i[E+4>>2],i[d+8>>2]=i[E+8>>2],i[d+12>>2]=i[E+12>>2]),E=0|N(c,d,r);e:do{if((0|E)>0){x=+(0|E),y=0;r:for(;;){C=+(E-y|0),F=+(0|y),n[g>>3]=+n[c>>3]*C/x+ +n[d>>3]*F/x,n[l>>3]=+n[s>>3]*C/x+ +n[u>>3]*F/x,B=0|Me(0|(k=0|LA(g,r)),0|(Q=0|M()),0|e,0|h),M(),v=0|i[(b=p=a+(B<<3)|0)>>2],b=0|i[b+4>>2];t:do{if(0==(0|v)&0==(0|b))_=14;else for(m=0;;){if((0|m)>(0|e)){p=1;break t}if((0|v)==(0|k)&(0|b)==(0|Q)){p=7;break t}if(0==(0|(v=0|i[(b=p=a+((B=(B+1|0)%(0|e)|0)<<3)|0)>>2]))&0==(0|(b=0|i[b+4>>2]))){_=14;break}m=m+1|0}}while(0);switch(14==(0|_)&&(_=0,0==(0|k)&0==(0|Q)?p=7:(i[p>>2]=k,i[p+4>>2]=Q,p=0|i[t>>2],i[(m=o+(p<<3)|0)>>2]=k,i[m+4>>2]=Q,i[t>>2]=p+1,p=0)),7&p){case 7:case 0:break;default:break r}if((0|E)<=(0|(y=y+1|0))){_=8;break e}}if(0|p){p=-1,_=20;break A}}else _=8}while(0);if(8==(0|_)&&(_=0),(0|(D=D+1|0))>=(0|(p=0|i[A>>2]))){p=0,_=20;break}}return 20==(0|_)?(I=w,0|p):0}function S(A){return 0|i[7728+(28*(A|=0)|0)+16>>2]}function T(A){return 4==(0|(A|=0))|117==(0|A)|0}function V(A){return 0|i[11152+(216*(0|i[(A|=0)>>2])|0)+(72*(0|i[A+4>>2])|0)+(24*(0|i[A+8>>2])|0)+(i[A+12>>2]<<3)>>2]}function H(A){return 0|i[11152+(216*(0|i[(A|=0)>>2])|0)+(72*(0|i[A+4>>2])|0)+(24*(0|i[A+8>>2])|0)+(i[A+12>>2]<<3)+4>>2]}function R(A,e){return e|=0,(0|i[7728+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|i[7728+(28*A|0)+24>>2])==(0|e))}function L(A,e){return 0|i[880+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function z(A,e){return e|=0,(0|i[880+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|i[880+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|i[880+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|i[880+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|i[880+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|i[880+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|i[880+(28*A|0)+24>>2])==(0|e)?6:7)}function Y(A){return+n[(A|=0)+16>>3]<+n[A+24>>3]|0}function O(A,e){A|=0;var r,t,i=0;return(i=+n[(e|=0)>>3])>=+n[A+8>>3]&&i<=+n[A>>3]?(r=+n[A+16>>3],i=+n[A+24>>3],e=(t=+n[e+8>>3])>=i,A=t<=r&1,r>2]=0,l=l+4|0}while((0|l)<(0|h));return NA(e,o),OA(h=0|i[(l=o)>>2],l=0|i[l+4>>2],r),jA(h,l,t),s=+DA(r,t+8|0),n[r>>3]=+n[A>>3],n[(l=r+8|0)>>3]=+n[A+16>>3],n[t>>3]=+n[A+8>>3],n[(h=t+8|0)>>3]=+n[A+24>>3],u=+DA(r,t),h=~~+B(+u*u/+Ee(+ +f(+(+n[l>>3]-+n[h>>3])/(+n[r>>3]-+n[t>>3])),3)/(s*(2.59807621135*s)*.8)),I=a,0|(0==(0|h)?1:h)}function N(A,e,r){A|=0,e|=0,r|=0;var t,n,o,a,f,s=0,u=0;a=I,I=I+288|0,t=a+264|0,n=a+96|0,u=(s=o=a)+96|0;do{i[s>>2]=0,s=s+4|0}while((0|s)<(0|u));return NA(r,o),OA(s=0|i[(u=o)>>2],u=0|i[u+4>>2],t),jA(s,u,n),f=+DA(t,n+8|0),u=~~+B(+ +DA(A,e)/(2*f)),I=a,0|(0==(0|u)?1:u)}function Z(A,e,r,t){e|=0,r|=0,t|=0,i[(A|=0)>>2]=e,i[A+4>>2]=r,i[A+8>>2]=t}function W(A,e){A|=0;var r,t,o,a,s=0,u=0,l=0,h=0,c=0,d=0,g=0;i[(a=(e|=0)+8|0)>>2]=0,t=+n[A>>3],h=+f(+t),o=+n[A+8>>3],h+=.5*(c=+f(+o)/.8660254037844386),h-=+(0|(s=~~h)),c-=+(0|(A=~~c));do{if(h<.5){if(h<.3333333333333333){if(i[e>>2]=s,c<.5*(h+1)){i[e+4>>2]=A;break}A=A+1|0,i[e+4>>2]=A;break}if(A=(1&!(c<(g=1-h)))+A|0,i[e+4>>2]=A,g<=c&c<2*h){s=s+1|0,i[e>>2]=s;break}i[e>>2]=s;break}if(!(h<.6666666666666666)){if(s=s+1|0,i[e>>2]=s,c<.5*h){i[e+4>>2]=A;break}A=A+1|0,i[e+4>>2]=A;break}if(c<1-h){if(i[e+4>>2]=A,2*h-1>2]=s;break}}else A=A+1|0,i[e+4>>2]=A;s=s+1|0,i[e>>2]=s}while(0);do{if(t<0){if(1&A){s=~~(+(0|s)-(2*(+((d=0|ve(0|s,((0|s)<0)<<31>>31|0,0|(d=(A+1|0)/2|0),((0|d)<0)<<31>>31|0))>>>0)+4294967296*+(0|M()))+1)),i[e>>2]=s;break}s=~~(+(0|s)-2*(+((d=0|ve(0|s,((0|s)<0)<<31>>31|0,0|(d=(0|A)/2|0),((0|d)<0)<<31>>31|0))>>>0)+4294967296*+(0|M()))),i[e>>2]=s;break}}while(0);d=e+4|0,o<0&&(s=s-((1|A<<1)/2|0)|0,i[e>>2]=s,A=0-A|0,i[d>>2]=A),u=A-s|0,(0|s)<0?(l=0-s|0,i[d>>2]=u,i[a>>2]=l,i[e>>2]=0,A=u,s=0):l=0,(0|A)<0&&(s=s-A|0,i[e>>2]=s,l=l-A|0,i[a>>2]=l,i[d>>2]=0,A=0),r=s-l|0,u=A-l|0,(0|l)<0&&(i[e>>2]=r,i[d>>2]=u,i[a>>2]=0,A=u,s=r,l=0),(0|(u=(0|l)<(0|(u=(0|A)<(0|s)?A:s))?l:u))<=0||(i[e>>2]=s-u,i[d>>2]=A-u,i[a>>2]=l-u)}function J(A){var e,r=0,t=0,n=0,o=0,a=0;r=0|i[(A|=0)>>2],t=0|i[(e=A+4|0)>>2],(0|r)<0&&(t=t-r|0,i[e>>2]=t,i[(a=A+8|0)>>2]=(0|i[a>>2])-r,i[A>>2]=0,r=0),(0|t)<0?(r=r-t|0,i[A>>2]=r,o=(0|i[(a=A+8|0)>>2])-t|0,i[a>>2]=o,i[e>>2]=0,t=0):(a=o=A+8|0,o=0|i[o>>2]),(0|o)<0&&(r=r-o|0,i[A>>2]=r,t=t-o|0,i[e>>2]=t,i[a>>2]=0,o=0),(0|(n=(0|o)<(0|(n=(0|t)<(0|r)?t:r))?o:n))<=0||(i[A>>2]=r-n,i[e>>2]=t-n,i[a>>2]=o-n)}function K(A,e){e|=0;var r,t;t=0|i[(A|=0)+8>>2],r=+((0|i[A+4>>2])-t|0),n[e>>3]=+((0|i[A>>2])-t|0)-.5*r,n[e+8>>3]=.8660254037844386*r}function X(A,e,r){A|=0,e|=0,i[(r|=0)>>2]=(0|i[e>>2])+(0|i[A>>2]),i[r+4>>2]=(0|i[e+4>>2])+(0|i[A+4>>2]),i[r+8>>2]=(0|i[e+8>>2])+(0|i[A+8>>2])}function q(A,e,r){A|=0,e|=0,i[(r|=0)>>2]=(0|i[A>>2])-(0|i[e>>2]),i[r+4>>2]=(0|i[A+4>>2])-(0|i[e+4>>2]),i[r+8>>2]=(0|i[A+8>>2])-(0|i[e+8>>2])}function $(A,e){e|=0;var r,t=0;t=0|b(0|i[(A|=0)>>2],e),i[A>>2]=t,r=0|b(0|i[(t=A+4|0)>>2],e),i[t>>2]=r,e=0|b(0|i[(A=A+8|0)>>2],e),i[A>>2]=e}function AA(A){var e,r,t=0,n=0,o=0,a=0,f=0;f=(0|(r=0|i[(A|=0)>>2]))<0,A=(A=(n=(0|(a=((e=(0|(o=(0|i[A+4>>2])-(f?r:0)|0))<0)?0-o|0:0)+((0|i[A+8>>2])-(f?r:0))|0))<0)?0:a)-((o=(0|(n=(0|A)<(0|(n=(0|(t=(e?0:o)-(n?a:0)|0))<(0|(a=(f?0:r)-(e?o:0)-(n?a:0)|0))?t:a))?A:n))>0)?n:0)|0,t=t-(o?n:0)|0;A:do{switch(a-(o?n:0)|0){case 0:switch(0|t){case 0:return 0|(f=0==(0|A)?0:1==(0|A)?1:7);case 1:return 0|(f=0==(0|A)?2:1==(0|A)?3:7);default:break A}case 1:switch(0|t){case 0:return 0|(f=0==(0|A)?4:1==(0|A)?5:7);case 1:if(A)break A;return 0|(A=6);default:break A}}}while(0);return 0|(f=7)}function eA(A){var e,r,t=0,n=0,o=0,a=0,f=0;n=0|i[(e=(A|=0)+8|0)>>2],o=0|we(+((3*(t=(0|i[A>>2])-n|0)|0)-(n=(0|i[(r=A+4|0)>>2])-n|0)|0)/7),i[A>>2]=o,t=0|we(+((n<<1)+t|0)/7),i[r>>2]=t,i[e>>2]=0,n=t-o|0,(0|o)<0?(f=0-o|0,i[r>>2]=n,i[e>>2]=f,i[A>>2]=0,t=n,o=0,n=f):n=0,(0|t)<0&&(o=o-t|0,i[A>>2]=o,n=n-t|0,i[e>>2]=n,i[r>>2]=0,t=0),f=o-n|0,a=t-n|0,(0|n)<0?(i[A>>2]=f,i[r>>2]=a,i[e>>2]=0,t=a,a=f,n=0):a=o,(0|(o=(0|n)<(0|(o=(0|t)<(0|a)?t:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=t-o,i[e>>2]=n-o)}function rA(A){var e,r,t=0,n=0,o=0,a=0,f=0;n=0|i[(e=(A|=0)+8|0)>>2],o=0|we(+(((t=(0|i[A>>2])-n|0)<<1)+(n=(0|i[(r=A+4|0)>>2])-n|0)|0)/7),i[A>>2]=o,t=0|we(+((3*n|0)-t|0)/7),i[r>>2]=t,i[e>>2]=0,n=t-o|0,(0|o)<0?(f=0-o|0,i[r>>2]=n,i[e>>2]=f,i[A>>2]=0,t=n,o=0,n=f):n=0,(0|t)<0&&(o=o-t|0,i[A>>2]=o,n=n-t|0,i[e>>2]=n,i[r>>2]=0,t=0),f=o-n|0,a=t-n|0,(0|n)<0?(i[A>>2]=f,i[r>>2]=a,i[e>>2]=0,t=a,a=f,n=0):a=o,(0|(o=(0|n)<(0|(o=(0|t)<(0|a)?t:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=t-o,i[e>>2]=n-o)}function tA(A){var e,r,t,n=0,o=0,a=0,f=0;n=0|i[(A|=0)>>2],o=0|i[(r=A+4|0)>>2],a=0|i[(t=A+8|0)>>2],f=o+(3*n|0)|0,i[A>>2]=f,o=a+(3*o|0)|0,i[r>>2]=o,n=(3*a|0)+n|0,i[t>>2]=n,a=o-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=a,i[t>>2]=n,i[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,i[A>>2]=a,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=a-n|0,f=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=f,i[t>>2]=0,a=e,n=0):f=o,(0|(o=(0|n)<(0|(o=(0|f)<(0|a)?f:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=f-o,i[t>>2]=n-o)}function iA(A){var e,r,t,n=0,o=0,a=0,f=0;f=0|i[(A|=0)>>2],a=(3*(n=0|i[(r=A+4|0)>>2])|0)+f|0,f=(o=0|i[(t=A+8|0)>>2])+(3*f|0)|0,i[A>>2]=f,i[r>>2]=a,n=(3*o|0)+n|0,i[t>>2]=n,o=a-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=o,i[t>>2]=n,i[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,i[A>>2]=f,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=f-n|0,a=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=a,i[t>>2]=0,f=e,n=0):a=o,(0|(o=(0|n)<(0|(o=(0|a)<(0|f)?a:f))?n:o))<=0||(i[A>>2]=f-o,i[r>>2]=a-o,i[t>>2]=n-o)}function nA(A,e){A|=0;var r,t,n,o=0,a=0,f=0;((e|=0)+-1|0)>>>0>=6||(f=(0|i[15472+(12*e|0)>>2])+(0|i[A>>2])|0,i[A>>2]=f,n=A+4|0,a=(0|i[15472+(12*e|0)+4>>2])+(0|i[n>>2])|0,i[n>>2]=a,t=A+8|0,e=(0|i[15472+(12*e|0)+8>>2])+(0|i[t>>2])|0,i[t>>2]=e,o=a-f|0,(0|f)<0?(e=e-f|0,i[n>>2]=o,i[t>>2]=e,i[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,i[A>>2]=a,e=e-o|0,i[t>>2]=e,i[n>>2]=0,o=0),r=a-e|0,f=o-e|0,(0|e)<0?(i[A>>2]=r,i[n>>2]=f,i[t>>2]=0,a=r,e=0):f=o,(0|(o=(0|e)<(0|(o=(0|f)<(0|a)?f:a))?e:o))<=0||(i[A>>2]=a-o,i[n>>2]=f-o,i[t>>2]=e-o))}function oA(A){var e,r,t,n=0,o=0,a=0,f=0;f=0|i[(A|=0)>>2],a=(n=0|i[(r=A+4|0)>>2])+f|0,f=(o=0|i[(t=A+8|0)>>2])+f|0,i[A>>2]=f,i[r>>2]=a,n=o+n|0,i[t>>2]=n,o=a-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=o,i[t>>2]=n,i[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,i[A>>2]=a,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=a-n|0,f=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=f,i[t>>2]=0,a=e,n=0):f=o,(0|(o=(0|n)<(0|(o=(0|f)<(0|a)?f:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=f-o,i[t>>2]=n-o)}function aA(A){var e,r,t,n=0,o=0,a=0,f=0;n=0|i[(A|=0)>>2],a=0|i[(r=A+4|0)>>2],o=0|i[(t=A+8|0)>>2],f=a+n|0,i[A>>2]=f,a=o+a|0,i[r>>2]=a,n=o+n|0,i[t>>2]=n,o=a-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=o,i[t>>2]=n,i[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,i[A>>2]=a,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=a-n|0,f=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=f,i[t>>2]=0,a=e,n=0):f=o,(0|(o=(0|n)<(0|(o=(0|f)<(0|a)?f:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=f-o,i[t>>2]=n-o)}function fA(A){switch(0|(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}return 0|A}function sA(A){switch(0|(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}return 0|A}function uA(A){var e,r,t,n=0,o=0,a=0,f=0;n=0|i[(A|=0)>>2],o=0|i[(r=A+4|0)>>2],a=0|i[(t=A+8|0)>>2],f=o+(n<<1)|0,i[A>>2]=f,o=a+(o<<1)|0,i[r>>2]=o,n=(a<<1)+n|0,i[t>>2]=n,a=o-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=a,i[t>>2]=n,i[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,i[A>>2]=a,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=a-n|0,f=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=f,i[t>>2]=0,a=e,n=0):f=o,(0|(o=(0|n)<(0|(o=(0|f)<(0|a)?f:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=f-o,i[t>>2]=n-o)}function lA(A){var e,r,t,n=0,o=0,a=0,f=0;f=0|i[(A|=0)>>2],a=((n=0|i[(r=A+4|0)>>2])<<1)+f|0,f=(o=0|i[(t=A+8|0)>>2])+(f<<1)|0,i[A>>2]=f,i[r>>2]=a,n=(o<<1)+n|0,i[t>>2]=n,o=a-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=o,i[t>>2]=n,i[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,i[A>>2]=f,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=f-n|0,a=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=a,i[t>>2]=0,f=e,n=0):a=o,(0|(o=(0|n)<(0|(o=(0|a)<(0|f)?a:f))?n:o))<=0||(i[A>>2]=f-o,i[r>>2]=a-o,i[t>>2]=n-o)}function hA(A,e){e|=0;var r,t,n,o=0,a=0,f=0;return n=(0|(t=(0|i[(A|=0)>>2])-(0|i[e>>2])|0))<0,r=(0|(a=(0|i[A+4>>2])-(0|i[e+4>>2])-(n?t:0)|0))<0,e=(e=(A=(0|(f=(n?0-t|0:0)+(0|i[A+8>>2])-(0|i[e+8>>2])+(r?0-a|0:0)|0))<0)?0:f)-((a=(0|(A=(0|e)<(0|(A=(0|(o=(r?0:a)-(A?f:0)|0))<(0|(f=(n?0:t)-(r?a:0)-(A?f:0)|0))?o:f))?e:A))>0)?A:0)|0,o=o-(a?A:0)|0,0|((0|(A=(0|(A=f-(a?A:0)|0))>-1?A:0-A|0))>(0|(e=(0|(o=(0|o)>-1?o:0-o|0))>(0|(e=(0|e)>-1?e:0-e|0))?o:e))?A:e)}function cA(A,e){e|=0;var r;r=0|i[(A|=0)+8>>2],i[e>>2]=(0|i[A>>2])-r,i[e+4>>2]=(0|i[A+4>>2])-r}function dA(A,e){e|=0;var r,t,n,o=0,a=0,f=0;a=0|i[(A|=0)>>2],i[e>>2]=a,A=0|i[A+4>>2],i[(t=e+4|0)>>2]=A,i[(n=e+8|0)>>2]=0,o=A-a|0,(0|a)<0?(A=0-a|0,i[t>>2]=o,i[n>>2]=A,i[e>>2]=0,a=0):(o=A,A=0),(0|o)<0&&(a=a-o|0,i[e>>2]=a,A=A-o|0,i[n>>2]=A,i[t>>2]=0,o=0),r=a-A|0,f=o-A|0,(0|A)<0?(i[e>>2]=r,i[t>>2]=f,i[n>>2]=0,o=f,f=r,A=0):f=a,(0|(a=(0|A)<(0|(a=(0|o)<(0|f)?o:f))?A:a))<=0||(i[e>>2]=f-a,i[t>>2]=o-a,i[n>>2]=A-a)}function gA(A){var e,r,t,n;r=(n=0|i[(e=(A|=0)+8|0)>>2])-(0|i[A>>2])|0,i[A>>2]=r,A=(0|i[(t=A+4|0)>>2])-n|0,i[t>>2]=A,i[e>>2]=0-(A+r)}function wA(A){var e,r,t=0,n=0,o=0,a=0,f=0;t=0-(n=0|i[(A|=0)>>2])|0,i[A>>2]=t,i[(e=A+8|0)>>2]=0,a=(o=0|i[(r=A+4|0)>>2])+n|0,(0|n)>0?(i[r>>2]=a,i[e>>2]=n,i[A>>2]=0,t=0,o=a):n=0,(0|o)<0?(f=t-o|0,i[A>>2]=f,n=n-o|0,i[e>>2]=n,i[r>>2]=0,a=f-n|0,t=0-n|0,(0|n)<0?(i[A>>2]=a,i[r>>2]=t,i[e>>2]=0,o=t,n=0):(o=0,a=f)):a=t,(0|(t=(0|n)<(0|(t=(0|o)<(0|a)?o:a))?n:t))<=0||(i[A>>2]=a-t,i[r>>2]=o-t,i[e>>2]=n-t)}function pA(A,e,r,t){e|=0,r|=0,t|=0;var o,a=0,f=0,s=0,u=0;if(o=I,I=I+32|0,function(A,e){e|=0;var r=0,t=0,i=0;r=+n[(A=A|0)>>3],t=+l(+r),r=+h(+r),n[e+16>>3]=r,r=+n[A+8>>3],i=t*+l(+r),n[e>>3]=i,r=t*+h(+r),n[e+8>>3]=r}(A|=0,f=o),i[r>>2]=0,a=+fe(15888,f),(s=+fe(15912,f))>2]=1,a=s),(s=+fe(15936,f))>2]=2,a=s),(s=+fe(15960,f))>2]=3,a=s),(s=+fe(15984,f))>2]=4,a=s),(s=+fe(16008,f))>2]=5,a=s),(s=+fe(16032,f))>2]=6,a=s),(s=+fe(16056,f))>2]=7,a=s),(s=+fe(16080,f))>2]=8,a=s),(s=+fe(16104,f))>2]=9,a=s),(s=+fe(16128,f))>2]=10,a=s),(s=+fe(16152,f))>2]=11,a=s),(s=+fe(16176,f))>2]=12,a=s),(s=+fe(16200,f))>2]=13,a=s),(s=+fe(16224,f))>2]=14,a=s),(s=+fe(16248,f))>2]=15,a=s),(s=+fe(16272,f))>2]=16,a=s),(s=+fe(16296,f))>2]=17,a=s),(s=+fe(16320,f))>2]=18,a=s),(s=+fe(16344,f))>2]=19,a=s),(s=+d(+(1-.5*a)))<1e-16)return i[t>>2]=0,i[t+4>>2]=0,i[t+8>>2]=0,i[t+12>>2]=0,void(I=o);if(r=0|i[r>>2],a=+EA((a=+n[16368+(24*r|0)>>3])-+EA(+function(A,e){A|=0;var r=0,t=0,i=0,o=0,a=0;return o=+n[(e=e|0)>>3],t=+l(+o),i=+n[e+8>>3]-+n[A+8>>3],a=t*+h(+i),r=+n[A>>3],+ +p(+a,+(+h(+o)*+l(+r)-+l(+i)*(t*+h(+r))))}(15568+(r<<4)|0,A))),u=0|RA(e)?+EA(a+-.3334731722518321):a,a=+c(+s)/.381966011250105,(0|e)>0){f=0;do{a*=2.6457513110645907,f=f+1|0}while((0|f)!=(0|e))}s=+l(+u)*a,n[t>>3]=s,u=+h(+u)*a,n[t+8>>3]=u,I=o}function BA(A,e,r,t,o){e|=0,r|=0,t|=0,o|=0;var a=0,u=0;if((a=+function(A){var e=0,r=0;return r=+n[(A=A|0)>>3],e=+n[A+8>>3],+ +s(+(r*r+e*e))}(A|=0))<1e-16)return e=15568+(e<<4)|0,i[o>>2]=i[e>>2],i[o+4>>2]=i[e+4>>2],i[o+8>>2]=i[e+8>>2],void(i[o+12>>2]=i[e+12>>2]);if(u=+p(+ +n[A+8>>3],+ +n[A>>3]),(0|r)>0){A=0;do{a/=2.6457513110645907,A=A+1|0}while((0|A)!=(0|r))}t?(a/=3,r=0==(0|RA(r)),a=+w(.381966011250105*(r?a:a/2.6457513110645907))):(a=+w(.381966011250105*a),0|RA(r)&&(u=+EA(u+.3334731722518321))),function(A,e,r,t){A|=0,e=+e,t|=0;var o=0,a=0,s=0,u=0;if((r=+r)<1e-16)return i[t>>2]=i[A>>2],i[t+4>>2]=i[A+4>>2],i[t+8>>2]=i[A+8>>2],void(i[t+12>>2]=i[A+12>>2]);a=e<0?e+6.283185307179586:e,a=e>=6.283185307179586?a+-6.283185307179586:a;do{if(!(a<1e-16)){if(o=+f(+(a+-3.141592653589793))<1e-16,e=+n[A>>3],o){e-=r,n[t>>3]=e,o=t;break}if(s=+l(+r),r=+h(+r),e=s*+h(+e)+ +l(+a)*(r*+l(+e)),e=+g(+((e=e>1?1:e)<-1?-1:e)),n[t>>3]=e,+f(+(e+-1.5707963267948966))<1e-16)return n[t>>3]=1.5707963267948966,void(n[t+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return n[t>>3]=-1.5707963267948966,void(n[t+8>>3]=0);if(u=+l(+e),a=r*+h(+a)/u,r=+n[A>>3],e=(s-+h(+e)*+h(+r))/+l(+r)/u,s=a>1?1:a,e=e>1?1:e,(e=+n[A+8>>3]+ +p(+(s<-1?-1:s),+(e<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(n[t+8>>3]=e)}e=+n[A>>3]+r,n[t>>3]=e,o=t}while(0);if(+f(+(e+-1.5707963267948966))<1e-16)return n[o>>3]=1.5707963267948966,void(n[t+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return n[o>>3]=-1.5707963267948966,void(n[t+8>>3]=0);if((e=+n[A+8>>3])>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);n[t+8>>3]=e}(15568+(e<<4)|0,+EA(+n[16368+(24*e|0)>>3]-u),a,o)}function bA(A,e,r){e|=0,r|=0;var t,n;t=I,I=I+16|0,K((A|=0)+4|0,n=t),BA(n,0|i[A>>2],e,0,r),I=t}function vA(A,e,r,t,o){A|=0,e|=0,r|=0,t|=0,o|=0;var a,f,s,u,l,h,c,d,g,w,p,B,b,v,m,k,M,y,E,x,D,_,F=0,C=0,P=0,U=0,G=0,S=0;if(_=I,I=I+272|0,U=_+240|0,E=_,x=_+224|0,D=_+208|0,p=_+176|0,B=_+160|0,b=_+192|0,v=_+144|0,m=_+128|0,k=_+112|0,M=_+96|0,y=_+80|0,i[(F=_+256|0)>>2]=e,i[U>>2]=i[A>>2],i[U+4>>2]=i[A+4>>2],i[U+8>>2]=i[A+8>>2],i[U+12>>2]=i[A+12>>2],mA(U,F,E),i[o>>2]=0,(0|(U=t+r+(5==(0|t)&1)|0))<=(0|r))I=_;else{f=x+4|0,s=p+4|0,u=r+5|0,l=16848+((a=0|i[F>>2])<<2)|0,h=16928+(a<<2)|0,c=m+8|0,d=k+8|0,g=M+8|0,w=D+4|0,P=r;A:for(;;){C=E+(((0|P)%5|0)<<4)|0,i[D>>2]=i[C>>2],i[D+4>>2]=i[C+4>>2],i[D+8>>2]=i[C+8>>2],i[D+12>>2]=i[C+12>>2];do{}while(2==(0|kA(D,a,0,1)));if((0|P)>(0|r)&0!=(0|RA(e))){if(i[p>>2]=i[D>>2],i[p+4>>2]=i[D+4>>2],i[p+8>>2]=i[D+8>>2],i[p+12>>2]=i[D+12>>2],K(f,B),t=0|i[p>>2],F=0|i[17008+(80*t|0)+(i[x>>2]<<2)>>2],i[p>>2]=i[18608+(80*t|0)+(20*F|0)>>2],(0|(C=0|i[18608+(80*t|0)+(20*F|0)+16>>2]))>0){A=0;do{oA(s),A=A+1|0}while((0|A)<(0|C))}switch(C=18608+(80*t|0)+(20*F|0)+4|0,i[b>>2]=i[C>>2],i[b+4>>2]=i[C+4>>2],i[b+8>>2]=i[C+8>>2],$(b,3*(0|i[l>>2])|0),X(s,b,s),J(s),K(s,v),G=+(0|i[h>>2]),n[m>>3]=3*G,n[c>>3]=0,S=-1.5*G,n[k>>3]=S,n[d>>3]=2.598076211353316*G,n[M>>3]=S,n[g>>3]=-2.598076211353316*G,0|i[17008+(80*(0|i[p>>2])|0)+(i[D>>2]<<2)>>2]){case 1:A=k,t=m;break;case 3:A=M,t=k;break;case 2:A=m,t=M;break;default:A=12;break A}oe(B,v,t,A,y),BA(y,0|i[p>>2],a,1,o+8+(i[o>>2]<<4)|0),i[o>>2]=1+(0|i[o>>2])}if((0|P)<(0|u)&&(K(w,p),BA(p,0|i[D>>2],a,1,o+8+(i[o>>2]<<4)|0),i[o>>2]=1+(0|i[o>>2])),i[x>>2]=i[D>>2],i[x+4>>2]=i[D+4>>2],i[x+8>>2]=i[D+8>>2],i[x+12>>2]=i[D+12>>2],(0|(P=P+1|0))>=(0|U)){A=3;break}}3!=(0|A)?12==(0|A)&&Q(22474,22521,581,22531):I=_}}function mA(A,e,r){A|=0,e|=0,r|=0;var t,n=0,o=0,a=0,f=0,s=0;t=I,I=I+128|0,o=t,f=20208,s=(a=n=t+64|0)+60|0;do{i[a>>2]=i[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|s));f=20272,s=(a=o)+60|0;do{i[a>>2]=i[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|s));n=(s=0==(0|RA(0|i[e>>2])))?n:o,uA(o=A+4|0),lA(o),0|RA(0|i[e>>2])&&(iA(o),i[e>>2]=1+(0|i[e>>2])),i[r>>2]=i[A>>2],X(o,n,e=r+4|0),J(e),i[r+16>>2]=i[A>>2],X(o,n+12|0,e=r+20|0),J(e),i[r+32>>2]=i[A>>2],X(o,n+24|0,e=r+36|0),J(e),i[r+48>>2]=i[A>>2],X(o,n+36|0,e=r+52|0),J(e),i[r+64>>2]=i[A>>2],X(o,n+48|0,r=r+68|0),J(r),I=t}function kA(A,e,r,t){r|=0,t|=0;var n,o,a,f,s,u,l=0,h=0,c=0,d=0,g=0;if(u=I,I=I+32|0,s=u+12|0,o=u,g=(A|=0)+4|0,d=0|i[16928+((e|=0)<<2)>>2],d=(f=0!=(0|t))?3*d|0:d,l=0|i[g>>2],n=0|i[(a=A+8|0)>>2],f){if((0|(l=n+l+(t=0|i[(h=A+12|0)>>2])|0))==(0|d))return I=u,0|(g=1);c=h}else l=n+l+(t=0|i[(c=A+12|0)>>2])|0;if((0|l)<=(0|d))return I=u,0|(g=0);do{if((0|t)>0){if(t=0|i[A>>2],(0|n)>0){h=18608+(80*t|0)+60|0,t=A;break}t=18608+(80*t|0)+40|0,r?(Z(s,d,0,0),q(g,s,o),aA(o),X(o,s,g),h=t,t=A):(h=t,t=A)}else h=18608+(80*(0|i[A>>2])|0)+20|0,t=A}while(0);if(i[t>>2]=i[h>>2],(0|i[(l=h+16|0)>>2])>0){t=0;do{oA(g),t=t+1|0}while((0|t)<(0|i[l>>2]))}return A=h+4|0,i[s>>2]=i[A>>2],i[s+4>>2]=i[A+4>>2],i[s+8>>2]=i[A+8>>2],e=0|i[16848+(e<<2)>>2],$(s,f?3*e|0:e),X(g,s,g),J(g),t=f&&((0|i[a>>2])+(0|i[g>>2])+(0|i[c>>2])|0)==(0|d)?1:2,I=u,0|(g=t)}function MA(A,e){A|=0,e|=0;var r=0;do{r=0|kA(A,e,0,1)}while(2==(0|r));return 0|r}function QA(A,e,r,t,o){A|=0,e|=0,r|=0,t|=0,o|=0;var a,f,s,u,l,h,c,d,g,w,p,B,b,v,m,k,M,y,E=0,x=0,D=0,_=0,F=0;if(y=I,I=I+240|0,v=y+208|0,m=y,k=y+192|0,M=y+176|0,g=y+160|0,w=y+144|0,p=y+128|0,B=y+112|0,b=y+96|0,i[(E=y+224|0)>>2]=e,i[v>>2]=i[A>>2],i[v+4>>2]=i[A+4>>2],i[v+8>>2]=i[A+8>>2],i[v+12>>2]=i[A+12>>2],yA(v,E,m),i[o>>2]=0,(0|(d=t+r+(6==(0|t)&1)|0))<=(0|r))I=y;else{f=r+6|0,s=16928+((a=0|i[E>>2])<<2)|0,u=w+8|0,l=p+8|0,h=B+8|0,c=k+4|0,x=0,D=r,t=-1;A:for(;;){if(A=m+((E=(0|D)%6|0)<<4)|0,i[k>>2]=i[A>>2],i[k+4>>2]=i[A+4>>2],i[k+8>>2]=i[A+8>>2],i[k+12>>2]=i[A+12>>2],A=x,x=0|kA(k,a,0,1),(0|D)>(0|r)&0!=(0|RA(e))&&(1!=(0|A)&&(0|i[k>>2])!=(0|t))){switch(K(m+(((E+5|0)%6|0)<<4)+4|0,M),K(m+(E<<4)+4|0,g),_=+(0|i[s>>2]),n[w>>3]=3*_,n[u>>3]=0,F=-1.5*_,n[p>>3]=F,n[l>>3]=2.598076211353316*_,n[B>>3]=F,n[h>>3]=-2.598076211353316*_,E=0|i[v>>2],0|i[17008+(80*E|0)+(((0|t)==(0|E)?0|i[k>>2]:t)<<2)>>2]){case 1:A=p,t=w;break;case 3:A=B,t=p;break;case 2:A=w,t=B;break;default:A=8;break A}oe(M,g,t,A,b),0|ae(M,b)||0|ae(g,b)||(BA(b,0|i[v>>2],a,1,o+8+(i[o>>2]<<4)|0),i[o>>2]=1+(0|i[o>>2]))}if((0|D)<(0|f)&&(K(c,M),BA(M,0|i[k>>2],a,1,o+8+(i[o>>2]<<4)|0),i[o>>2]=1+(0|i[o>>2])),(0|(D=D+1|0))>=(0|d)){A=3;break}t=0|i[k>>2]}3!=(0|A)?8==(0|A)&&Q(22557,22521,746,22602):I=y}}function yA(A,e,r){A|=0,e|=0,r|=0;var t,n=0,o=0,a=0,f=0,s=0;t=I,I=I+160|0,o=t,f=20336,s=(a=n=t+80|0)+72|0;do{i[a>>2]=i[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|s));f=20416,s=(a=o)+72|0;do{i[a>>2]=i[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|s));n=(s=0==(0|RA(0|i[e>>2])))?n:o,uA(o=A+4|0),lA(o),0|RA(0|i[e>>2])&&(iA(o),i[e>>2]=1+(0|i[e>>2])),i[r>>2]=i[A>>2],X(o,n,e=r+4|0),J(e),i[r+16>>2]=i[A>>2],X(o,n+12|0,e=r+20|0),J(e),i[r+32>>2]=i[A>>2],X(o,n+24|0,e=r+36|0),J(e),i[r+48>>2]=i[A>>2],X(o,n+36|0,e=r+52|0),J(e),i[r+64>>2]=i[A>>2],X(o,n+48|0,e=r+68|0),J(e),i[r+80>>2]=i[A>>2],X(o,n+60|0,r=r+84|0),J(r),I=t}function EA(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function xA(A,e){return e|=0,+f(+(+n[(A|=0)>>3]-+n[e>>3]))<17453292519943298e-27?0|(e=+f(+(+n[A+8>>3]-+n[e+8>>3]))<17453292519943298e-27):0|(e=0)}function DA(A,e){A|=0;var r,t,i,o=0;return t=+n[(e|=0)>>3],r=+n[A>>3],o=(i=+h(.5*(t-r)))*i+(o=+h(.5*(+n[e+8>>3]-+n[A+8>>3])))*(+l(+t)*+l(+r)*o),2*+p(+ +s(+o),+ +s(+(1-o)))*6371.007180918475}function _A(A,e,r){A|=0,r|=0;var t,i,o,a,f=0,u=0,d=0,g=0,B=0,b=0;return b=+n[(e|=0)>>3],o=+n[A>>3],B=+h(.5*(b-o)),d=+n[e+8>>3],i=+n[A+8>>3],g=+h(.5*(d-i)),t=+l(+o),a=+l(+b),g=2*+p(+ +s(+(g=B*B+g*(a*t*g))),+ +s(+(1-g))),B=+n[r>>3],b=+h(.5*(B-b)),f=+n[r+8>>3],d=+h(.5*(f-d)),u=+l(+B),d=2*+p(+ +s(+(d=b*b+d*(a*u*d))),+ +s(+(1-d))),B=+h(.5*(o-B)),f=+h(.5*(i-f)),f=2*+p(+ +s(+(f=B*B+f*(t*u*f))),+ +s(+(1-f))),4*+w(+ +s(+ +c(.5*(u=.5*(g+d+f)))*+c(.5*(u-g))*+c(.5*(u-d))*+c(.5*(u-f))))}function IA(A,e){return e=0|Qe(0|(A|=0),0|(e|=0),45),M(),127&e|0}function FA(A,e){var r=0,t=0,i=0,n=0,o=0,a=0;if(!(!0&134217728==(-16777216&(e|=0)|0)))return 0|(e=0);if(o=0|Qe(0|(A|=0),0|e,45),M(),(o&=127)>>>0>121)return 0|(e=0);r=0|Qe(0|A,0|e,52),M(),r&=15;do{if(0|r){for(i=1,t=0;;){if(n=0|Qe(0|A,0|e,3*(15-i|0)|0),M(),0!=(0|(n&=7))&(1^t)){if(1==(0|n)&0!=(0|S(o))){a=0,t=13;break}t=1}if(7==(0|n)){a=0,t=13;break}if(!(i>>>0>>0)){t=9;break}i=i+1|0}if(9==(0|t)){if(15!=(0|r))break;return 0|(a=1)}if(13==(0|t))return 0|a}}while(0);for(;;){if(a=0|Qe(0|A,0|e,3*(14-r|0)|0),M(),!(7==(7&a|0)&!0)){a=0,t=13;break}if(!(r>>>0<14)){a=1,t=13;break}r=r+1|0}return 13==(0|t)?0|a:0}function CA(A,e,r){r|=0;var t=0,i=0;if(t=0|Qe(0|(A|=0),0|(e|=0),52),M(),(0|(t&=15))>=(0|r)){if((0|t)!=(0|r))if(r>>>0<=15){if(A|=i=0|ye(0|r,0,52),e=0|M()|-15728641&e,(0|t)>(0|r))do{i=0|ye(7,0,3*(14-r|0)|0),r=r+1|0,A|=i,e=0|M()|e}while((0|r)<(0|t))}else e=0,A=0}else e=0,A=0;return k(0|e),0|A}function PA(A,e,r,t){r|=0,t|=0;var n,o=0,a=0,f=0,s=0,u=0,l=0;if(f=0|Qe(0|(A|=0),0|(e|=0),52),M(),(0|r)<16&(0|(f&=15))<=(0|r)){if((0|f)==(0|r))return i[(r=t)>>2]=A,void(i[r+4>>2]=e);if(n=(0|(u=0|ee(7,r-f|0)))/7|0,s=0|Qe(0|A,0|e,45),M(),0|S(127&s)){A:do{if(f)for(a=1;;){if(o=0|Qe(0|A,0|e,3*(15-a|0)|0),M(),0|(o&=7))break A;if(!(a>>>0>>0)){o=0;break}a=a+1|0}else o=0}while(0);a=0==(0|o)}else a=0;if(l=0|ye(f+1|0,0,52),o=0|M()|-15728641&e,PA(e=(l|A)&~(e=0|ye(7,0,0|(s=3*(14-f|0)|0))),f=o&~(0|M()),r,t),o=t+(n<<3)|0,!a)return PA((l=0|ye(1,0,0|s))|e,0|M()|f,r,o),l=o+(n<<3)|0,PA((u=0|ye(2,0,0|s))|e,0|M()|f,r,l),l=l+(n<<3)|0,PA((u=0|ye(3,0,0|s))|e,0|M()|f,r,l),l=l+(n<<3)|0,PA((u=0|ye(4,0,0|s))|e,0|M()|f,r,l),l=l+(n<<3)|0,PA((u=0|ye(5,0,0|s))|e,0|M()|f,r,l),void PA((u=0|ye(6,0,0|s))|e,0|M()|f,r,l+(n<<3)|0);a=o+(n<<3)|0,(0|u)>6&&(_e(0|o,0,(l=(a>>>0>(u=o+8|0)>>>0?a:u)+-1+(0-o)|0)+8&-8|0),o=u+(l>>>3<<3)|0),PA((l=0|ye(2,0,0|s))|e,0|M()|f,r,o),l=o+(n<<3)|0,PA((u=0|ye(3,0,0|s))|e,0|M()|f,r,l),l=l+(n<<3)|0,PA((u=0|ye(4,0,0|s))|e,0|M()|f,r,l),l=l+(n<<3)|0,PA((u=0|ye(5,0,0|s))|e,0|M()|f,r,l),PA((u=0|ye(6,0,0|s))|e,0|M()|f,r,l+(n<<3)|0)}}function UA(A,e){var r=0,t=0,i=0;if(i=0|Qe(0|(A|=0),0|(e|=0),45),M(),!(0|S(127&i)))return 0|(i=0);i=0|Qe(0|A,0|e,52),M(),i&=15;A:do{if(i)for(t=1;;){if(r=0|Qe(0|A,0|e,3*(15-t|0)|0),M(),0|(r&=7))break A;if(!(t>>>0>>0)){r=0;break}t=t+1|0}else r=0}while(0);return 0|(i=0==(0|r)&1)}function GA(A,e){var r=0,t=0,i=0;if(i=0|Qe(0|(A|=0),0|(e|=0),52),M(),!(i&=15))return 0|(i=0);for(t=1;;){if(r=0|Qe(0|A,0|e,3*(15-t|0)|0),M(),0|(r&=7)){t=5;break}if(!(t>>>0>>0)){r=0,t=5;break}t=t+1|0}return 5==(0|t)?0|r:0}function SA(A,e){var r=0,t=0,i=0,n=0,o=0,a=0,f=0;if(f=0|Qe(0|(A|=0),0|(e|=0),52),M(),!(f&=15))return f=A,k(0|(a=e)),0|f;for(a=1,r=0;;){t=0|ye(7,0,0|(n=3*(15-a|0)|0)),i=0|M(),o=0|Qe(0|A,0|e,0|n),M(),A=(n=0|ye(0|fA(7&o),0,0|n))|A&~t,e=(o=0|M())|e&~i;A:do{if(!r)if(0==(n&t|0)&0==(o&i|0))r=0;else if(t=0|Qe(0|A,0|e,52),M(),t&=15){r=1;e:for(;;){switch(o=0|Qe(0|A,0|e,3*(15-r|0)|0),M(),7&o){case 1:break e;case 0:break;default:r=1;break A}if(!(r>>>0>>0)){r=1;break A}r=r+1|0}for(r=1;;){if(i=0|Qe(0|A,0|e,0|(o=3*(15-r|0)|0)),M(),n=0|ye(7,0,0|o),e&=~(0|M()),A=A&~n|(o=0|ye(0|fA(7&i),0,0|o)),e=0|e|M(),!(r>>>0>>0)){r=1;break}r=r+1|0}}else r=1}while(0);if(!(a>>>0>>0))break;a=a+1|0}return k(0|e),0|A}function TA(A,e){var r=0,t=0,i=0,n=0,o=0;if(t=0|Qe(0|(A|=0),0|(e|=0),52),M(),!(t&=15))return t=A,k(0|(r=e)),0|t;for(r=1;o=0|Qe(0|A,0|e,0|(n=3*(15-r|0)|0)),M(),i=0|ye(7,0,0|n),e&=~(0|M()),A=(n=0|ye(0|fA(7&o),0,0|n))|A&~i,e=0|M()|e,r>>>0>>0;)r=r+1|0;return k(0|e),0|A}function VA(A,e){var r=0,t=0,i=0,n=0,o=0,a=0,f=0;if(f=0|Qe(0|(A|=0),0|(e|=0),52),M(),!(f&=15))return f=A,k(0|(a=e)),0|f;for(a=1,r=0;;){t=0|ye(7,0,0|(n=3*(15-a|0)|0)),i=0|M(),o=0|Qe(0|A,0|e,0|n),M(),A=(n=0|ye(0|sA(7&o),0,0|n))|A&~t,e=(o=0|M())|e&~i;A:do{if(!r)if(0==(n&t|0)&0==(o&i|0))r=0;else if(t=0|Qe(0|A,0|e,52),M(),t&=15){r=1;e:for(;;){switch(o=0|Qe(0|A,0|e,3*(15-r|0)|0),M(),7&o){case 1:break e;case 0:break;default:r=1;break A}if(!(r>>>0>>0)){r=1;break A}r=r+1|0}for(r=1;;){if(n=0|ye(7,0,0|(i=3*(15-r|0)|0)),o=e&~(0|M()),e=0|Qe(0|A,0|e,0|i),M(),A=A&~n|(e=0|ye(0|sA(7&e),0,0|i)),e=0|o|M(),!(r>>>0>>0)){r=1;break}r=r+1|0}}else r=1}while(0);if(!(a>>>0>>0))break;a=a+1|0}return k(0|e),0|A}function HA(A,e){var r=0,t=0,i=0,n=0,o=0;if(t=0|Qe(0|(A|=0),0|(e|=0),52),M(),!(t&=15))return t=A,k(0|(r=e)),0|t;for(r=1;n=0|ye(7,0,0|(o=3*(15-r|0)|0)),i=e&~(0|M()),e=0|Qe(0|A,0|e,0|o),M(),A=(e=0|ye(0|sA(7&e),0,0|o))|A&~n,e=0|M()|i,r>>>0>>0;)r=r+1|0;return k(0|e),0|A}function RA(A){return 0|(0|(A|=0))%2}function LA(A,e){A|=0;var r,t;return t=I,I=I+16|0,r=t,(e|=0)>>>0<=15&&2146435072!=(2146435072&i[A+4>>2]|0)&&2146435072!=(2146435072&i[A+8+4>>2]|0)?(!function(A,e,r){var t,i;t=I,I=I+16|0,pA(A|=0,e|=0,r|=0,i=t),W(i,r+4|0),I=t}(A,e,r),e=0|function(A,e){A|=0;var r,t=0,n=0,o=0,a=0,f=0,s=0,u=0,l=0;if(r=I,I=I+64|0,s=r+40|0,n=r+24|0,o=r+12|0,a=r,ye(0|(e|=0),0,52),t=134225919|M(),!e)return(0|i[A+4>>2])>2||(0|i[A+8>>2])>2||(0|i[A+12>>2])>2?(s=0,k(0|(f=0)),I=r,0|s):(ye(0|V(A),0,45),f=0|M()|t,s=-1,k(0|f),I=r,0|s);if(i[s>>2]=i[A>>2],i[s+4>>2]=i[A+4>>2],i[s+8>>2]=i[A+8>>2],i[s+12>>2]=i[A+12>>2],f=s+4|0,(0|e)>0)for(A=-1;i[n>>2]=i[f>>2],i[n+4>>2]=i[f+4>>2],i[n+8>>2]=i[f+8>>2],1&e?(eA(f),i[o>>2]=i[f>>2],i[o+4>>2]=i[f+4>>2],i[o+8>>2]=i[f+8>>2],tA(o)):(rA(f),i[o>>2]=i[f>>2],i[o+4>>2]=i[f+4>>2],i[o+8>>2]=i[f+8>>2],iA(o)),q(n,o,a),J(a),u=0|ye(7,0,0|(l=3*(15-e|0)|0)),t&=~(0|M()),A=(l=0|ye(0|AA(a),0,0|l))|A&~u,t=0|M()|t,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|i[f>>2])<=2&&(0|i[s+8>>2])<=2&&(0|i[s+12>>2])<=2){if(e=0|ye(0|(n=0|V(s)),0,45),e|=A,A=0|M()|-1040385&t,a=0|H(s),!(0|S(n))){if((0|a)<=0)break;for(o=0;;){if(n=0|Qe(0|e,0|A,52),M(),n&=15)for(t=1;s=0|Qe(0|e,0|A,0|(l=3*(15-t|0)|0)),M(),u=0|ye(7,0,0|l),A&=~(0|M()),e=e&~u|(l=0|ye(0|fA(7&s),0,0|l)),A=0|A|M(),t>>>0>>0;)t=t+1|0;if((0|(o=o+1|0))==(0|a))break A}}o=0|Qe(0|e,0|A,52),M(),o&=15;e:do{if(o){t=1;r:for(;;){switch(l=0|Qe(0|e,0|A,3*(15-t|0)|0),M(),7&l){case 1:break r;case 0:break;default:break e}if(!(t>>>0>>0))break e;t=t+1|0}if(0|R(n,0|i[s>>2]))for(t=1;u=0|ye(7,0,0|(s=3*(15-t|0)|0)),l=A&~(0|M()),A=0|Qe(0|e,0|A,0|s),M(),e=e&~u|(A=0|ye(0|sA(7&A),0,0|s)),A=0|l|M(),t>>>0>>0;)t=t+1|0;else for(t=1;s=0|Qe(0|e,0|A,0|(l=3*(15-t|0)|0)),M(),u=0|ye(7,0,0|l),A&=~(0|M()),e=e&~u|(l=0|ye(0|fA(7&s),0,0|l)),A=0|A|M(),t>>>0>>0;)t=t+1|0}}while(0);if((0|a)>0){t=0;do{e=0|SA(e,A),A=0|M(),t=t+1|0}while((0|t)!=(0|a))}}else e=0,A=0}while(0);return l=e,k(0|(u=A)),I=r,0|l}(r,e),A=0|M()):(A=0,e=0),k(0|A),I=t,0|e}function zA(A,e,r){var t,n=0,o=0,a=0;if(t=(r|=0)+4|0,o=0|Qe(0|(A|=0),0|(e|=0),52),M(),o&=15,a=0|Qe(0|A,0|e,45),M(),n=0==(0|o),0|S(127&a)){if(n)return 0|(a=1);n=1}else{if(n)return 0|(a=0);n=0==(0|i[t>>2])&&0==(0|i[r+8>>2])?0!=(0|i[r+12>>2])&1:1}for(r=1;1&r?tA(t):iA(t),a=0|Qe(0|A,0|e,3*(15-r|0)|0),M(),nA(t,7&a),r>>>0>>0;)r=r+1|0;return 0|n}function YA(A,e,r){r|=0;var t,n,o=0,a=0,f=0,s=0,u=0,l=0;n=I,I=I+16|0,t=n,l=0|Qe(0|(A|=0),0|(e|=0),45),M(),l&=127;A:do{if(0!=(0|S(l))&&(f=0|Qe(0|A,0|e,52),M(),0!=(0|(f&=15)))){o=1;e:for(;;){switch(u=0|Qe(0|A,0|e,3*(15-o|0)|0),M(),7&u){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0>>0)){o=e;break A}o=o+1|0}for(a=1,o=e;s=0|ye(7,0,0|(e=3*(15-a|0)|0)),u=o&~(0|M()),o=0|Qe(0|A,0|o,0|e),M(),A=A&~s|(o=0|ye(0|sA(7&o),0,0|e)),o=0|u|M(),a>>>0>>0;)a=a+1|0}else o=e}while(0);if(u=7728+(28*l|0)|0,i[r>>2]=i[u>>2],i[r+4>>2]=i[u+4>>2],i[r+8>>2]=i[u+8>>2],i[r+12>>2]=i[u+12>>2],0|zA(A,o,r)){if(s=r+4|0,i[t>>2]=i[s>>2],i[t+4>>2]=i[s+4>>2],i[t+8>>2]=i[s+8>>2],f=0|Qe(0|A,0|o,52),M(),u=15&f,1&f?(iA(s),f=u+1|0):f=u,0|S(l)){A:do{if(u)for(e=1;;){if(a=0|Qe(0|A,0|o,3*(15-e|0)|0),M(),0|(a&=7)){o=a;break A}if(!(e>>>0>>0)){o=0;break}e=e+1|0}else o=0}while(0);o=4==(0|o)&1}else o=0;if(0|kA(r,f,o,0)){if(0|S(l))do{}while(0!=(0|kA(r,f,0,0)));(0|f)!=(0|u)&&rA(s)}else(0|f)!=(0|u)&&(i[s>>2]=i[t>>2],i[s+4>>2]=i[t+4>>2],i[s+8>>2]=i[t+8>>2]);I=n}else I=n}function OA(A,e,r){r|=0;var t,i;t=I,I=I+16|0,YA(A|=0,e|=0,i=t),e=0|Qe(0|A,0|e,52),M(),bA(i,15&e,r),I=t}function jA(A,e,r){r|=0;var t,i,n=0,o=0;i=I,I=I+16|0,YA(A|=0,e|=0,t=i),n=0|Qe(0|A,0|e,45),M(),n=0==(0|S(127&n)),o=0|Qe(0|A,0|e,52),M(),o&=15;A:do{if(!n){if(0|o)for(n=1;;){if(!(0==((0|ye(7,0,3*(15-n|0)|0))&A|0)&0==((0|M())&e|0)))break A;if(!(n>>>0>>0))break;n=n+1|0}return vA(t,o,0,5,r),void(I=i)}}while(0);QA(t,o,0,6,r),I=i}function NA(A,e){e|=0;var r,t=0,n=0,o=0,a=0,f=0,s=0;if(ye(0|(A|=0),0,52),r=134225919|M(),(0|A)<1){n=0,t=0;do{0|S(n)&&(ye(0|n,0,45),f=0|r|M(),i[(A=e+(t<<3)|0)>>2]=-1,i[A+4>>2]=f,t=t+1|0),n=n+1|0}while(122!=(0|n))}else{f=0,t=0;do{if(0|S(f)){for(ye(0|f,0,45),n=1,o=-1,a=0|r|M();o&=~(s=0|ye(7,0,3*(15-n|0)|0)),a&=~(0|M()),(0|n)!=(0|A);)n=n+1|0;i[(s=e+(t<<3)|0)>>2]=o,i[s+4>>2]=a,t=t+1|0}f=f+1|0}while(122!=(0|f))}}function ZA(A,e,r,t){var n,o=0,a=0,f=0,s=0,u=0;if(n=I,I=I+64|0,f=n,(0|(A|=0))==(0|(r|=0))&(0|(e|=0))==(0|(t|=0))|!1|134217728!=(2013265920&e|0)|!1|134217728!=(2013265920&t|0))return I=n,0|(f=0);if(o=0|Qe(0|A,0|e,52),M(),o&=15,a=0|Qe(0|r,0|t,52),M(),(0|o)!=(15&a|0))return I=n,0|(f=0);if(a=o+-1|0,o>>>0>1&&(u=0|CA(A,e,a),s=0|M(),(0|u)==(0|(a=0|CA(r,t,a)))&(0|s)==(0|M()))){if(o=0|Qe(0|A,0|e,0|(a=3*(15^o)|0)),M(),o&=7,a=0|Qe(0|r,0|t,0|a),M(),0==(0|o)|0==(0|(a&=7)))return I=n,0|(u=1);if((0|i[21136+(o<<2)>>2])==(0|a))return I=n,0|(u=1);if((0|i[21168+(o<<2)>>2])==(0|a))return I=n,0|(u=1)}a=(o=f)+56|0;do{i[o>>2]=0,o=o+4|0}while((0|o)<(0|a));return F(A,e,1,f),o=(0|i[(u=f)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)||(0|i[(u=f+8|0)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)||(0|i[(u=f+16|0)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)||(0|i[(u=f+24|0)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)||(0|i[(u=f+32|0)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)||(0|i[(u=f+40|0)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)?1:1&((0|i[(o=f+48|0)>>2])==(0|r)?(0|i[o+4>>2])==(0|t):0),I=n,0|(u=o)}function WA(A,e,r){r|=0;var t,n,o,a,f=0;if(o=I,I=I+16|0,n=o,f=0|Qe(0|(A|=0),0|(e|=0),56),M(),-1==(0|(e=0|function(A,e,r){r|=0;var t=0,n=0;if(t=0|UA(A=A|0,e=e|0),(r+-1|0)>>>0>5)return 0|(r=-1);if(1==(0|r)&(n=0!=(0|t)))return 0|(r=-1);return t=0|function(A,e){var r=0,t=0,n=0,o=0,a=0,f=0,s=0,u=0;if(u=I,I=I+32|0,o=u,YA(A=A|0,e=e|0,n=u+16|0),a=0|IA(A,e),s=0|GA(A,e),function(A,e){A=7728+(28*(A|=0)|0)|0,i[(e|=0)>>2]=i[A>>2],i[e+4>>2]=i[A+4>>2],i[e+8>>2]=i[A+8>>2],i[e+12>>2]=i[A+12>>2]}(a,o),e=0|function(A,e){A|=0;var r=0,t=0;if((e|=0)>>>0>20)return-1;do{if((0|i[11152+(216*e|0)>>2])!=(0|A))if((0|i[11152+(216*e|0)+8>>2])!=(0|A))if((0|i[11152+(216*e|0)+16>>2])!=(0|A))if((0|i[11152+(216*e|0)+24>>2])!=(0|A))if((0|i[11152+(216*e|0)+32>>2])!=(0|A))if((0|i[11152+(216*e|0)+40>>2])!=(0|A))if((0|i[11152+(216*e|0)+48>>2])!=(0|A))if((0|i[11152+(216*e|0)+56>>2])!=(0|A))if((0|i[11152+(216*e|0)+64>>2])!=(0|A))if((0|i[11152+(216*e|0)+72>>2])!=(0|A))if((0|i[11152+(216*e|0)+80>>2])!=(0|A))if((0|i[11152+(216*e|0)+88>>2])!=(0|A))if((0|i[11152+(216*e|0)+96>>2])!=(0|A))if((0|i[11152+(216*e|0)+104>>2])!=(0|A))if((0|i[11152+(216*e|0)+112>>2])!=(0|A))if((0|i[11152+(216*e|0)+120>>2])!=(0|A))if((0|i[11152+(216*e|0)+128>>2])!=(0|A)){if((0|i[11152+(216*e|0)+136>>2])!=(0|A)){if((0|i[11152+(216*e|0)+144>>2])==(0|A)){A=0,r=2,t=0;break}if((0|i[11152+(216*e|0)+152>>2])==(0|A)){A=0,r=2,t=1;break}if((0|i[11152+(216*e|0)+160>>2])==(0|A)){A=0,r=2,t=2;break}if((0|i[11152+(216*e|0)+168>>2])==(0|A)){A=1,r=2,t=0;break}if((0|i[11152+(216*e|0)+176>>2])==(0|A)){A=1,r=2,t=1;break}if((0|i[11152+(216*e|0)+184>>2])==(0|A)){A=1,r=2,t=2;break}if((0|i[11152+(216*e|0)+192>>2])==(0|A)){A=2,r=2,t=0;break}if((0|i[11152+(216*e|0)+200>>2])==(0|A)){A=2,r=2,t=1;break}if((0|i[11152+(216*e|0)+208>>2])==(0|A)){A=2,r=2,t=2;break}return-1}A=2,r=1,t=2}else A=2,r=1,t=1;else A=2,r=1,t=0;else A=1,r=1,t=2;else A=1,r=1,t=1;else A=1,r=1,t=0;else A=0,r=1,t=2;else A=0,r=1,t=1;else A=0,r=1,t=0;else A=2,r=0,t=2;else A=2,r=0,t=1;else A=2,r=0,t=0;else A=1,r=0,t=2;else A=1,r=0,t=1;else A=1,r=0,t=0;else A=0,r=0,t=2;else A=0,r=0,t=1;else A=0,r=0,t=0}while(0);return 0|i[11152+(216*e|0)+(72*r|0)+(24*A|0)+(t<<3)+4>>2]}(a,0|i[n>>2]),!(0|S(a)))return I=u,0|(s=e);switch(0|a){case 4:A=0,r=14;break;case 14:A=1,r=14;break;case 24:A=2,r=14;break;case 38:A=3,r=14;break;case 49:A=4,r=14;break;case 58:A=5,r=14;break;case 63:A=6,r=14;break;case 72:A=7,r=14;break;case 83:A=8,r=14;break;case 97:A=9,r=14;break;case 107:A=10,r=14;break;case 117:A=11,r=14;break;default:f=0,t=0}14==(0|r)&&(f=0|i[22096+(24*A|0)+8>>2],t=0|i[22096+(24*A|0)+16>>2]);(0|(A=0|i[n>>2]))!=(0|i[o>>2])&&(a=0|T(a))|(0|(A=0|i[n>>2]))==(0|t)&&(e=(e+1|0)%6|0);if(3==(0|s)&(0|A)==(0|t))return I=u,0|(s=(e+5|0)%6|0);if(!(5==(0|s)&(0|A)==(0|f)))return I=u,0|(s=e);return I=u,0|(s=(e+1|0)%6|0)}(A,e),n?0|(r=(5-t+(0|i[22384+(r<<2)>>2])|0)%5|0):0|(r=(6-t+(0|i[22416+(r<<2)>>2])|0)%6|0)}(t=(a=!0&268435456==(2013265920&e|0))?A:0,A=a?-2130706433&e|134217728:0,7&f))))return i[r>>2]=0,void(I=o);YA(t,A,n),f=0|Qe(0|t,0|A,52),M(),f&=15,0|UA(t,A)?vA(n,f,e,2,r):QA(n,f,e,2,r),I=o}function JA(A){A|=0;var e,r,t=0;return(e=0|be(1,12))||Q(22691,22646,49,22704),0|(t=0|i[(r=A+4|0)>>2])?(i[(t=t+8|0)>>2]=e,i[r>>2]=e,0|e):(0|i[A>>2]&&Q(22721,22646,61,22744),i[(t=A)>>2]=e,i[r>>2]=e,0|e)}function KA(A,e){A|=0,e|=0;var r,t;return(t=0|pe(24))||Q(22758,22646,78,22772),i[t>>2]=i[e>>2],i[t+4>>2]=i[e+4>>2],i[t+8>>2]=i[e+8>>2],i[t+12>>2]=i[e+12>>2],i[t+16>>2]=0,0|(r=0|i[(e=A+4|0)>>2])?(i[r+16>>2]=t,i[e>>2]=t,0|t):(0|i[A>>2]&&Q(22787,22646,82,22772),i[A>>2]=t,i[e>>2]=t,0|t)}function XA(A){var e,r,t=0,o=0,a=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,v=0,m=0,k=0,M=0,y=0,E=0,x=0,D=0,_=0,I=0,F=0,C=0,P=0,U=0,G=0,S=0;if(0|i[(s=(A|=0)+8|0)>>2])return 0|(S=1);if(!(a=0|i[A>>2]))return 0|(S=0);t=a,o=0;do{o=o+1|0,t=0|i[t+8>>2]}while(0!=(0|t));if(o>>>0<2)return 0|(S=0);(r=0|pe(o<<2))||Q(22807,22646,317,22826),(e=0|pe(o<<5))||Q(22848,22646,321,22826),i[A>>2]=0,i[(D=A+4|0)>>2]=0,i[s>>2]=0,o=0,U=0,x=0,w=0;A:for(;;){if(g=0|i[a>>2]){u=0,l=g;do{if(c=+n[l+8>>3],t=l,l=0|i[l+16>>2],h=+n[(s=(d=0==(0|l))?g:l)+8>>3],+f(+(c-h))>3.141592653589793){S=14;break}u+=(h-c)*(+n[t>>3]+ +n[s>>3])}while(!d);if(14==(0|S)){S=0,u=0,t=g;do{E=+n[t+8>>3],C=0|i[(P=t+16|0)>>2],y=+n[(C=0==(0|C)?g:C)+8>>3],u+=(+n[t>>3]+ +n[C>>3])*((y<0?y+6.283185307179586:y)-(E<0?E+6.283185307179586:E)),t=0|i[(0==(0|t)?a:P)>>2]}while(0!=(0|t))}u>0?(i[r+(U<<2)>>2]=a,U=U+1|0,s=x,t=w):S=19}else S=19;if(19==(0|S)){S=0;do{if(!o){if(w){s=D,l=w+8|0,t=a,o=A;break}if(0|i[A>>2]){S=27;break A}s=D,l=A,t=a,o=A;break}if(0|i[(t=o+8|0)>>2]){S=21;break A}if(!(o=0|be(1,12))){S=23;break A}i[t>>2]=o,s=o+4|0,l=o,t=w}while(0);if(i[l>>2]=a,i[s>>2]=a,l=e+(x<<5)|0,d=0|i[a>>2]){for(n[(g=e+(x<<5)+8|0)>>3]=17976931348623157e292,n[(w=e+(x<<5)+24|0)>>3]=17976931348623157e292,n[l>>3]=-17976931348623157e292,n[(p=e+(x<<5)+16|0)>>3]=-17976931348623157e292,k=17976931348623157e292,M=-17976931348623157e292,s=0,B=d,c=17976931348623157e292,v=17976931348623157e292,m=-17976931348623157e292,h=-17976931348623157e292;u=+n[B>>3],E=+n[B+8>>3],B=0|i[B+16>>2],y=+n[((b=0==(0|B))?d:B)+8>>3],u>3]=u,c=u),E>3]=E,v=E),u>m?n[l>>3]=u:u=m,E>h&&(n[p>>3]=E,h=E),k=E>0&EM?E:M,s|=+f(+(E-y))>3.141592653589793,!b;)m=u;s&&(n[p>>3]=M,n[w>>3]=k)}else i[l>>2]=0,i[l+4>>2]=0,i[l+8>>2]=0,i[l+12>>2]=0,i[l+16>>2]=0,i[l+20>>2]=0,i[l+24>>2]=0,i[l+28>>2]=0;s=x+1|0}if(a=0|i[(P=a+8|0)>>2],i[P>>2]=0,!a){S=45;break}x=s,w=t}if(21==(0|S))Q(22624,22646,35,22658);else if(23==(0|S))Q(22678,22646,37,22658);else if(27==(0|S))Q(22721,22646,61,22744);else if(45==(0|S)){A:do{if((0|U)>0){for(P=0==(0|s),F=s<<2,C=0==(0|A),I=0,t=0;;){if(_=0|i[r+(I<<2)>>2],P)S=73;else{if(!(x=0|pe(F))){S=50;break}if(!(D=0|pe(F))){S=52;break}e:do{if(C)o=0;else{for(s=0,o=0,l=A;a=e+(s<<5)|0,0|qA(0|i[l>>2],a,0|i[_>>2])?(i[x+(o<<2)>>2]=l,i[D+(o<<2)>>2]=a,b=o+1|0):b=o,l=0|i[l+8>>2];)s=s+1|0,o=b;if((0|b)>0)if(a=0|i[x>>2],1==(0|b))o=a;else for(p=0,B=-1,o=a,w=a;;){for(d=0|i[w>>2],a=0,l=0;g=(0|(s=0|i[i[x+(l<<2)>>2]>>2]))==(0|d)?a:a+(1&(0|qA(s,0|i[D+(l<<2)>>2],0|i[d>>2])))|0,(0|(l=l+1|0))!=(0|b);)a=g;if(o=(s=(0|g)>(0|B))?w:o,(0|(a=p+1|0))==(0|b))break e;p=a,B=s?g:B,w=0|i[x+(a<<2)>>2]}else o=0}}while(0);if(Be(x),Be(D),o){if(a=0|i[(s=o+4|0)>>2])o=a+8|0;else if(0|i[o>>2]){S=70;break}i[o>>2]=_,i[s>>2]=_}else S=73}if(73==(0|S)){if(S=0,0|(t=0|i[_>>2]))do{D=t,t=0|i[t+16>>2],Be(D)}while(0!=(0|t));Be(_),t=2}if((0|(I=I+1|0))>=(0|U)){G=t;break A}}50==(0|S)?Q(22863,22646,249,22882):52==(0|S)?Q(22901,22646,252,22882):70==(0|S)&&Q(22721,22646,61,22744)}else G=0}while(0);return Be(r),Be(e),0|(S=G)}return 0}function qA(A,e,r){A|=0;var t,o=0,a=0,f=0,s=0,u=0,l=0,h=0;if(!(0|O(e|=0,r|=0)))return 0|(A=0);if(e=0|Y(e),t=+n[r>>3],o=e&(o=+n[r+8>>3])<0?o+6.283185307179586:o,!(A=0|i[A>>2]))return 0|(A=0);if(e){e=0,r=A;A:for(;;){for(;s=+n[r>>3],l=+n[r+8>>3],h=0|i[(r=r+16|0)>>2],f=+n[(h=0==(0|h)?A:h)>>3],a=+n[h+8>>3],s>f?(u=s,s=l):(u=f,f=s,s=a,a=l),tu;)if(!(r=0|i[r>>2])){r=22;break A}if(o=(s=s<0?s+6.283185307179586:s)==o|(l=a<0?a+6.283185307179586:a)==o?o+-2220446049250313e-31:o,((l+=(t-f)/(u-f)*(s-l))<0?l+6.283185307179586:l)>o&&(e^=1),!(r=0|i[r>>2])){r=22;break}}if(22==(0|r))return 0|e}else{e=0,r=A;A:for(;;){for(;s=+n[r>>3],l=+n[r+8>>3],h=0|i[(r=r+16|0)>>2],f=+n[(h=0==(0|h)?A:h)>>3],a=+n[h+8>>3],s>f?(u=s,s=l):(u=f,f=s,s=a,a=l),tu;)if(!(r=0|i[r>>2])){r=22;break A}if(a+(t-f)/(u-f)*(s-a)>(o=s==o|a==o?o+-2220446049250313e-31:o)&&(e^=1),!(r=0|i[r>>2])){r=22;break}}if(22==(0|r))return 0|e}return 0}function $A(A,e,r,n,o){r|=0,n|=0,o|=0;var a,f,s,u,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,v=0;if(u=I,I=I+32|0,v=u+16|0,s=u,l=0|Qe(0|(A|=0),0|(e|=0),52),M(),l&=15,p=0|Qe(0|r,0|n,52),M(),(0|l)!=(15&p|0))return I=u,0|(v=1);if(g=0|Qe(0|A,0|e,45),M(),g&=127,w=0|Qe(0|r,0|n,45),M(),p=(0|g)!=(0|(w&=127))){if(7==(0|(c=0|z(g,w))))return I=u,0|(v=2);7==(0|(d=0|z(w,g)))?Q(22925,22949,151,22959):(B=c,h=d)}else B=0,h=0;a=0|S(g),f=0|S(w),i[v>>2]=0,i[v+4>>2]=0,i[v+8>>2]=0,i[v+12>>2]=0;do{if(B){if(c=(0|(w=0|i[4304+(28*g|0)+(B<<2)>>2]))>0,f)if(c){g=0,d=r,c=n;do{d=0|VA(d,c),c=0|M(),1==(0|(h=0|sA(h)))&&(h=0|sA(1)),g=g+1|0}while((0|g)!=(0|w));w=h,g=d,d=c}else w=h,g=r,d=n;else if(c){g=0,d=r,c=n;do{d=0|HA(d,c),c=0|M(),h=0|sA(h),g=g+1|0}while((0|g)!=(0|w));w=h,g=d,d=c}else w=h,g=r,d=n;if(zA(g,d,v),p||Q(22972,22949,181,22959),(c=0!=(0|a))&(h=0!=(0|f))&&Q(22999,22949,182,22959),c){if(h=0|GA(A,e),0|t[22032+(7*h|0)+B>>0]){l=3;break}g=d=0|i[21200+(28*h|0)+(B<<2)>>2],b=26}else if(h){if(h=0|GA(g,d),0|t[22032+(7*h|0)+w>>0]){l=4;break}g=0,d=0|i[21200+(28*w|0)+(h<<2)>>2],b=26}else h=0;if(26==(0|b))if((0|d)<=-1&&Q(23030,22949,212,22959),(0|g)<=-1&&Q(23053,22949,213,22959),(0|d)>0){c=v+4|0,h=0;do{aA(c),h=h+1|0}while((0|h)!=(0|d));h=g}else h=g;if(i[s>>2]=0,i[s+4>>2]=0,i[s+8>>2]=0,nA(s,B),0|l)for(;0|RA(l)?tA(s):iA(s),(0|l)>1;)l=l+-1|0;if((0|h)>0){l=0;do{aA(s),l=l+1|0}while((0|l)!=(0|h))}X(b=v+4|0,s,b),J(b),b=50}else if(zA(r,n,v),0!=(0|a)&0!=(0|f))if((0|w)!=(0|g)&&Q(23077,22949,243,22959),h=0|GA(A,e),l=0|GA(r,n),0|t[22032+(7*h|0)+l>>0])l=5;else if((0|(h=0|i[21200+(28*h|0)+(l<<2)>>2]))>0){c=v+4|0,l=0;do{aA(c),l=l+1|0}while((0|l)!=(0|h));b=50}else b=50;else b=50}while(0);return 50==(0|b)&&(l=v+4|0,i[o>>2]=i[l>>2],i[o+4>>2]=i[l+4>>2],i[o+8>>2]=i[l+8>>2],l=0),I=u,0|(v=l)}function Ae(A,e,r,t){r|=0,t|=0;var n,o,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0;if(o=I,I=I+48|0,s=o+36|0,u=o+24|0,l=o+12|0,h=o,f=0|Qe(0|(A|=0),0|(e|=0),52),M(),f&=15,d=0|Qe(0|A,0|e,45),M(),n=0|S(d&=127),ye(0|f,0,52),p=134225919|M(),i[(w=t)>>2]=-1,i[w+4>>2]=p,!f)return(0|i[r>>2])>1||(0|i[r+4>>2])>1||(0|i[r+8>>2])>1||127==(0|(a=0|L(d,0|AA(r))))?(I=o,0|(p=1)):(g=0|ye(0|a,0,45),w=0|M(),w=-1040385&i[(d=t)+4>>2]|w,i[(p=t)>>2]=i[d>>2]|g,i[p+4>>2]=w,I=o,0|(p=0));for(i[s>>2]=i[r>>2],i[s+4>>2]=i[r+4>>2],i[s+8>>2]=i[r+8>>2];i[u>>2]=i[s>>2],i[u+4>>2]=i[s+4>>2],i[u+8>>2]=i[s+8>>2],0|RA(f)?(eA(s),i[l>>2]=i[s>>2],i[l+4>>2]=i[s+4>>2],i[l+8>>2]=i[s+8>>2],tA(l)):(rA(s),i[l>>2]=i[s>>2],i[l+4>>2]=i[s+4>>2],i[l+8>>2]=i[s+8>>2],iA(l)),q(u,l,h),J(h),B=0|i[(w=t)>>2],w=0|i[w+4>>2],r=0|ye(7,0,0|(b=3*(15-f|0)|0)),w&=~(0|M()),b=0|ye(0|AA(h),0,0|b),w=0|M()|w,i[(p=t)>>2]=b|B&~r,i[p+4>>2]=w,(0|f)>1;)f=f+-1|0;A:do{if((0|i[s>>2])<=1&&(0|i[s+4>>2])<=1&&(0|i[s+8>>2])<=1){h=127==(0|(u=0|L(d,f=0|AA(s))))?0:0|S(u);e:do{if(f){if(n){if(s=21408+(28*(0|GA(A,e))|0)+(f<<2)|0,(0|(s=0|i[s>>2]))>0){r=0;do{f=0|fA(f),r=r+1|0}while((0|r)!=(0|s))}if(1==(0|f)){a=3;break A}127==(0|(r=0|L(d,f)))&&Q(23104,22949,376,23134),0|S(r)?Q(23147,22949,377,23134):(g=s,c=f,a=r)}else g=0,c=f,a=u;if((0|(l=0|i[4304+(28*d|0)+(c<<2)>>2]))<=-1&&Q(23178,22949,384,23134),!h){if((0|g)<=-1&&Q(23030,22949,417,23134),0|g){f=0,r=0|i[(s=t)>>2],s=0|i[s+4>>2];do{r=0|TA(r,s),s=0|M(),i[(b=t)>>2]=r,i[b+4>>2]=s,f=f+1|0}while((0|f)<(0|g))}if((0|l)<=0){f=54;break}for(f=0,r=0|i[(s=t)>>2],s=0|i[s+4>>2];;)if(r=0|TA(r,s),s=0|M(),i[(b=t)>>2]=r,i[b+4>>2]=s,(0|(f=f+1|0))==(0|l)){f=54;break e}}if(7==(0|(u=0|z(a,d)))&&Q(22925,22949,393,23134),r=0|i[(f=t)>>2],f=0|i[f+4>>2],(0|l)>0){s=0;do{r=0|TA(r,f),f=0|M(),i[(b=t)>>2]=r,i[b+4>>2]=f,s=s+1|0}while((0|s)!=(0|l))}if(r=0|GA(r,f),b=0|T(a),(0|(r=0|i[(b?21824:21616)+(28*u|0)+(r<<2)>>2]))<=-1&&Q(23030,22949,412,23134),r){f=0,s=0|i[(u=t)>>2],u=0|i[u+4>>2];do{s=0|SA(s,u),u=0|M(),i[(b=t)>>2]=s,i[b+4>>2]=u,f=f+1|0}while((0|f)<(0|r));f=54}else f=54}else if(0!=(0|n)&0!=(0|h))if(f=21408+(28*(b=0|GA(A,e))|0)+((0|GA(0|i[(f=t)>>2],0|i[f+4>>2]))<<2)|0,(0|(f=0|i[f>>2]))<=-1&&Q(23201,22949,433,23134),f){a=0,r=0|i[(s=t)>>2],s=0|i[s+4>>2];do{r=0|TA(r,s),s=0|M(),i[(b=t)>>2]=r,i[b+4>>2]=s,a=a+1|0}while((0|a)<(0|f));a=u,f=54}else a=u,f=55;else a=u,f=54}while(0);if(54==(0|f)&&h&&(f=55),55==(0|f)&&1==(0|GA(0|i[(b=t)>>2],0|i[b+4>>2]))){a=4;break}p=0|i[(b=t)>>2],b=-1040385&i[b+4>>2],B=0|ye(0|a,0,45),b=0|b|M(),i[(a=t)>>2]=p|B,i[a+4>>2]=b,a=0}else a=2}while(0);return I=o,0|(b=a)}function ee(A,e){var r=0;if(!(e|=0))return 0|(r=1);r=A|=0,A=1;do{A=0|b(0==(1&e|0)?1:r,A),e>>=1,r=0|b(r,r)}while(0!=(0|e));return 0|A}function re(A,e,r){A|=0;var t,o,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0;if(!(0|O(e|=0,r|=0)))return 0|(d=0);if(e=0|Y(e),o=+n[r>>3],a=e&(a=+n[r+8>>3])<0?a+6.283185307179586:a,(0|(d=0|i[A>>2]))<=0)return 0|(d=0);if(t=0|i[A+4>>2],e){e=0,r=-1,A=0;A:for(;;){for(c=A;u=+n[t+(c<<4)>>3],h=+n[t+(c<<4)+8>>3],s=+n[t+((A=(r+2|0)%(0|d)|0)<<4)>>3],f=+n[t+(A<<4)+8>>3],u>s?(l=u,u=h):(l=s,s=u,u=f,f=h),ol;){if(!((0|(r=c+1|0))<(0|d))){r=22;break A}A=c,c=r,r=A}if(a=(u=u<0?u+6.283185307179586:u)==a|(h=f<0?f+6.283185307179586:f)==a?a+-2220446049250313e-31:a,((h+=(o-s)/(l-s)*(u-h))<0?h+6.283185307179586:h)>a&&(e^=1),(0|(A=c+1|0))>=(0|d)){r=22;break}r=c}if(22==(0|r))return 0|e}else{e=0,r=-1,A=0;A:for(;;){for(c=A;u=+n[t+(c<<4)>>3],h=+n[t+(c<<4)+8>>3],s=+n[t+((A=(r+2|0)%(0|d)|0)<<4)>>3],f=+n[t+(A<<4)+8>>3],u>s?(l=u,u=h):(l=s,s=u,u=f,f=h),ol;){if(!((0|(r=c+1|0))<(0|d))){r=22;break A}A=c,c=r,r=A}if(f+(o-s)/(l-s)*(u-f)>(a=u==a|f==a?a+-2220446049250313e-31:a)&&(e^=1),(0|(A=c+1|0))>=(0|d)){r=22;break}r=c}if(22==(0|r))return 0|e}return 0}function te(A,e){e|=0;var r,t,o,a,s,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,v=0,m=0;if(!(t=0|i[(A|=0)>>2]))return i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,i[e+12>>2]=0,i[e+16>>2]=0,i[e+20>>2]=0,i[e+24>>2]=0,void(i[e+28>>2]=0);if(n[(o=e+8|0)>>3]=17976931348623157e292,n[(a=e+24|0)>>3]=17976931348623157e292,n[e>>3]=-17976931348623157e292,n[(s=e+16|0)>>3]=-17976931348623157e292,!((0|t)<=0)){for(r=0|i[A+4>>2],p=17976931348623157e292,B=-17976931348623157e292,b=0,A=-1,c=17976931348623157e292,d=17976931348623157e292,w=-17976931348623157e292,l=-17976931348623157e292,v=0;u=+n[r+(v<<4)>>3],g=+n[r+(v<<4)+8>>3],h=+n[r+(((0|(A=A+2|0))==(0|t)?0:A)<<4)+8>>3],u>3]=u,c=u),g>3]=g,d=g),u>w?n[e>>3]=u:u=w,g>l&&(n[s>>3]=g,l=g),p=g>0&gB?g:B,b|=+f(+(g-h))>3.141592653589793,(0|(A=v+1|0))!=(0|t);)m=v,w=u,v=A,A=m;b&&(n[s>>3]=B,n[a>>3]=p)}}function ie(A,e){e|=0;var r,t=0,o=0,a=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,v=0,m=0,k=0,M=0,Q=0,y=0,E=0;if(B=0|i[(A|=0)>>2]){if(n[(b=e+8|0)>>3]=17976931348623157e292,n[(v=e+24|0)>>3]=17976931348623157e292,n[e>>3]=-17976931348623157e292,n[(m=e+16|0)>>3]=-17976931348623157e292,(0|B)>0){for(a=0|i[A+4>>2],w=17976931348623157e292,p=-17976931348623157e292,o=0,t=-1,h=17976931348623157e292,c=17976931348623157e292,g=-17976931348623157e292,u=-17976931348623157e292,k=0;s=+n[a+(k<<4)>>3],d=+n[a+(k<<4)+8>>3],l=+n[a+(((0|(y=t+2|0))==(0|B)?0:y)<<4)+8>>3],s>3]=s,h=s),d>3]=d,c=d),s>g?n[e>>3]=s:s=g,d>u&&(n[m>>3]=d,u=d),w=d>0&dp?d:p,o|=+f(+(d-l))>3.141592653589793,(0|(t=k+1|0))!=(0|B);)y=k,g=s,k=t,t=y;o&&(n[m>>3]=p,n[v>>3]=w)}}else i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,i[e+12>>2]=0,i[e+16>>2]=0,i[e+20>>2]=0,i[e+24>>2]=0,i[e+28>>2]=0;if(!((0|(t=0|i[(y=A+8|0)>>2]))<=0)){r=A+12|0,Q=0;do{if(a=0|i[r>>2],o=Q,v=e+((Q=Q+1|0)<<5)|0,m=0|i[a+(o<<3)>>2]){if(n[(k=e+(Q<<5)+8|0)>>3]=17976931348623157e292,n[(A=e+(Q<<5)+24|0)>>3]=17976931348623157e292,n[v>>3]=-17976931348623157e292,n[(M=e+(Q<<5)+16|0)>>3]=-17976931348623157e292,(0|m)>0){for(B=0|i[a+(o<<3)+4>>2],w=17976931348623157e292,p=-17976931348623157e292,a=0,o=-1,b=0,h=17976931348623157e292,c=17976931348623157e292,d=-17976931348623157e292,u=-17976931348623157e292;s=+n[B+(b<<4)>>3],g=+n[B+(b<<4)+8>>3],l=+n[B+(((0|(o=o+2|0))==(0|m)?0:o)<<4)+8>>3],s>3]=s,h=s),g>3]=g,c=g),s>d?n[v>>3]=s:s=d,g>u&&(n[M>>3]=g,u=g),w=g>0&gp?g:p,a|=+f(+(g-l))>3.141592653589793,(0|(o=b+1|0))!=(0|m);)E=b,b=o,d=s,o=E;a&&(n[M>>3]=p,n[A>>3]=w)}}else i[v>>2]=0,i[v+4>>2]=0,i[v+8>>2]=0,i[v+12>>2]=0,i[v+16>>2]=0,i[v+20>>2]=0,i[v+24>>2]=0,i[v+28>>2]=0,t=0|i[y>>2]}while((0|Q)<(0|t))}}function ne(A,e,r){var t=0,n=0,o=0;if(!(0|re(A|=0,e|=0,r|=0)))return 0|(n=0);if((0|i[(n=A+8|0)>>2])<=0)return 0|(n=1);for(t=A+12|0,A=0;;){if(o=A,A=A+1|0,0|re((0|i[t>>2])+(o<<3)|0,e+(A<<5)|0,r)){A=0,t=6;break}if((0|A)>=(0|i[n>>2])){A=1,t=6;break}}return 6==(0|t)?0|A:0}function oe(A,e,r,t,i){e|=0,r|=0,t|=0,i|=0;var o,a,f,s,u,l,h,c=0;s=+n[(A|=0)>>3],f=+n[e>>3]-s,a=+n[A+8>>3],o=+n[e+8>>3]-a,l=+n[r>>3],c=((c=+n[t>>3]-l)*(a-(h=+n[r+8>>3]))-(s-l)*(u=+n[t+8>>3]-h))/(f*u-o*c),n[i>>3]=s+f*c,n[i+8>>3]=a+o*c}function ae(A,e){return e|=0,+n[(A|=0)>>3]!=+n[e>>3]?0|(e=0):0|(e=+n[A+8>>3]==+n[e+8>>3])}function fe(A,e){e|=0;var r,t,i;return+((i=+n[(A|=0)>>3]-+n[e>>3])*i+(t=+n[A+8>>3]-+n[e+8>>3])*t+(r=+n[A+16>>3]-+n[e+16>>3])*r)}function se(A,e,r){A|=0,r|=0;var t=0;(0|(e|=0))>0?(t=0|be(e,4),i[A>>2]=t,t||Q(23230,23253,40,23267)):i[A>>2]=0,i[A+4>>2]=e,i[A+8>>2]=0,i[A+12>>2]=r}function ue(A){var e,r,t,o=0,a=0,s=0,l=0;e=(A|=0)+4|0,r=A+12|0,t=A+8|0;A:for(;;){for(a=0|i[e>>2],o=0;;){if((0|o)>=(0|a))break A;if(s=0|i[A>>2],l=0|i[s+(o<<2)>>2])break;o=o+1|0}o=s+(~~(+f(+ +u(10,+ +(15-(0|i[r>>2])|0))*(+n[l>>3]+ +n[l+8>>3]))%+(0|a))>>>0<<2)|0,a=0|i[o>>2];e:do{if(0|a){if(s=l+32|0,(0|a)==(0|l))i[o>>2]=i[s>>2];else{if(!(o=0|i[(a=a+32|0)>>2]))break;for(;(0|o)!=(0|l);)if(!(o=0|i[(a=o+32|0)>>2]))break e;i[a>>2]=i[s>>2]}Be(l),i[t>>2]=(0|i[t>>2])-1}}while(0)}Be(0|i[A>>2])}function le(A){var e,r=0,t=0;for(e=0|i[(A|=0)+4>>2],t=0;;){if((0|t)>=(0|e)){r=0,t=4;break}if(r=0|i[(0|i[A>>2])+(t<<2)>>2]){t=4;break}t=t+1|0}return 4==(0|t)?0|r:0}function he(A,e){e|=0;var r=0,t=0,o=0,a=0;if(r=~~(+f(+ +u(10,+ +(15-(0|i[(A|=0)+12>>2])|0))*(+n[e>>3]+ +n[e+8>>3]))%+(0|i[A+4>>2]))>>>0,r=(0|i[A>>2])+(r<<2)|0,!(t=0|i[r>>2]))return 0|(a=1);a=e+32|0;do{if((0|t)!=(0|e)){if(!(r=0|i[t+32>>2]))return 0|(a=1);for(o=r;;){if((0|o)==(0|e)){o=8;break}if(!(r=0|i[o+32>>2])){r=1,o=10;break}t=o,o=r}if(8==(0|o)){i[t+32>>2]=i[a>>2];break}if(10==(0|o))return 0|r}else i[r>>2]=i[a>>2]}while(0);return Be(e),i[(a=A+8|0)>>2]=(0|i[a>>2])-1,0|(a=0)}function ce(A,e,r){A|=0,e|=0,r|=0;var t,o=0,a=0,s=0;(t=0|pe(40))||Q(23283,23253,98,23296),i[t>>2]=i[e>>2],i[t+4>>2]=i[e+4>>2],i[t+8>>2]=i[e+8>>2],i[t+12>>2]=i[e+12>>2],i[(a=t+16|0)>>2]=i[r>>2],i[a+4>>2]=i[r+4>>2],i[a+8>>2]=i[r+8>>2],i[a+12>>2]=i[r+12>>2],i[t+32>>2]=0,a=~~(+f(+ +u(10,+ +(15-(0|i[A+12>>2])|0))*(+n[e>>3]+ +n[e+8>>3]))%+(0|i[A+4>>2]))>>>0,a=(0|i[A>>2])+(a<<2)|0,o=0|i[a>>2];do{if(o){for(;!(0|xA(o,e)&&0|xA(o+16|0,r));)if(a=0|i[o+32>>2],!(0|i[(o=0==(0|a)?o:a)+32>>2])){s=10;break}if(10==(0|s)){i[o+32>>2]=t;break}return Be(t),0|(s=o)}i[a>>2]=t}while(0);return i[(s=A+8|0)>>2]=1+(0|i[s>>2]),0|(s=t)}function de(A,e,r){e|=0,r|=0;var t=0,o=0;if(o=~~(+f(+ +u(10,+ +(15-(0|i[(A|=0)+12>>2])|0))*(+n[e>>3]+ +n[e+8>>3]))%+(0|i[A+4>>2]))>>>0,!(o=0|i[(0|i[A>>2])+(o<<2)>>2]))return 0|(r=0);if(!r){for(A=o;;){if(0|xA(A,e)){t=10;break}if(!(A=0|i[A+32>>2])){A=0,t=10;break}}if(10==(0|t))return 0|A}for(A=o;;){if(0|xA(A,e)&&0|xA(A+16|0,r)){t=10;break}if(!(A=0|i[A+32>>2])){A=0,t=10;break}}return 10==(0|t)?0|A:0}function ge(A,e){e|=0;var r=0;if(r=~~(+f(+ +u(10,+ +(15-(0|i[(A|=0)+12>>2])|0))*(+n[e>>3]+ +n[e+8>>3]))%+(0|i[A+4>>2]))>>>0,!(A=0|i[(0|i[A>>2])+(r<<2)>>2]))return 0|(r=0);for(;;){if(0|xA(A,e)){e=5;break}if(!(A=0|i[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function we(A){return 0|~~+function(A){return+ +Ie(+(A=+A))}(A=+A)}function pe(A){A|=0;var e,r=0,t=0,n=0,o=0,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,v=0,m=0,k=0;e=I,I=I+16|0,d=e;do{if(A>>>0<245){if(A=(l=A>>>0<11?16:A+11&-8)>>>3,3&(t=(c=0|i[5829])>>>A)|0)return n=0|i[(t=(A=23356+((r=(1&t^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(a=0|i[(o=n+8|0)>>2]))==(0|A)?i[5829]=c&~(1<>2]=A,i[t>>2]=a),k=r<<3,i[n+4>>2]=3|k,i[(k=n+k+4|0)>>2]=1|i[k>>2],I=e,0|(k=o);if(l>>>0>(h=0|i[5831])>>>0){if(0|t)return r=((r=t<>>=s=r>>>12&16)>>>5&8)|s|(a=(r>>>=t)>>>2&4)|(A=(r>>>=a)>>>1&2)|(n=(r>>>=A)>>>1&1))+(r>>>n)|0)<<1<<2)|0)+8|0)>>2],(0|(t=0|i[(s=a+8|0)>>2]))==(0|r)?(A=c&~(1<>2]=r,i[A>>2]=t,A=c),f=(k=n<<3)-l|0,i[a+4>>2]=3|l,i[(o=a+l|0)+4>>2]=1|f,i[a+k>>2]=f,0|h&&(n=0|i[5834],t=23356+((r=h>>>3)<<1<<2)|0,A&(r=1<>2]:(i[5829]=A|r,r=t,A=t+8|0),i[A>>2]=n,i[r+12>>2]=n,i[n+8>>2]=r,i[n+12>>2]=t),i[5831]=f,i[5834]=o,I=e,0|(k=s);if(a=0|i[5830]){for(t=(a&0-a)-1|0,t=u=0|i[23620+(((n=(t>>>=o=t>>>12&16)>>>5&8)|o|(f=(t>>>=n)>>>2&4)|(s=(t>>>=f)>>>1&2)|(u=(t>>>=s)>>>1&1))+(t>>>u)<<2)>>2],s=u,u=(-8&i[u+4>>2])-l|0;(A=0|i[t+16>>2])||(A=0|i[t+20>>2]);)t=A,s=(o=(f=(-8&i[A+4>>2])-l|0)>>>0>>0)?A:s,u=o?f:u;if((f=s+l|0)>>>0>s>>>0){o=0|i[s+24>>2],r=0|i[s+12>>2];do{if((0|r)==(0|s)){if(!(r=0|i[(A=s+20|0)>>2])&&!(r=0|i[(A=s+16|0)>>2])){t=0;break}for(;;)if(t=0|i[(n=r+20|0)>>2])r=t,A=n;else{if(!(t=0|i[(n=r+16|0)>>2]))break;r=t,A=n}i[A>>2]=0,t=r}else t=0|i[s+8>>2],i[t+12>>2]=r,i[r+8>>2]=t,t=r}while(0);do{if(0|o){if(r=0|i[s+28>>2],(0|s)==(0|i[(A=23620+(r<<2)|0)>>2])){if(i[A>>2]=t,!t){i[5830]=a&~(1<>2])==(0|s)?k:o+20|0)>>2]=t,!t)break;i[t+24>>2]=o,0|(r=0|i[s+16>>2])&&(i[t+16>>2]=r,i[r+24>>2]=t),0|(r=0|i[s+20>>2])&&(i[t+20>>2]=r,i[r+24>>2]=t)}}while(0);return u>>>0<16?(k=u+l|0,i[s+4>>2]=3|k,i[(k=s+k+4|0)>>2]=1|i[k>>2]):(i[s+4>>2]=3|l,i[f+4>>2]=1|u,i[f+u>>2]=u,0|h&&(n=0|i[5834],t=23356+((r=h>>>3)<<1<<2)|0,(r=1<>2]:(i[5829]=r|c,r=t,A=t+8|0),i[A>>2]=n,i[r+12>>2]=n,i[n+8>>2]=r,i[n+12>>2]=t),i[5831]=u,i[5834]=f),I=e,0|(k=s+8|0)}c=l}else c=l}else c=l}else if(A>>>0<=4294967231)if(l=-8&(A=A+11|0),n=0|i[5830]){o=0-l|0,u=(A>>>=8)?l>>>0>16777215?31:l>>>((u=14-((s=((p=A<<(c=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|c|(u=((p<<=s)+245760|0)>>>16&2))+(p<>>15)|0)+7|0)&1|u<<1:0,t=0|i[23620+(u<<2)>>2];A:do{if(t)for(A=0,s=l<<(31==(0|u)?0:25-(u>>>1)|0),a=0;;){if((f=(-8&i[t+4>>2])-l|0)>>>0>>0){if(!f){A=t,o=0,p=65;break A}A=t,o=f}if(a=0==(0|(p=0|i[t+20>>2]))|(0|p)==(0|(t=0|i[t+16+(s>>>31<<2)>>2]))?a:p,!t){t=a,p=61;break}s<<=1}else t=0,A=0,p=61}while(0);if(61==(0|p)){if(0==(0|t)&0==(0|A)){if(!(A=((A=2<>>=f=c>>>12&16)>>>5&8)|f|(s=(c>>>=a)>>>2&4)|(u=(c>>>=s)>>>1&2)|(t=(c>>>=u)>>>1&1))+(c>>>t)<<2)>>2]}t?p=65:(s=A,f=o)}if(65==(0|p))for(a=t;;){if(o=(t=(c=(-8&i[a+4>>2])-l|0)>>>0>>0)?c:o,A=t?a:A,(t=0|i[a+16>>2])||(t=0|i[a+20>>2]),!t){s=A,f=o;break}a=t}if(0!=(0|s)&&f>>>0<((0|i[5831])-l|0)>>>0&&(h=s+l|0)>>>0>s>>>0){a=0|i[s+24>>2],r=0|i[s+12>>2];do{if((0|r)==(0|s)){if(!(r=0|i[(A=s+20|0)>>2])&&!(r=0|i[(A=s+16|0)>>2])){r=0;break}for(;;)if(t=0|i[(o=r+20|0)>>2])r=t,A=o;else{if(!(t=0|i[(o=r+16|0)>>2]))break;r=t,A=o}i[A>>2]=0}else k=0|i[s+8>>2],i[k+12>>2]=r,i[r+8>>2]=k}while(0);do{if(a){if(A=0|i[s+28>>2],(0|s)==(0|i[(t=23620+(A<<2)|0)>>2])){if(i[t>>2]=r,!r){n&=~(1<>2])==(0|s)?k:a+20|0)>>2]=r,!r)break;i[r+24>>2]=a,0|(A=0|i[s+16>>2])&&(i[r+16>>2]=A,i[A+24>>2]=r),(A=0|i[s+20>>2])&&(i[r+20>>2]=A,i[A+24>>2]=r)}}while(0);A:do{if(f>>>0<16)k=f+l|0,i[s+4>>2]=3|k,i[(k=s+k+4|0)>>2]=1|i[k>>2];else{if(i[s+4>>2]=3|l,i[h+4>>2]=1|f,i[h+f>>2]=f,r=f>>>3,f>>>0<256){t=23356+(r<<1<<2)|0,(A=0|i[5829])&(r=1<>2]:(i[5829]=A|r,r=t,A=t+8|0),i[A>>2]=h,i[r+12>>2]=h,i[h+8>>2]=r,i[h+12>>2]=t;break}if(r=23620+((t=(r=f>>>8)?f>>>0>16777215?31:f>>>((t=14-((v=((k=r<<(m=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|m|(t=((k<<=v)+245760|0)>>>16&2))+(k<>>15)|0)+7|0)&1|t<<1:0)<<2)|0,i[h+28>>2]=t,i[(A=h+16|0)+4>>2]=0,i[A>>2]=0,!(n&(A=1<>2]=h,i[h+24>>2]=r,i[h+12>>2]=h,i[h+8>>2]=h;break}r=0|i[r>>2];e:do{if((-8&i[r+4>>2]|0)!=(0|f)){for(n=f<<(31==(0|t)?0:25-(t>>>1)|0);A=0|i[(t=r+16+(n>>>31<<2)|0)>>2];){if((-8&i[A+4>>2]|0)==(0|f)){r=A;break e}n<<=1,r=A}i[t>>2]=h,i[h+24>>2]=r,i[h+12>>2]=h,i[h+8>>2]=h;break A}}while(0);k=0|i[(m=r+8|0)>>2],i[k+12>>2]=h,i[m>>2]=h,i[h+8>>2]=k,i[h+12>>2]=r,i[h+24>>2]=0}}while(0);return I=e,0|(k=s+8|0)}c=l}else c=l;else c=-1}while(0);if((t=0|i[5831])>>>0>=c>>>0)return r=t-c|0,A=0|i[5834],r>>>0>15?(k=A+c|0,i[5834]=k,i[5831]=r,i[k+4>>2]=1|r,i[A+t>>2]=r,i[A+4>>2]=3|c):(i[5831]=0,i[5834]=0,i[A+4>>2]=3|t,i[(k=A+t+4|0)>>2]=1|i[k>>2]),I=e,0|(k=A+8|0);if((f=0|i[5832])>>>0>c>>>0)return v=f-c|0,i[5832]=v,m=(k=0|i[5835])+c|0,i[5835]=m,i[m+4>>2]=1|v,i[k+4>>2]=3|c,I=e,0|(k=k+8|0);if(0|i[5947]?A=0|i[5949]:(i[5949]=4096,i[5948]=4096,i[5950]=-1,i[5951]=-1,i[5952]=0,i[5940]=0,i[5947]=-16&d^1431655768,A=4096),s=c+48|0,(l=(a=A+(u=c+47|0)|0)&(o=0-A|0))>>>0<=c>>>0)return I=e,0|(k=0);if(0|(A=0|i[5939])&&(d=(h=0|i[5937])+l|0)>>>0<=h>>>0|d>>>0>A>>>0)return I=e,0|(k=0);A:do{if(4&i[5940])r=0,p=143;else{t=0|i[5835];e:do{if(t){for(n=23764;!((d=0|i[n>>2])>>>0<=t>>>0&&(d+(0|i[n+4>>2])|0)>>>0>t>>>0);){if(!(A=0|i[n+8>>2])){p=128;break e}n=A}if((r=a-f&o)>>>0<2147483647)if((0|(A=0|Fe(0|r)))==((0|i[n>>2])+(0|i[n+4>>2])|0)){if(-1!=(0|A)){f=r,a=A,p=145;break A}}else n=A,p=136;else r=0}else p=128}while(0);do{if(128==(0|p))if(-1!=(0|(t=0|Fe(0)))&&(r=t,w=(r=(0==((w=(g=0|i[5948])+-1|0)&r|0)?0:(w+r&0-g)-r|0)+l|0)+(g=0|i[5937])|0,r>>>0>c>>>0&r>>>0<2147483647)){if(0|(d=0|i[5939])&&w>>>0<=g>>>0|w>>>0>d>>>0){r=0;break}if((0|(A=0|Fe(0|r)))==(0|t)){f=r,a=t,p=145;break A}n=A,p=136}else r=0}while(0);do{if(136==(0|p)){if(t=0-r|0,!(s>>>0>r>>>0&r>>>0<2147483647&-1!=(0|n))){if(-1==(0|n)){r=0;break}f=r,a=n,p=145;break A}if((A=u-r+(A=0|i[5949])&0-A)>>>0>=2147483647){f=r,a=n,p=145;break A}if(-1==(0|Fe(0|A))){Fe(0|t),r=0;break}f=A+r|0,a=n,p=145;break A}}while(0);i[5940]=4|i[5940],p=143}}while(0);if(143==(0|p)&&l>>>0<2147483647&&!(-1==(0|(v=0|Fe(0|l)))|1^(b=(B=(w=0|Fe(0))-v|0)>>>0>(c+40|0)>>>0)|v>>>0>>0&-1!=(0|v)&-1!=(0|w)^1)&&(f=b?B:r,a=v,p=145),145==(0|p)){r=(0|i[5937])+f|0,i[5937]=r,r>>>0>(0|i[5938])>>>0&&(i[5938]=r),u=0|i[5835];A:do{if(u){for(r=23764;;){if((0|a)==((A=0|i[r>>2])+(t=0|i[r+4>>2])|0)){p=154;break}if(!(n=0|i[r+8>>2]))break;r=n}if(154==(0|p)&&(m=r+4|0,0==(8&i[r+12>>2]|0))&&a>>>0>u>>>0&A>>>0<=u>>>0){i[m>>2]=t+f,m=u+(v=0==(7&(v=u+8|0)|0)?0:0-v&7)|0,v=(k=(0|i[5832])+f|0)-v|0,i[5835]=m,i[5832]=v,i[m+4>>2]=1|v,i[u+k+4>>2]=40,i[5836]=i[5951];break}for(a>>>0<(0|i[5833])>>>0&&(i[5833]=a),t=a+f|0,r=23764;;){if((0|i[r>>2])==(0|t)){p=162;break}if(!(A=0|i[r+8>>2]))break;r=A}if(162==(0|p)&&0==(8&i[r+12>>2]|0)){i[r>>2]=a,i[(h=r+4|0)>>2]=(0|i[h>>2])+f,l=(h=a+(0==(7&(h=a+8|0)|0)?0:0-h&7)|0)+c|0,s=(r=t+(0==(7&(r=t+8|0)|0)?0:0-r&7)|0)-h-c|0,i[h+4>>2]=3|c;e:do{if((0|u)==(0|r))k=(0|i[5832])+s|0,i[5832]=k,i[5835]=l,i[l+4>>2]=1|k;else{if((0|i[5834])==(0|r)){k=(0|i[5831])+s|0,i[5831]=k,i[5834]=l,i[l+4>>2]=1|k,i[l+k>>2]=k;break}if(1==(3&(A=0|i[r+4>>2])|0)){f=-8&A,n=A>>>3;r:do{if(A>>>0<256){if(A=0|i[r+8>>2],(0|(t=0|i[r+12>>2]))==(0|A)){i[5829]=i[5829]&~(1<>2]=t,i[t+8>>2]=A;break}a=0|i[r+24>>2],A=0|i[r+12>>2];do{if((0|A)==(0|r)){if(A=0|i[(n=(t=r+16|0)+4|0)>>2])t=n;else if(!(A=0|i[t>>2])){A=0;break}for(;;)if(n=0|i[(o=A+20|0)>>2])A=n,t=o;else{if(!(n=0|i[(o=A+16|0)>>2]))break;A=n,t=o}i[t>>2]=0}else k=0|i[r+8>>2],i[k+12>>2]=A,i[A+8>>2]=k}while(0);if(!a)break;n=23620+((t=0|i[r+28>>2])<<2)|0;do{if((0|i[n>>2])==(0|r)){if(i[n>>2]=A,0|A)break;i[5830]=i[5830]&~(1<>2])==(0|r)?k:a+20|0)>>2]=A,!A)break r}while(0);if(i[A+24>>2]=a,0|(n=0|i[(t=r+16|0)>>2])&&(i[A+16>>2]=n,i[n+24>>2]=A),!(t=0|i[t+4>>2]))break;i[A+20>>2]=t,i[t+24>>2]=A}while(0);r=r+f|0,o=f+s|0}else o=s;if(i[(r=r+4|0)>>2]=-2&i[r>>2],i[l+4>>2]=1|o,i[l+o>>2]=o,r=o>>>3,o>>>0<256){t=23356+(r<<1<<2)|0,(A=0|i[5829])&(r=1<>2]:(i[5829]=A|r,r=t,A=t+8|0),i[A>>2]=l,i[r+12>>2]=l,i[l+8>>2]=r,i[l+12>>2]=t;break}r=o>>>8;do{if(r){if(o>>>0>16777215){n=31;break}n=o>>>((n=14-((v=((k=r<<(m=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|m|(n=((k<<=v)+245760|0)>>>16&2))+(k<>>15)|0)+7|0)&1|n<<1}else n=0}while(0);if(r=23620+(n<<2)|0,i[l+28>>2]=n,i[(A=l+16|0)+4>>2]=0,i[A>>2]=0,!((A=0|i[5830])&(t=1<>2]=l,i[l+24>>2]=r,i[l+12>>2]=l,i[l+8>>2]=l;break}r=0|i[r>>2];r:do{if((-8&i[r+4>>2]|0)!=(0|o)){for(n=o<<(31==(0|n)?0:25-(n>>>1)|0);A=0|i[(t=r+16+(n>>>31<<2)|0)>>2];){if((-8&i[A+4>>2]|0)==(0|o)){r=A;break r}n<<=1,r=A}i[t>>2]=l,i[l+24>>2]=r,i[l+12>>2]=l,i[l+8>>2]=l;break e}}while(0);k=0|i[(m=r+8|0)>>2],i[k+12>>2]=l,i[m>>2]=l,i[l+8>>2]=k,i[l+12>>2]=r,i[l+24>>2]=0}}while(0);return I=e,0|(k=h+8|0)}for(r=23764;!((A=0|i[r>>2])>>>0<=u>>>0&&(k=A+(0|i[r+4>>2])|0)>>>0>u>>>0);)r=0|i[r+8>>2];r=(A=(A=(o=k+-47|0)+(0==(7&(A=o+8|0)|0)?0:0-A&7)|0)>>>0<(o=u+16|0)>>>0?u:A)+8|0,m=a+(v=0==(7&(v=a+8|0)|0)?0:0-v&7)|0,v=(t=f+-40|0)-v|0,i[5835]=m,i[5832]=v,i[m+4>>2]=1|v,i[a+t+4>>2]=40,i[5836]=i[5951],i[(t=A+4|0)>>2]=27,i[r>>2]=i[5941],i[r+4>>2]=i[5942],i[r+8>>2]=i[5943],i[r+12>>2]=i[5944],i[5941]=a,i[5942]=f,i[5944]=0,i[5943]=r,r=A+24|0;do{m=r,i[(r=r+4|0)>>2]=7}while((m+8|0)>>>0>>0);if((0|A)!=(0|u)){if(a=A-u|0,i[t>>2]=-2&i[t>>2],i[u+4>>2]=1|a,i[A>>2]=a,r=a>>>3,a>>>0<256){t=23356+(r<<1<<2)|0,(A=0|i[5829])&(r=1<>2]:(i[5829]=A|r,r=t,A=t+8|0),i[A>>2]=u,i[r+12>>2]=u,i[u+8>>2]=r,i[u+12>>2]=t;break}if(t=23620+((n=(r=a>>>8)?a>>>0>16777215?31:a>>>((n=14-((v=((k=r<<(m=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|m|(n=((k<<=v)+245760|0)>>>16&2))+(k<>>15)|0)+7|0)&1|n<<1:0)<<2)|0,i[u+28>>2]=n,i[u+20>>2]=0,i[o>>2]=0,!((r=0|i[5830])&(A=1<>2]=u,i[u+24>>2]=t,i[u+12>>2]=u,i[u+8>>2]=u;break}r=0|i[t>>2];e:do{if((-8&i[r+4>>2]|0)!=(0|a)){for(n=a<<(31==(0|n)?0:25-(n>>>1)|0);A=0|i[(t=r+16+(n>>>31<<2)|0)>>2];){if((-8&i[A+4>>2]|0)==(0|a)){r=A;break e}n<<=1,r=A}i[t>>2]=u,i[u+24>>2]=r,i[u+12>>2]=u,i[u+8>>2]=u;break A}}while(0);k=0|i[(m=r+8|0)>>2],i[k+12>>2]=u,i[m>>2]=u,i[u+8>>2]=k,i[u+12>>2]=r,i[u+24>>2]=0}}else 0==(0|(k=0|i[5833]))|a>>>0>>0&&(i[5833]=a),i[5941]=a,i[5942]=f,i[5944]=0,i[5838]=i[5947],i[5837]=-1,i[5842]=23356,i[5841]=23356,i[5844]=23364,i[5843]=23364,i[5846]=23372,i[5845]=23372,i[5848]=23380,i[5847]=23380,i[5850]=23388,i[5849]=23388,i[5852]=23396,i[5851]=23396,i[5854]=23404,i[5853]=23404,i[5856]=23412,i[5855]=23412,i[5858]=23420,i[5857]=23420,i[5860]=23428,i[5859]=23428,i[5862]=23436,i[5861]=23436,i[5864]=23444,i[5863]=23444,i[5866]=23452,i[5865]=23452,i[5868]=23460,i[5867]=23460,i[5870]=23468,i[5869]=23468,i[5872]=23476,i[5871]=23476,i[5874]=23484,i[5873]=23484,i[5876]=23492,i[5875]=23492,i[5878]=23500,i[5877]=23500,i[5880]=23508,i[5879]=23508,i[5882]=23516,i[5881]=23516,i[5884]=23524,i[5883]=23524,i[5886]=23532,i[5885]=23532,i[5888]=23540,i[5887]=23540,i[5890]=23548,i[5889]=23548,i[5892]=23556,i[5891]=23556,i[5894]=23564,i[5893]=23564,i[5896]=23572,i[5895]=23572,i[5898]=23580,i[5897]=23580,i[5900]=23588,i[5899]=23588,i[5902]=23596,i[5901]=23596,i[5904]=23604,i[5903]=23604,m=a+(v=0==(7&(v=a+8|0)|0)?0:0-v&7)|0,v=(k=f+-40|0)-v|0,i[5835]=m,i[5832]=v,i[m+4>>2]=1|v,i[a+k+4>>2]=40,i[5836]=i[5951]}while(0);if((r=0|i[5832])>>>0>c>>>0)return v=r-c|0,i[5832]=v,m=(k=0|i[5835])+c|0,i[5835]=m,i[m+4>>2]=1|v,i[k+4>>2]=3|c,I=e,0|(k=k+8|0)}return i[(k=23312)>>2]=12,I=e,0|(k=0)}function Be(A){var e=0,r=0,t=0,n=0,o=0,a=0,f=0,s=0;if(A|=0){r=A+-8|0,n=0|i[5833],s=r+(e=-8&(A=0|i[A+-4>>2]))|0;do{if(1&A)f=r,a=r;else{if(t=0|i[r>>2],!(3&A))return;if(o=t+e|0,(a=r+(0-t)|0)>>>0>>0)return;if((0|i[5834])==(0|a)){if(3!=(3&(e=0|i[(A=s+4|0)>>2])|0)){f=a,e=o;break}return i[5831]=o,i[A>>2]=-2&e,i[a+4>>2]=1|o,void(i[a+o>>2]=o)}if(r=t>>>3,t>>>0<256){if(A=0|i[a+8>>2],(0|(e=0|i[a+12>>2]))==(0|A)){i[5829]=i[5829]&~(1<>2]=e,i[e+8>>2]=A,f=a,e=o;break}n=0|i[a+24>>2],A=0|i[a+12>>2];do{if((0|A)==(0|a)){if(A=0|i[(r=(e=a+16|0)+4|0)>>2])e=r;else if(!(A=0|i[e>>2])){A=0;break}for(;;)if(r=0|i[(t=A+20|0)>>2])A=r,e=t;else{if(!(r=0|i[(t=A+16|0)>>2]))break;A=r,e=t}i[e>>2]=0}else f=0|i[a+8>>2],i[f+12>>2]=A,i[A+8>>2]=f}while(0);if(n){if(e=0|i[a+28>>2],(0|i[(r=23620+(e<<2)|0)>>2])==(0|a)){if(i[r>>2]=A,!A){i[5830]=i[5830]&~(1<>2])==(0|a)?f:n+20|0)>>2]=A,!A){f=a,e=o;break}i[A+24>>2]=n,0|(r=0|i[(e=a+16|0)>>2])&&(i[A+16>>2]=r,i[r+24>>2]=A),(e=0|i[e+4>>2])?(i[A+20>>2]=e,i[e+24>>2]=A,f=a,e=o):(f=a,e=o)}else f=a,e=o}}while(0);if(!(a>>>0>=s>>>0)&&1&(t=0|i[(A=s+4|0)>>2])){if(2&t)i[A>>2]=-2&t,i[f+4>>2]=1|e,i[a+e>>2]=e,n=e;else{if((0|i[5835])==(0|s)){if(s=(0|i[5832])+e|0,i[5832]=s,i[5835]=f,i[f+4>>2]=1|s,(0|f)!=(0|i[5834]))return;return i[5834]=0,void(i[5831]=0)}if((0|i[5834])==(0|s))return s=(0|i[5831])+e|0,i[5831]=s,i[5834]=a,i[f+4>>2]=1|s,void(i[a+s>>2]=s);n=(-8&t)+e|0,r=t>>>3;do{if(t>>>0<256){if(e=0|i[s+8>>2],(0|(A=0|i[s+12>>2]))==(0|e)){i[5829]=i[5829]&~(1<>2]=A,i[A+8>>2]=e;break}o=0|i[s+24>>2],A=0|i[s+12>>2];do{if((0|A)==(0|s)){if(A=0|i[(r=(e=s+16|0)+4|0)>>2])e=r;else if(!(A=0|i[e>>2])){r=0;break}for(;;)if(r=0|i[(t=A+20|0)>>2])A=r,e=t;else{if(!(r=0|i[(t=A+16|0)>>2]))break;A=r,e=t}i[e>>2]=0,r=A}else r=0|i[s+8>>2],i[r+12>>2]=A,i[A+8>>2]=r,r=A}while(0);if(0|o){if(A=0|i[s+28>>2],(0|i[(e=23620+(A<<2)|0)>>2])==(0|s)){if(i[e>>2]=r,!r){i[5830]=i[5830]&~(1<>2])==(0|s)?t:o+20|0)>>2]=r,!r)break;i[r+24>>2]=o,0|(e=0|i[(A=s+16|0)>>2])&&(i[r+16>>2]=e,i[e+24>>2]=r),0|(A=0|i[A+4>>2])&&(i[r+20>>2]=A,i[A+24>>2]=r)}}while(0);if(i[f+4>>2]=1|n,i[a+n>>2]=n,(0|f)==(0|i[5834]))return void(i[5831]=n)}if(A=n>>>3,n>>>0<256)return r=23356+(A<<1<<2)|0,(e=0|i[5829])&(A=1<>2]:(i[5829]=e|A,A=r,e=r+8|0),i[e>>2]=f,i[A+12>>2]=f,i[f+8>>2]=A,void(i[f+12>>2]=r);A=23620+((t=(A=n>>>8)?n>>>0>16777215?31:n>>>((t=14-((o=((s=A<<(a=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|a|(t=((s<<=o)+245760|0)>>>16&2))+(s<>>15)|0)+7|0)&1|t<<1:0)<<2)|0,i[f+28>>2]=t,i[f+20>>2]=0,i[f+16>>2]=0,e=0|i[5830],r=1<>2];e:do{if((-8&i[A+4>>2]|0)!=(0|n)){for(t=n<<(31==(0|t)?0:25-(t>>>1)|0);e=0|i[(r=A+16+(t>>>31<<2)|0)>>2];){if((-8&i[e+4>>2]|0)==(0|n)){A=e;break e}t<<=1,A=e}i[r>>2]=f,i[f+24>>2]=A,i[f+12>>2]=f,i[f+8>>2]=f;break A}}while(0);s=0|i[(a=A+8|0)>>2],i[s+12>>2]=f,i[a>>2]=f,i[f+8>>2]=s,i[f+12>>2]=A,i[f+24>>2]=0}else i[5830]=e|r,i[A>>2]=f,i[f+24>>2]=A,i[f+12>>2]=f,i[f+8>>2]=f}while(0);if(s=(0|i[5837])-1|0,i[5837]=s,!(0|s)){for(A=23772;A=0|i[A>>2];)A=A+8|0;i[5837]=-1}}}}function be(A,e){e|=0;var r=0;return(A|=0)?(r=0|b(e,A),(e|A)>>>0>65535&&(r=(0|(r>>>0)/(A>>>0))==(0|e)?r:-1)):r=0,(A=0|pe(r))&&3&i[A+-4>>2]?(_e(0|A,0,0|r),0|A):0|A}function ve(A,e,r,t){return 0|(k(0|(t=(e|=0)-(t|=0)-((r|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-r>>>0|0)}function me(A){return 0|((A|=0)?31-(0|m(A^A-1))|0:32)}function ke(A,e,r,t,n){n|=0;var o=0,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0;if(l=A|=0,a=r|=0,f=c=t|=0,!(u=s=e|=0))return o=0!=(0|n),f?o?(i[n>>2]=0|A,i[n+4>>2]=0&e,n=0,0|(k(0|(c=0)),n)):(n=0,0|(k(0|(c=0)),n)):(o&&(i[n>>2]=(l>>>0)%(a>>>0),i[n+4>>2]=0),n=(l>>>0)/(a>>>0)>>>0,0|(k(0|(c=0)),n));o=0==(0|f);do{if(a){if(!o){if((o=(0|m(0|f))-(0|m(0|u))|0)>>>0<=31){a=h=o+1|0,A=l>>>(h>>>0)&(e=o-31>>31)|u<<(f=31-o|0),e&=u>>>(h>>>0),o=0,f=l<>2]=0|A,i[n+4>>2]=s|0&e,n=0,0|(k(0|(c=0)),n)):(n=0,0|(k(0|(c=0)),n))}if((o=a-1|0)&a|0){a=f=33+(0|m(0|a))-(0|m(0|u))|0,A=(h=32-f|0)-1>>31&u>>>((d=f-32|0)>>>0)|(u<>>(f>>>0))&(e=d>>31),e&=u>>>(f>>>0),o=l<<(g=64-f|0)&(s=h>>31),f=(u<>>(d>>>0))&s|l<>31;break}return 0|n&&(i[n>>2]=o&l,i[n+4>>2]=0),1==(0|a)?(g=0|A,0|(k(0|(d=s|0&e)),g)):(d=u>>>((g=0|me(0|a))>>>0)|0,g=u<<32-g|l>>>(g>>>0)|0,0|(k(0|d),g))}if(o)return 0|n&&(i[n>>2]=(u>>>0)%(a>>>0),i[n+4>>2]=0),g=(u>>>0)/(a>>>0)>>>0,0|(k(0|(d=0)),g);if(!l)return 0|n&&(i[n>>2]=0,i[n+4>>2]=(u>>>0)%(f>>>0)),g=(u>>>0)/(f>>>0)>>>0,0|(k(0|(d=0)),g);if(!((o=f-1|0)&f))return 0|n&&(i[n>>2]=0|A,i[n+4>>2]=o&u|0&e),d=0,g=u>>>((0|me(0|f))>>>0),0|(k(0|d),g);if((o=(0|m(0|f))-(0|m(0|u))|0)>>>0<=30){a=e=o+1|0,A=u<<(f=31-o|0)|l>>>(e>>>0),e=u>>>(e>>>0),o=0,f=l<>2]=0|A,i[n+4>>2]=s|0&e,g=0,0|(k(0|(d=0)),g)):(g=0,0|(k(0|(d=0)),g))}while(0);if(a){u=0|function(A,e,r,t){return 0|(k((e|=0)+(t|=0)+((r=(A|=0)+(r|=0)>>>0)>>>0>>0|0)>>>0|0),0|r)}(0|(h=0|r),0|(l=c|0&t),-1,-1),r=0|M(),s=f,f=0;do{t=s,s=o>>>31|s<<1,o=f|o<<1,ve(0|u,0|r,0|(t=A<<1|t>>>31|0),0|(c=A>>>31|e<<1|0)),f=1&(d=(g=0|M())>>31|((0|g)<0?-1:0)<<1),A=0|ve(0|t,0|c,d&h|0,(((0|g)<0?-1:0)>>31|((0|g)<0?-1:0)<<1)&l|0),e=0|M(),a=a-1|0}while(0!=(0|a));u=s,s=0}else u=f,s=0,f=0;return a=0,0|n&&(i[n>>2]=A,i[n+4>>2]=e),g=-2&(o<<1|0)|f,0|(k(0|(d=(0|o)>>>31|(u|a)<<1|0&(a<<1|o>>>31)|s)),g)}function Me(A,e,r,t){var n,o;return o=I,I=I+16|0,ke(A|=0,e|=0,r|=0,t|=0,n=0|o),I=o,0|(k(0|i[n+4>>2]),0|i[n>>2])}function Qe(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(k(e>>>r|0),A>>>r|(e&(1<>>r-32|0)}function ye(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(k(e<>>32-r|0),A<=0?+a(A+.5):+B(A-.5)}function De(A,e,r){A|=0,e|=0;var n,o,a=0;if((0|(r|=0))>=8192)return x(0|A,0|e,0|r),0|A;if(o=0|A,n=A+r|0,(3&A)==(3&e)){for(;3&A;){if(!r)return 0|o;t[A>>0]=0|t[e>>0],A=A+1|0,e=e+1|0,r=r-1|0}for(a=(r=-4&n|0)-64|0;(0|A)<=(0|a);)i[A>>2]=i[e>>2],i[A+4>>2]=i[e+4>>2],i[A+8>>2]=i[e+8>>2],i[A+12>>2]=i[e+12>>2],i[A+16>>2]=i[e+16>>2],i[A+20>>2]=i[e+20>>2],i[A+24>>2]=i[e+24>>2],i[A+28>>2]=i[e+28>>2],i[A+32>>2]=i[e+32>>2],i[A+36>>2]=i[e+36>>2],i[A+40>>2]=i[e+40>>2],i[A+44>>2]=i[e+44>>2],i[A+48>>2]=i[e+48>>2],i[A+52>>2]=i[e+52>>2],i[A+56>>2]=i[e+56>>2],i[A+60>>2]=i[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|r);)i[A>>2]=i[e>>2],A=A+4|0,e=e+4|0}else for(r=n-4|0;(0|A)<(0|r);)t[A>>0]=0|t[e>>0],t[A+1>>0]=0|t[e+1>>0],t[A+2>>0]=0|t[e+2>>0],t[A+3>>0]=0|t[e+3>>0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|n);)t[A>>0]=0|t[e>>0],A=A+1|0,e=e+1|0;return 0|o}function _e(A,e,r){e|=0;var n,o=0,a=0,f=0;if(n=(A|=0)+(r|=0)|0,e&=255,(0|r)>=67){for(;3&A;)t[A>>0]=e,A=A+1|0;for(f=e|e<<8|e<<16|e<<24,a=(o=-4&n|0)-64|0;(0|A)<=(0|a);)i[A>>2]=f,i[A+4>>2]=f,i[A+8>>2]=f,i[A+12>>2]=f,i[A+16>>2]=f,i[A+20>>2]=f,i[A+24>>2]=f,i[A+28>>2]=f,i[A+32>>2]=f,i[A+36>>2]=f,i[A+40>>2]=f,i[A+44>>2]=f,i[A+48>>2]=f,i[A+52>>2]=f,i[A+56>>2]=f,i[A+60>>2]=f,A=A+64|0;for(;(0|A)<(0|o);)i[A>>2]=f,A=A+4|0}for(;(0|A)<(0|n);)t[A>>0]=e,A=A+1|0;return n-r|0}function Ie(A){return(A=+A)>=0?+a(A+.5):+B(A-.5)}function Fe(A){A|=0;var e,r,t;return t=0|E(),(0|A)>0&(0|(e=(r=0|i[o>>2])+A|0))<(0|r)|(0|e)<0?(_(0|e),y(12),-1):(0|e)>(0|t)&&!(0|D(0|e))?(y(12),-1):(i[o>>2]=e,0|r)}return{___uremdi3:Me,_bitshift64Lshr:Qe,_bitshift64Shl:ye,_calloc:be,_cellAreaKm2:function(A,e){var r,t,n,o=0;if(n=I,I=I+192|0,t=n,OA(A|=0,e|=0,r=n+168|0),jA(A,e,t),(0|(e=0|i[t>>2]))>0){if(o=+_A(t+8|0,t+8+((1!=(0|e)&1)<<4)|0,r)+0,1!=(0|e)){A=1;do{o+=+_A(t+8+(A<<4)|0,t+8+(((0|(A=A+1|0))%(0|e)|0)<<4)|0,r)}while((0|A)<(0|e))}}else o=0;return I=n,6371.007180918475*o*6371.007180918475},_cellAreaM2:function(A,e){var r,t,n,o=0;if(n=I,I=I+192|0,t=n,OA(A|=0,e|=0,r=n+168|0),jA(A,e,t),(0|(e=0|i[t>>2]))>0){if(o=+_A(t+8|0,t+8+((1!=(0|e)&1)<<4)|0,r)+0,1!=(0|e)){A=1;do{o+=+_A(t+8+(A<<4)|0,t+8+(((0|(A=A+1|0))%(0|e)|0)<<4)|0,r)}while((0|A)<(0|e))}}else o=0;return I=n,6371.007180918475*o*6371.007180918475*1e3*1e3},_cellAreaRads2:function(A,e){var r,t,n,o=0;if(n=I,I=I+192|0,t=n,OA(A|=0,e|=0,r=n+168|0),jA(A,e,t),(0|(e=0|i[t>>2]))<=0)return I=n,+(o=0);if(o=+_A(t+8|0,t+8+((1!=(0|e)&1)<<4)|0,r)+0,1==(0|e))return I=n,+o;A=1;do{o+=+_A(t+8+(A<<4)|0,t+8+(((0|(A=A+1|0))%(0|e)|0)<<4)|0,r)}while((0|A)<(0|e));return I=n,+o},_compact:function(A,e,r){e|=0;var t,n=0,o=0,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,v=0,m=0,k=0,Q=0,y=0,E=0;if(!(r|=0))return 0|(y=0);if(n=0|i[(o=A|=0)>>2],!0&0==(15728640&(o=0|i[o+4>>2])|0)){if((0|r)<=0)return 0|(y=0);if(i[(y=e)>>2]=n,i[y+4>>2]=o,1==(0|r))return 0|(y=0);n=1;do{Q=0|i[(k=A+(n<<3)|0)+4>>2],i[(y=e+(n<<3)|0)>>2]=i[k>>2],i[y+4>>2]=Q,n=n+1|0}while((0|n)!=(0|r));return 0|(n=0)}if(!(Q=0|pe(k=r<<3)))return 0|(y=-3);if(De(0|Q,0|A,0|k),!(t=0|be(r,8)))return Be(Q),0|(y=-3);n=r;A:for(;;){v=0|Qe(0|(h=0|i[(f=Q)>>2]),0|(f=0|i[f+4>>2]),52),M(),m=(v&=15)+-1|0,b=(0|n)>0;e:do{if(b){if(B=((0|n)<0)<<31>>31,w=0|ye(0|m,0,52),p=0|M(),m>>>0>15)for(o=0,A=h,r=f;;){if(!(0==(0|A)&0==(0|r))){if(a=0|Qe(0|A,0|r,52),M(),s=(0|(a&=15))<(0|m),a=(0|a)==(0|m),r=0|Me(0|(l=s?0:a?A:0),0|(A=s?0:a?r:0),0|n,0|B),M(),0==(0|(u=0|i[(s=a=t+(r<<3)|0)>>2]))&0==(0|(s=0|i[s+4>>2])))r=l;else for(w=0,g=r,d=s,r=l;;){if((0|w)>(0|n)){y=41;break A}if((0|u)==(0|r)&(-117440513&d|0)==(0|A)){l=0|Qe(0|u,0|d,56),M(),c=(l&=7)+1|0,p=0|Qe(0|u,0|d,45),M();r:do{if(0|S(127&p)){if(u=0|Qe(0|u,0|d,52),M(),!(u&=15)){s=6;break}for(s=1;;){if(!(0==((p=0|ye(7,0,3*(15-s|0)|0))&r|0)&0==((0|M())&A|0))){s=7;break r}if(!(s>>>0>>0)){s=6;break}s=s+1|0}}else s=7}while(0);if((l+2|0)>>>0>s>>>0){y=51;break A}p=0|ye(0|c,0,56),A=0|M()|-117440513&A,i[(s=a)>>2]=0,i[s+4>>2]=0,s=g,r|=p}else s=(g+1|0)%(0|n)|0;if(0==(0|(u=0|i[(d=a=t+(s<<3)|0)>>2]))&0==(0|(d=0|i[d+4>>2])))break;w=w+1|0,g=s}i[(p=a)>>2]=r,i[p+4>>2]=A}if((0|(o=o+1|0))>=(0|n))break e;A=0|i[(r=Q+(o<<3)|0)>>2],r=0|i[r+4>>2]}for(o=0,A=h,r=f;;){if(!(0==(0|A)&0==(0|r))){if(s=0|Qe(0|A,0|r,52),M(),(0|(s&=15))>=(0|m)){if((0|s)!=(0|m)&&(A|=w,r=-15728641&r|p,s>>>0>=v>>>0)){a=m;do{g=0|ye(7,0,3*(14-a|0)|0),a=a+1|0,A|=g,r=0|M()|r}while(a>>>0>>0)}}else A=0,r=0;if(s=0|Me(0|A,0|r,0|n,0|B),M(),!(0==(0|(l=0|i[(u=a=t+(s<<3)|0)>>2]))&0==(0|(u=0|i[u+4>>2]))))for(g=0;;){if((0|g)>(0|n)){y=41;break A}if((0|l)==(0|A)&(-117440513&u|0)==(0|r)){c=0|Qe(0|l,0|u,56),M(),d=(c&=7)+1|0,E=0|Qe(0|l,0|u,45),M();r:do{if(0|S(127&E)){if(l=0|Qe(0|l,0|u,52),M(),!(l&=15)){u=6;break}for(u=1;;){if(!(0==((E=0|ye(7,0,3*(15-u|0)|0))&A|0)&0==((0|M())&r|0))){u=7;break r}if(!(u>>>0>>0)){u=6;break}u=u+1|0}}else u=7}while(0);if((c+2|0)>>>0>u>>>0){y=51;break A}E=0|ye(0|d,0,56),r=0|M()|-117440513&r,i[(d=a)>>2]=0,i[d+4>>2]=0,A|=E}else s=(s+1|0)%(0|n)|0;if(0==(0|(l=0|i[(u=a=t+(s<<3)|0)>>2]))&0==(0|(u=0|i[u+4>>2])))break;g=g+1|0}i[(E=a)>>2]=A,i[E+4>>2]=r}if((0|(o=o+1|0))>=(0|n))break e;A=0|i[(r=Q+(o<<3)|0)>>2],r=0|i[r+4>>2]}}}while(0);if((n+5|0)>>>0<11){y=99;break}if(!(p=0|be((0|n)/6|0,8))){y=58;break}e:do{if(b){g=0,d=0;do{if(!(0==(0|(o=0|i[(A=s=t+(g<<3)|0)>>2]))&0==(0|(A=0|i[A+4>>2])))){u=0|Qe(0|o,0|A,56),M(),r=(u&=7)+1|0,l=-117440513&A,E=0|Qe(0|o,0|A,45),M();r:do{if(0|S(127&E)){if(c=0|Qe(0|o,0|A,52),M(),0|(c&=15))for(a=1;;){if(!(0==(o&(E=0|ye(7,0,3*(15-a|0)|0))|0)&0==(l&(0|M())|0)))break r;if(!(a>>>0>>0))break;a=a+1|0}o|=A=0|ye(0|r,0,56),A=0|M()|l,i[(r=s)>>2]=o,i[r+4>>2]=A,r=u+2|0}}while(0);7==(0|r)&&(i[(E=p+(d<<3)|0)>>2]=o,i[E+4>>2]=-117440513&A,d=d+1|0)}g=g+1|0}while((0|g)!=(0|n));if(b){if(w=((0|n)<0)<<31>>31,c=0|ye(0|m,0,52),g=0|M(),m>>>0>15)for(A=0,o=0;;){do{if(!(0==(0|h)&0==(0|f))){for(u=0|Qe(0|h,0|f,52),M(),a=(0|(u&=15))<(0|m),u=(0|u)==(0|m),a=0|Me(0|(s=a?0:u?h:0),0|(u=a?0:u?f:0),0|n,0|w),M(),r=0;;){if((0|r)>(0|n)){y=98;break A}if((-117440513&(l=0|i[(E=t+(a<<3)|0)+4>>2])|0)==(0|u)&&(0|i[E>>2])==(0|s)){y=70;break}if((0|i[(E=t+((a=(a+1|0)%(0|n)|0)<<3)|0)>>2])==(0|s)&&(0|i[E+4>>2])==(0|u))break;r=r+1|0}if(70==(0|y)&&(y=0,!0&100663296==(117440512&l|0)))break;i[(E=e+(o<<3)|0)>>2]=h,i[E+4>>2]=f,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|n)){n=d;break e}h=0|i[(f=Q+(A<<3)|0)>>2],f=0|i[f+4>>2]}for(A=0,o=0;;){do{if(!(0==(0|h)&0==(0|f))){if(u=0|Qe(0|h,0|f,52),M(),(0|(u&=15))>=(0|m))if((0|u)!=(0|m))if(r=h|c,a=-15728641&f|g,u>>>0>>0)u=a;else{s=m;do{E=0|ye(7,0,3*(14-s|0)|0),s=s+1|0,r|=E,a=0|M()|a}while(s>>>0>>0);u=a}else r=h,u=f;else r=0,u=0;for(s=0|Me(0|r,0|u,0|n,0|w),M(),a=0;;){if((0|a)>(0|n)){y=98;break A}if((-117440513&(l=0|i[(E=t+(s<<3)|0)+4>>2])|0)==(0|u)&&(0|i[E>>2])==(0|r)){y=93;break}if((0|i[(E=t+((s=(s+1|0)%(0|n)|0)<<3)|0)>>2])==(0|r)&&(0|i[E+4>>2])==(0|u))break;a=a+1|0}if(93==(0|y)&&(y=0,!0&100663296==(117440512&l|0)))break;i[(E=e+(o<<3)|0)>>2]=h,i[E+4>>2]=f,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|n)){n=d;break e}h=0|i[(f=Q+(A<<3)|0)>>2],f=0|i[f+4>>2]}}else o=0,n=d}else o=0,n=0}while(0);if(_e(0|t,0,0|k),De(0|Q,0|p,n<<3|0),Be(p),!n)break;e=e+(o<<3)|0}return 41==(0|y)?(Be(Q),Be(t),0|(E=-1)):51==(0|y)?(Be(Q),Be(t),0|(E=-2)):58==(0|y)?(Be(Q),Be(t),0|(E=-3)):98==(0|y)?(Be(p),Be(Q),Be(t),0|(E=-1)):(99==(0|y)&&De(0|e,0|Q,n<<3|0),Be(Q),Be(t),0|(E=0))},_destroyLinkedPolygon:function(A){var e=0,r=0,t=0,n=0;if(A|=0)for(t=1;;){if(0|(e=0|i[A>>2]))do{if(0|(r=0|i[e>>2]))do{n=r,r=0|i[r+16>>2],Be(n)}while(0!=(0|r));n=e,e=0|i[e+8>>2],Be(n)}while(0!=(0|e));if(e=A,A=0|i[A+8>>2],t||Be(e),!A)break;t=0}},_edgeLengthKm:function(A){return+ +n[20752+((A|=0)<<3)>>3]},_edgeLengthM:function(A){return+ +n[20880+((A|=0)<<3)>>3]},_emscripten_replace_memory:function(A){return t=new Int8Array(A),new Uint8Array(A),i=new Int32Array(A),new Float32Array(A),n=new Float64Array(A),r=A,!0},_exactEdgeLengthKm:function(A,e){var r,t,o=0,a=0,f=0,u=0,c=0,d=0;if(t=I,I=I+176|0,WA(A|=0,e|=0,r=t),(0|(A=0|i[r>>2]))<=1)return I=t,+(f=0);e=A+-1|0,A=0,o=0,a=+n[r+8>>3],f=+n[r+16>>3];do{c=a,a=+n[r+8+((A=A+1|0)<<4)>>3],d=+h(.5*(a-c)),u=f,f=+n[r+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(f-u)))*(+l(+c)*+l(+a)*u),o+=2*+p(+ +s(+u),+ +s(+(1-u)))}while((0|A)!=(0|e));return I=t,+(d=6371.007180918475*o)},_exactEdgeLengthM:function(A,e){var r,t,o=0,a=0,f=0,u=0,c=0,d=0;if(t=I,I=I+176|0,WA(A|=0,e|=0,r=t),(0|(A=0|i[r>>2]))<=1)return I=t,+(f=0);e=A+-1|0,A=0,o=0,a=+n[r+8>>3],f=+n[r+16>>3];do{c=a,a=+n[r+8+((A=A+1|0)<<4)>>3],d=+h(.5*(a-c)),u=f,f=+n[r+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(f-u)))*(+l(+c)*+l(+a)*u),o+=2*+p(+ +s(+u),+ +s(+(1-u)))}while((0|A)!=(0|e));return I=t,+(d=6371.007180918475*o*1e3)},_exactEdgeLengthRads:function(A,e){var r,t,o=0,a=0,f=0,u=0,c=0,d=0;if(t=I,I=I+176|0,WA(A|=0,e|=0,r=t),(0|(A=0|i[r>>2]))<=1)return I=t,+(f=0);e=A+-1|0,A=0,o=0,a=+n[r+8>>3],f=+n[r+16>>3];do{c=a,a=+n[r+8+((A=A+1|0)<<4)>>3],d=+h(.5*(a-c)),u=f,f=+n[r+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(f-u)))*(+l(+a)*+l(+c)*u),o+=2*+p(+ +s(+u),+ +s(+(1-u)))}while((0|A)<(0|e));return I=t,+o},_experimentalH3ToLocalIj:function(A,e,r,t,i){var n,o;return i|=0,o=I,I=I+16|0,(A=0|$A(A|=0,e|=0,r|=0,t|=0,n=o))||(cA(n,i),A=0),I=o,0|A},_experimentalLocalIjToH3:function(A,e,r,t){var i,n;return A|=0,e|=0,t|=0,i=I,I=I+16|0,dA(r|=0,n=i),t=0|Ae(A,e,n,t),I=i,0|t},_free:Be,_geoToH3:LA,_getDestinationH3IndexFromUnidirectionalEdge:function(A,e){A|=0;var r,t,n=0;return r=I,I=I+16|0,n=r,!0&268435456==(2013265920&(e|=0)|0)?(t=0|Qe(0|A,0|e,56),M(),i[n>>2]=0,n=0|U(A,-2130706433&e|134217728,7&t,n),e=0|M(),k(0|e),I=r,0|n):(n=0,k(0|(e=0)),I=r,0|n)},_getH3IndexesFromUnidirectionalEdge:function(A,e,r){A|=0;var t,n,o,a,f=0;o=I,I=I+16|0,t=o,a=!0&268435456==(2013265920&(e|=0)|0),n=-2130706433&e|134217728,i[(f=r|=0)>>2]=a?A:0,i[f+4>>2]=a?n:0,a?(e=0|Qe(0|A,0|e,56),M(),i[t>>2]=0,A=0|U(A,n,7&e,t),e=0|M()):(A=0,e=0),i[(f=r+8|0)>>2]=A,i[f+4>>2]=e,I=o},_getH3UnidirectionalEdge:function(A,e,r,t){var n,o,a=0,f=0,s=0,u=0,l=0;if(o=I,I=I+16|0,n=o,!(0|ZA(A|=0,e|=0,r|=0,t|=0)))return u=0,k(0|(s=0)),I=o,0|u;for(s=-2130706433&e,a=(a=0==(0|UA(A,e)))?1:2;i[n>>2]=0,f=a+1|0,!((0|(l=0|U(A,e,a,n)))==(0|r)&(0|M())==(0|t));){if(!(f>>>0<7)){a=0,A=0,u=6;break}a=f}return 6==(0|u)?(k(0|a),I=o,0|A):(l=0|ye(0|a,0,56),u=0|s|M()|268435456,l|=A,k(0|u),I=o,0|l)},_getH3UnidirectionalEdgeBoundary:WA,_getH3UnidirectionalEdgesFromHexagon:function(A,e,r){r|=0;var t,n=0;t=0==(0|UA(A|=0,e|=0)),e&=-2130706433,i[(n=r)>>2]=t?A:0,i[n+4>>2]=t?285212672|e:0,i[(n=r+8|0)>>2]=A,i[n+4>>2]=301989888|e,i[(n=r+16|0)>>2]=A,i[n+4>>2]=318767104|e,i[(n=r+24|0)>>2]=A,i[n+4>>2]=335544320|e,i[(n=r+32|0)>>2]=A,i[n+4>>2]=352321536|e,i[(r=r+40|0)>>2]=A,i[r+4>>2]=369098752|e},_getOriginH3IndexFromUnidirectionalEdge:function(A,e){var r;return A|=0,k(0|((r=!0&268435456==(2013265920&(e|=0)|0))?-2130706433&e|134217728:0)),0|(r?A:0)},_getPentagonIndexes:NA,_getRes0Indexes:function(A){A|=0;var e=0,r=0,t=0;e=0;do{ye(0|e,0,45),t=134225919|M(),i[(r=A+(e<<3)|0)>>2]=-1,i[r+4>>2]=t,e=e+1|0}while(122!=(0|e))},_h3Distance:function(A,e,r,t){var i,n,o;return r|=0,t|=0,o=I,I=I+32|0,n=o,A=0==(0|$A(A|=0,e|=0,A,e,i=o+12|0))&&0==(0|$A(A,e,r,t,n))?0|hA(i,n):-1,I=o,0|A},_h3GetBaseCell:IA,_h3GetFaces:function A(e,r,t){t|=0;var n,o=0,a=0,f=0,s=0,u=0,l=0,h=0,c=0;n=I,I=I+128|0,h=n+112|0,f=n+96|0,c=n,a=0|Qe(0|(e|=0),0|(r|=0),52),M(),u=15&a,i[h>>2]=u,s=0|Qe(0|e,0|r,45),M(),s&=127;A:do{if(0|S(s)){if(0|u)for(o=1;;){if(!(0==((l=0|ye(7,0,3*(15-o|0)|0))&e|0)&0==((0|M())&r|0))){a=0;break A}if(!(o>>>0>>0))break;o=o+1|0}if(!(1&a))return l=0|ye(u+1|0,0,52),c=0|M()|-15728641&r,A((l|e)&~(h=0|ye(7,0,3*(14-u|0)|0)),c&~(0|M()),t),void(I=n);a=1}else a=0}while(0);YA(e,r,f),a?(mA(f,h,c),l=5):(yA(f,h,c),l=6);A:do{if(0|S(s))if(u)for(o=1;;){if(!(0==((s=0|ye(7,0,3*(15-o|0)|0))&e|0)&0==((0|M())&r|0))){o=8;break A}if(!(o>>>0>>0)){o=20;break}o=o+1|0}else o=20;else o=8}while(0);if(_e(0|t,-1,0|o),a){a=0;do{for(MA(f=c+(a<<4)|0,0|i[h>>2]),f=0|i[f>>2],o=0;!(-1==(0|(u=0|i[(s=t+(o<<2)|0)>>2]))|(0|u)==(0|f));)o=o+1|0;i[s>>2]=f,a=a+1|0}while((0|a)!=(0|l))}else{a=0;do{for(kA(f=c+(a<<4)|0,0|i[h>>2],0,1),f=0|i[f>>2],o=0;!(-1==(0|(u=0|i[(s=t+(o<<2)|0)>>2]))|(0|u)==(0|f));)o=o+1|0;i[s>>2]=f,a=a+1|0}while((0|a)!=(0|l))}I=n},_h3GetResolution:function(A,e){return e=0|Qe(0|(A|=0),0|(e|=0),52),M(),15&e|0},_h3IndexesAreNeighbors:ZA,_h3IsPentagon:UA,_h3IsResClassIII:function(A,e){return e=0|Qe(0|(A|=0),0|(e|=0),52),M(),1&e|0},_h3IsValid:FA,_h3Line:function(A,e,r,t,n){r|=0,t|=0,n|=0;var o,a=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,v=0,m=0,k=0,M=0,Q=0;if(o=I,I=I+48|0,s=o+12|0,M=o,0==(0|$A(A|=0,e|=0,A,e,a=o+24|0))&&0==(0|$A(A,e,r,t,s))){if((0|(k=0|hA(a,s)))<0)return I=o,0|(M=k);for(i[a>>2]=0,i[a+4>>2]=0,i[a+8>>2]=0,i[s>>2]=0,i[s+4>>2]=0,i[s+8>>2]=0,$A(A,e,A,e,a),$A(A,e,r,t,s),gA(a),gA(s),k?(w=+(0|k),m=a,r=c=0|i[a>>2],t=d=0|i[(b=a+4|0)>>2],a=g=0|i[(v=a+8|0)>>2],p=+((0|i[s>>2])-c|0)/w,B=+((0|i[s+4>>2])-d|0)/w,w=+((0|i[s+8>>2])-g|0)/w):(b=t=a+4|0,v=g=a+8|0,m=a,r=0|i[a>>2],t=0|i[t>>2],a=0|i[g>>2],p=0,B=0,w=0),i[M>>2]=r,i[(g=M+4|0)>>2]=t,i[(d=M+8|0)>>2]=a,c=0;;){Q=p*(l=+(0|c))+ +(0|r),u=B*l+ +(0|i[b>>2]),l=w*l+ +(0|i[v>>2]),t=~~+xe(+Q),s=~~+xe(+u),r=~~+xe(+l),Q=+f(+(+(0|t)-Q)),u=+f(+(+(0|s)-u)),l=+f(+(+(0|r)-l));do{if(!(Q>u&Q>l)){if(h=0-t|0,u>l){a=h-r|0;break}a=s,r=h-s|0;break}t=0-(s+r)|0,a=s}while(0);if(i[M>>2]=t,i[g>>2]=a,i[d>>2]=r,wA(M),Ae(A,e,M,n+(c<<3)|0),(0|c)==(0|k))break;c=c+1|0,r=0|i[m>>2]}return I=o,0|(M=0)}return I=o,0|(M=-1)},_h3LineSize:function(A,e,r,t){var i,n,o;return r|=0,t|=0,o=I,I=I+32|0,n=o,A=0==(0|$A(A|=0,e|=0,A,e,i=o+12|0))&&0==(0|$A(A,e,r,t,n))?0|hA(i,n):-1,I=o,(A>>>31^1)+A|0},_h3SetToLinkedGeo:function(A,e,r){r|=0;var t,n,o,a=0;if(o=I,I=I+32|0,t=o,function(A,e,r){A|=0,r|=0;var t,n,o=0,a=0,f=0,s=0,u=0;if(n=I,I=I+176|0,t=n,(0|(e|=0))<1)return se(r,0,0),void(I=n);s=0|Qe(0|i[(s=A)>>2],0|i[s+4>>2],52),M(),se(r,(0|e)>6?e:6,15&s),s=0;do{if(jA(0|i[(o=A+(s<<3)|0)>>2],0|i[o+4>>2],t),(0|(o=0|i[t>>2]))>0){u=0;do{f=t+8+(u<<4)|0,(a=0|de(r,o=t+8+(((0|(u=u+1|0))%(0|o)|0)<<4)|0,f))?he(r,a):ce(r,f,o),o=0|i[t>>2]}while((0|u)<(0|o))}s=s+1|0}while((0|s)!=(0|e));I=n}(A|=0,e|=0,n=o+16|0),i[r>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,!(A=0|le(n)))return XA(r),ue(n),void(I=o);do{e=0|JA(r);do{KA(e,A),a=A+16|0,i[t>>2]=i[a>>2],i[t+4>>2]=i[a+4>>2],i[t+8>>2]=i[a+8>>2],i[t+12>>2]=i[a+12>>2],he(n,A),A=0|ge(n,t)}while(0!=(0|A));A=0|le(n)}while(0!=(0|A));XA(r),ue(n),I=o},_h3ToCenterChild:function(A,e,r){r|=0;var t=0,i=0;if(t=0|Qe(0|(A|=0),0|(e|=0),52),M(),(0|r)<16&(0|(t&=15))<=(0|r)){if((0|t)!=(0|r)&&(A|=i=0|ye(0|r,0,52),e=0|M()|-15728641&e,(0|t)<(0|r)))do{i=0|ye(7,0,3*(14-t|0)|0),t=t+1|0,A&=~i,e&=~(0|M())}while((0|t)<(0|r))}else e=0,A=0;return k(0|e),0|A},_h3ToChildren:PA,_h3ToGeo:OA,_h3ToGeoBoundary:jA,_h3ToParent:CA,_h3UnidirectionalEdgeIsValid:function(A,e){var r=0;if(!(!0&268435456==(2013265920&(e|=0)|0)))return 0|(r=0);switch(r=0|Qe(0|(A|=0),0|e,56),M(),7&r){case 0:case 7:return 0|(r=0)}return!0&16777216==(117440512&e|0)&0!=(0|UA(A,r=-2130706433&e|134217728))?0|(r=0):0|(r=0|FA(A,r))},_hexAreaKm2:function(A){return+ +n[20496+((A|=0)<<3)>>3]},_hexAreaM2:function(A){return+ +n[20624+((A|=0)<<3)>>3]},_hexRing:function(A,e,r,t){A|=0,e|=0,t|=0;var n,o=0,a=0,f=0,s=0,u=0,l=0,h=0;if(n=I,I=I+16|0,h=n,!(r|=0))return i[(h=t)>>2]=A,i[h+4>>2]=e,I=n,0|(h=0);i[h>>2]=0;A:do{if(0|UA(A,e))A=1;else{if(a=(0|r)>0){o=0,l=A;do{if(0==(0|(l=0|U(l,e,4,h)))&0==(0|(e=0|M()))){A=2;break A}if(o=o+1|0,0|UA(l,e)){A=1;break A}}while((0|o)<(0|r));if(i[(u=t)>>2]=l,i[u+4>>2]=e,u=r+-1|0,a){a=0,f=1,o=l,A=e;do{if(0==(0|(o=0|U(o,A,2,h)))&0==(0|(A=0|M()))){A=2;break A}if(i[(s=t+(f<<3)|0)>>2]=o,i[s+4>>2]=A,f=f+1|0,0|UA(o,A)){A=1;break A}a=a+1|0}while((0|a)<(0|r));s=0,a=f;do{if(0==(0|(o=0|U(o,A,3,h)))&0==(0|(A=0|M()))){A=2;break A}if(i[(f=t+(a<<3)|0)>>2]=o,i[f+4>>2]=A,a=a+1|0,0|UA(o,A)){A=1;break A}s=s+1|0}while((0|s)<(0|r));f=0;do{if(0==(0|(o=0|U(o,A,1,h)))&0==(0|(A=0|M()))){A=2;break A}if(i[(s=t+(a<<3)|0)>>2]=o,i[s+4>>2]=A,a=a+1|0,0|UA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|r));f=0;do{if(0==(0|(o=0|U(o,A,5,h)))&0==(0|(A=0|M()))){A=2;break A}if(i[(s=t+(a<<3)|0)>>2]=o,i[s+4>>2]=A,a=a+1|0,0|UA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|r));f=0;do{if(0==(0|(o=0|U(o,A,4,h)))&0==(0|(A=0|M()))){A=2;break A}if(i[(s=t+(a<<3)|0)>>2]=o,i[s+4>>2]=A,a=a+1|0,0|UA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|r));for(f=0;;){if(0==(0|(o=0|U(o,A,6,h)))&0==(0|(A=0|M()))){A=2;break A}if((0|f)!=(0|u)){if(i[(s=t+(a<<3)|0)>>2]=o,i[s+4>>2]=A,0|UA(o,A)){A=1;break A}a=a+1|0}if((0|(f=f+1|0))>=(0|r)){f=l,a=e;break}}}else f=l,o=l,a=e,A=e}else i[(f=t)>>2]=A,i[f+4>>2]=e,f=A,o=A,a=e,A=e;A=1&((0|f)!=(0|o)|(0|a)!=(0|A))}}while(0);return I=n,0|(h=A)},_i64Subtract:ve,_kRing:F,_kRingDistances:function(A,e,r,t,i){var n;if(0|C(A|=0,e|=0,r|=0,t|=0,i|=0)){if(_e(0|t,0,(n=1+(0|b(3*r|0,r+1|0))|0)<<3|0),0|i)return _e(0|i,0,n<<2|0),void P(A,e,r,t,i,n,0);(i=0|be(n,4))&&(P(A,e,r,t,i,n,0),Be(i))}},_llvm_minnum_f64:Ee,_llvm_round_f64:xe,_malloc:pe,_maxFaceCount:function(A,e){var r=0,t=0;if(t=0|Qe(0|(A|=0),0|(e|=0),45),M(),!(0|S(127&t)))return 0|(t=2);if(t=0|Qe(0|A,0|e,52),M(),!(t&=15))return 0|(t=5);for(r=1;;){if(!(0==((0|ye(7,0,3*(15-r|0)|0))&A|0)&0==((0|M())&e|0))){r=2,A=6;break}if(!(r>>>0>>0)){r=5,A=6;break}r=r+1|0}return 6==(0|A)?0|r:0},_maxH3ToChildrenSize:function(A,e,r){return r|=0,A=0|Qe(0|(A|=0),0|(e|=0),52),M(),(0|r)<16&(0|(A&=15))<=(0|r)?0|(r=0|ee(7,r-A|0)):0|(r=0)},_maxKringSize:function(A){return 1+(0|b(3*(A|=0)|0,A+1|0))|0},_maxPolyfillSize:function(A,e){e|=0;var r,t=0,n=0,o=0,a=0,f=0;if(r=I,I=I+48|0,o=r+8|0,n=r,a=0|i[(f=A|=0)+4>>2],i[(t=n)>>2]=i[f>>2],i[t+4>>2]=a,te(n,o),o=0|j(o,e),e=0|i[n>>2],(0|(n=0|i[A+8>>2]))<=0)return I=r,0|(f=(f=(a=(0|o)<(0|(f=e)))?f:o)+12|0);t=0|i[A+12>>2],A=0;do{e=(0|i[t+(A<<3)>>2])+e|0,A=A+1|0}while((0|A)<(0|n));return I=r,0|(f=(f=(f=(0|o)<(0|e))?e:o)+12|0)},_maxUncompactSize:function(A,e,r){A|=0,r|=0;var t=0,n=0,o=0,a=0;if((0|(e|=0))<=0)return 0|(r=0);if((0|r)>=16){for(t=0;;){if(!(0==(0|i[(a=A+(t<<3)|0)>>2])&0==(0|i[a+4>>2]))){t=-1,n=13;break}if((0|(t=t+1|0))>=(0|e)){t=0,n=13;break}}if(13==(0|n))return 0|t}t=0,a=0;A:for(;;){o=0|i[(n=A+(a<<3)|0)>>2],n=0|i[n+4>>2];do{if(!(0==(0|o)&0==(0|n))){if(n=0|Qe(0|o,0|n,52),M(),(0|(n&=15))>(0|r)){t=-1,n=13;break A}if((0|n)==(0|r)){t=t+1|0;break}t=(0|ee(7,r-n|0))+t|0;break}}while(0);if((0|(a=a+1|0))>=(0|e)){n=13;break}}return 13==(0|n)?0|t:0},_memcpy:De,_memset:_e,_numHexagons:function(A){var e;return A=0|i[(e=21008+((A|=0)<<3)|0)>>2],k(0|i[e+4>>2]),0|A},_pentagonIndexCount:function(){return 12},_pointDistKm:DA,_pointDistM:function(A,e){A|=0;var r,t,i,o=0;return t=+n[(e|=0)>>3],r=+n[A>>3],o=(i=+h(.5*(t-r)))*i+(o=+h(.5*(+n[e+8>>3]-+n[A+8>>3])))*(+l(+t)*+l(+r)*o),2*+p(+ +s(+o),+ +s(+(1-o)))*6371.007180918475*1e3},_pointDistRads:function(A,e){A|=0;var r,t,i,o=0;return t=+n[(e|=0)>>3],r=+n[A>>3],o=(i=+h(.5*(t-r)))*i+(o=+h(.5*(+n[e+8>>3]-+n[A+8>>3])))*(+l(+t)*+l(+r)*o),2*+p(+ +s(+o),+ +s(+(1-o)))},_polyfill:function(A,e,r){var t,n=0,o=0,a=0,f=0,s=0;if(t=I,I=I+48|0,n=t+8|0,o=t,0|function(A,e,r){e|=0,r|=0;var t=0,n=0,o=0,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,v=0,m=0,k=0,y=0,E=0,x=0,D=0,_=0,F=0,U=0,S=0,T=0,V=0,H=0;H=I,I=I+112|0,U=H+80|0,s=H+72|0,S=H,T=H+56|0,(V=0|pe(32+(i[(u=(A=A|0)+8|0)>>2]<<5)|0))||Q(22848,22448,800,22456);if(ie(A,V),t=0|i[(o=A)+4>>2],i[(f=s)>>2]=i[o>>2],i[f+4>>2]=t,te(s,U),f=0|j(U,e),t=0|i[s>>2],(0|(o=0|i[u>>2]))>0){a=0|i[A+12>>2],n=0;do{t=(0|i[a+(n<<3)>>2])+t|0,n=n+1|0}while((0|n)!=(0|o))}if(n=0|be(F=(f=(0|f)<(0|t)?t:f)+12|0,8),l=0|be(F,8),i[U>>2]=0,_=0|i[(D=A)+4>>2],i[(t=s)>>2]=i[D>>2],i[t+4>>2]=_,0|(t=0|G(s,F,e,U,n,l)))return Be(n),Be(l),Be(V),I=H,0|(V=t);A:do{if((0|i[u>>2])>0){for(o=A+12|0,t=0;a=0|G((0|i[o>>2])+(t<<3)|0,F,e,U,n,l),t=t+1|0,!(0|a);)if((0|t)>=(0|i[u>>2]))break A;return Be(n),Be(l),Be(V),I=H,0|(V=a)}}while(0);(0|f)>-12&&_e(0|l,0,((0|F)>1?F:1)<<3|0);A:do{if((0|i[U>>2])>0){_=((0|F)<0)<<31>>31,m=n,k=l,y=n,E=n,x=l,D=n,t=n,p=n,B=l,b=l,v=l,n=l;e:for(;;){for(w=0|i[U>>2],d=0,g=0,o=0;;){f=(a=S)+56|0;do{i[a>>2]=0,a=a+4|0}while((0|a)<(0|f));if(0|C(s=0|i[(e=m+(d<<3)|0)>>2],e=0|i[e+4>>2],1,S,0)){f=(a=S)+56|0;do{i[a>>2]=0,a=a+4|0}while((0|a)<(0|f));0|(a=0|be(7,4))&&(P(s,e,1,S,a,7,0),Be(a))}c=0;do{l=0|i[(h=S+(c<<3)|0)>>2],h=0|i[h+4>>2];r:do{if(!(0==(0|l)&0==(0|h))){if(s=0|Me(0|l,0|h,0|F,0|_),M(),!(0==(0|(e=0|i[(f=a=r+(s<<3)|0)>>2]))&0==(0|(f=0|i[f+4>>2]))))for(u=0;;){if((0|u)>(0|F))break e;if((0|e)==(0|l)&(0|f)==(0|h))break r;if(0==(0|(e=0|i[(f=a=r+((s=(s+1|0)%(0|F)|0)<<3)|0)>>2]))&0==(0|(f=0|i[f+4>>2])))break;u=u+1|0}0==(0|l)&0==(0|h)||(OA(l,h,T),0|ne(A,V,T)&&(i[(u=a)>>2]=l,i[u+4>>2]=h,i[(u=k+(o<<3)|0)>>2]=l,i[u+4>>2]=h,o=o+1|0))}}while(0);c=c+1|0}while(c>>>0<7);if((0|(g=g+1|0))>=(0|w))break;d=d+1|0}if((0|w)>0&&_e(0|y,0,w<<3|0),i[U>>2]=o,!((0|o)>0))break A;l=n,h=v,c=D,d=b,g=B,w=k,n=p,v=t,b=E,B=y,p=l,t=h,D=x,x=c,E=d,y=g,k=m,m=w}return Be(E),Be(x),Be(V),I=H,0|(V=-1)}t=l}while(0);return Be(V),Be(n),Be(t),I=H,0|(V=0)}(A|=0,e|=0,r|=0)){if(a=0|i[(s=A)+4>>2],i[(f=o)>>2]=i[s>>2],i[f+4>>2]=a,te(o,n),f=0|j(n,e),e=0|i[o>>2],(0|(a=0|i[A+8>>2]))>0){o=0|i[A+12>>2],n=0;do{e=(0|i[o+(n<<3)>>2])+e|0,n=n+1|0}while((0|n)!=(0|a))}(0|(e=(0|f)<(0|e)?e:f))<=-12||_e(0|r,0,8+(((0|(s=e+11|0))>0?s:0)<<3)|0),I=t}else I=t},_res0IndexCount:function(){return 122},_round:Ie,_sbrk:Fe,_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(A,e,r,t,n){A|=0,r|=0,t|=0,n|=0;var o=0,a=0,f=0,s=0,u=0,l=0;if((0|(e|=0))<=0)return 0|(n=0);if((0|n)>=16){for(o=0;;){if(!(0==(0|i[(l=A+(o<<3)|0)>>2])&0==(0|i[l+4>>2]))){o=14;break}if((0|(o=o+1|0))>=(0|e)){a=0,o=16;break}}if(14==(0|o))return 0|((0|t)>0?-2:-1);if(16==(0|o))return 0|a}o=0,l=0;A:for(;;){a=0|i[(f=u=A+(l<<3)|0)>>2],f=0|i[f+4>>2];do{if(!(0==(0|a)&0==(0|f))){if((0|o)>=(0|t)){a=-1,o=16;break A}if(s=0|Qe(0|a,0|f,52),M(),(0|(s&=15))>(0|n)){a=-2,o=16;break A}if((0|s)==(0|n)){i[(u=r+(o<<3)|0)>>2]=a,i[u+4>>2]=f,o=o+1|0;break}if((0|(a=(0|ee(7,n-s|0))+o|0))>(0|t)){a=-1,o=16;break A}PA(0|i[u>>2],0|i[u+4>>2],n,r+(o<<3)|0),o=a}}while(0);if((0|(l=l+1|0))>=(0|e)){a=0,o=16;break}}return 16==(0|o)?0|a:0},establishStackSpace:function(A,e){I=A|=0},stackAlloc:function(A){var e;return e=I,I=(I=I+(A|=0)|0)+15&-16,0|e},stackRestore:function(A){I=A|=0},stackSave:function(){return 0|I}}}({Math:Math,Int8Array:Int8Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Float32Array:Float32Array,Float64Array:Float64Array},{a:fA,b:function(A){s=A},c:u,d:function(A,e,r,t){fA("Assertion failed: "+g(A)+", at: "+[e?g(e):"unknown filename",r,t?g(t):"unknown function"])},e:function(A){return r.___errno_location&&(v[r.___errno_location()>>2]=A),A},f:N,g:function(A,e,r){B.set(B.subarray(e,e+r),A)},h:function(A){var e=N(),r=16777216,t=2130706432;if(A>t)return!1;for(var i=Math.max(e,16777216);i>0]=e;break;case"i16":b[A>>1]=e;break;case"i32":v[A>>2]=e;break;case"i64":H=[e>>>0,(V=e,+F(V)>=1?V>0?(0|U(+P(V/4294967296),4294967295))>>>0:~~+C((V-+(~~V>>>0))/4294967296)>>>0:0)],v[A>>2]=H[0],v[A+4>>2]=H[1];break;case"float":m[A>>2]=e;break;case"double":k[A>>3]=e;break;default:fA("invalid type for setValue: "+r)}},r.getValue=function(A,e,r){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":return p[A>>0];case"i16":return b[A>>1];case"i32":case"i64":return v[A>>2];case"float":return m[A>>2];case"double":return k[A>>3];default:fA("invalid type for getValue: "+e)}return null},r.getTempRet0=u,R){z(R)||(K=R,R=r.locateFile?r.locateFile(K,o):o+K),G++,r.monitorRunDependencies&&r.monitorRunDependencies(G);var tA=function(A){A.byteLength&&(A=new Uint8Array(A)),B.set(A,8),r.memoryInitializerRequest&&delete r.memoryInitializerRequest.response,function(A){if(G--,r.monitorRunDependencies&&r.monitorRunDependencies(G),0==G&&(null!==S&&(clearInterval(S),S=null),T)){var e=T;T=null,e()}}()},iA=function(){i(R,tA,(function(){throw"could not load memory initializer "+R}))},nA=J(R);if(nA)tA(nA.buffer);else if(r.memoryInitializerRequest){var oA=function(){var A=r.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var t=J(r.memoryInitializerRequestURL);if(!t)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+R),void iA();e=t.buffer}tA(e)};r.memoryInitializerRequest.response?setTimeout(oA,0):r.memoryInitializerRequest.addEventListener("load",oA)}else iA()}function aA(A){function e(){X||(X=!0,l||(E(D),E(_),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)A=r.postRun.shift(),I.unshift(A);var A;E(I)}()))}A=A||n,G>0||(!function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)A=r.preRun.shift(),x.unshift(A);var A;E(x)}(),G>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),e()}),1)):e()))}function fA(A){throw r.onAbort&&r.onAbort(A),a(A+=""),f(A),l=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(T=function A(){X||aA(),X||(T=A)},r.run=aA,r.abort=fA,r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return aA(),A}("object"==typeof t?t:{}),i="number",n={};[["sizeOfH3Index",i],["sizeOfGeoCoord",i],["sizeOfGeoBoundary",i],["sizeOfGeoPolygon",i],["sizeOfGeofence",i],["sizeOfLinkedGeoPolygon",i],["sizeOfCoordIJ",i],["h3IsValid",i,[i,i]],["geoToH3",i,[i,i,i]],["h3ToGeo",null,[i,i,i]],["h3ToGeoBoundary",null,[i,i,i]],["maxKringSize",i,[i]],["kRing",null,[i,i,i,i]],["kRingDistances",null,[i,i,i,i,i]],["hexRing",null,[i,i,i,i]],["maxPolyfillSize",i,[i,i]],["polyfill",null,[i,i,i]],["h3SetToLinkedGeo",null,[i,i,i]],["destroyLinkedPolygon",null,[i]],["compact",i,[i,i,i]],["uncompact",i,[i,i,i,i,i]],["maxUncompactSize",i,[i,i,i]],["h3IsPentagon",i,[i,i]],["h3IsResClassIII",i,[i,i]],["h3GetBaseCell",i,[i,i]],["h3GetResolution",i,[i,i]],["maxFaceCount",i,[i,i]],["h3GetFaces",null,[i,i,i]],["h3ToParent",i,[i,i,i]],["h3ToChildren",null,[i,i,i,i]],["h3ToCenterChild",i,[i,i,i]],["maxH3ToChildrenSize",i,[i,i,i]],["h3IndexesAreNeighbors",i,[i,i,i,i]],["getH3UnidirectionalEdge",i,[i,i,i,i]],["getOriginH3IndexFromUnidirectionalEdge",i,[i,i]],["getDestinationH3IndexFromUnidirectionalEdge",i,[i,i]],["h3UnidirectionalEdgeIsValid",i,[i,i]],["getH3IndexesFromUnidirectionalEdge",null,[i,i,i]],["getH3UnidirectionalEdgesFromHexagon",null,[i,i,i]],["getH3UnidirectionalEdgeBoundary",null,[i,i,i]],["h3Distance",i,[i,i,i,i]],["h3Line",i,[i,i,i,i,i]],["h3LineSize",i,[i,i,i,i]],["experimentalH3ToLocalIj",i,[i,i,i,i,i]],["experimentalLocalIjToH3",i,[i,i,i,i]],["hexAreaM2",i,[i]],["hexAreaKm2",i,[i]],["edgeLengthM",i,[i]],["edgeLengthKm",i,[i]],["pointDistM",i,[i,i]],["pointDistKm",i,[i,i]],["pointDistRads",i,[i,i]],["cellAreaM2",i,[i,i]],["cellAreaKm2",i,[i,i]],["cellAreaRads2",i,[i,i]],["exactEdgeLengthM",i,[i,i]],["exactEdgeLengthKm",i,[i,i]],["exactEdgeLengthRads",i,[i,i]],["numHexagons",i,[i]],["getRes0Indexes",null,[i]],["res0IndexCount",i],["getPentagonIndexes",null,[i,i]],["pentagonIndexCount",i]].forEach((function(A){n[A[0]]=t.cwrap.apply(t,A)}));var o=16,a=n.sizeOfH3Index(),f=n.sizeOfGeoCoord(),s=n.sizeOfGeoBoundary(),u=n.sizeOfGeoPolygon(),l=n.sizeOfGeofence(),h=n.sizeOfLinkedGeoPolygon(),c=n.sizeOfCoordIJ(),d={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function g(A){if("number"!=typeof A||A<0||A>15||Math.floor(A)!==A)throw new Error("Invalid resolution: "+A)}var w=/[^0-9a-fA-F]/;function p(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||w.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),o);return[parseInt(A.substring(A.length-8),o),e]}function B(A){if(A>=0)return A.toString(o);var e=v(8,(A&=2147483647).toString(o));return e=(parseInt(e[0],o)+8).toString(o)+e.substring(1)}function b(A,e){return B(e)+v(8,B(A))}function v(A,e){for(var r=A-e.length,t="",i=0;i=0&&r.push(n)}return r}(a,o);return t._free(a),f},r.h3GetResolution=function(A){var e=p(A),r=e[0],t=e[1];return n.h3IsValid(r,t)?n.h3GetResolution(r,t):-1},r.geoToH3=function(A,e,r){var i=t._malloc(f);t.HEAPF64.set([A,e].map(U),i/8);var o=M(n.geoToH3(i,r));return t._free(i),o},r.h3ToGeo=function(A){var e=t._malloc(f),r=p(A),i=r[0],o=r[1];n.h3ToGeo(i,o,e);var a=I(e);return t._free(e),a},r.h3ToGeoBoundary=function(A,e){var r=t._malloc(s),i=p(A),o=i[0],a=i[1];n.h3ToGeoBoundary(o,a,r);var f=C(r,e,e);return t._free(r),f},r.h3ToParent=function(A,e){var r=p(A),t=r[0],i=r[1];return M(n.h3ToParent(t,i,e))},r.h3ToChildren=function(A,e){if(!P(A))return[];var r=p(A),i=r[0],o=r[1],f=n.maxH3ToChildrenSize(i,o,e),s=t._calloc(f,a);n.h3ToChildren(i,o,e,s);var u=E(s,f);return t._free(s),u},r.h3ToCenterChild=function(A,e){var r=p(A),t=r[0],i=r[1];return M(n.h3ToCenterChild(t,i,e))},r.kRing=function(A,e){var r=p(A),i=r[0],o=r[1],f=n.maxKringSize(e),s=t._calloc(f,a);n.kRing(i,o,e,s);var u=E(s,f);return t._free(s),u},r.kRingDistances=function(A,e){var r=p(A),i=r[0],o=r[1],f=n.maxKringSize(e),s=t._calloc(f,a),u=t._calloc(f,4);n.kRingDistances(i,o,e,s,u);for(var l=[],h=0;h0){r=t._calloc(i,l);for(var f=0;f0){for(var n=t.getValue(A+r,"i32"),o=0;o>3}if(n--,1===i||2===i)o+=A.readSVarint(),a+=A.readSVarint(),1===i&&(e&&f.push(e),e=[]),e.push(new t(o,a));else{if(7!==i)throw new Error("unknown command "+i);e&&e.push(e[0].clone())}}return e&&f.push(e),f},i.prototype.bbox=function(){var A=this._pbf;A.pos=this._geometry;for(var e=A.readVarint()+A.pos,r=1,t=0,i=0,n=0,o=1/0,a=-1/0,f=1/0,s=-1/0;A.pos>3}if(t--,1===r||2===r)(i+=A.readSVarint())a&&(a=i),(n+=A.readSVarint())s&&(s=n);else if(7!==r)throw new Error("unknown command "+r)}return[o,f,a,s]},i.prototype.toGeoJSON=function(A,e,r){var t,n,a=this.extent*Math.pow(2,r),f=this.extent*A,s=this.extent*e,u=this.loadGeometry(),l=i.types[this.type];function h(A){for(var e=0;e>3;e=1===t?A.readString():2===t?A.readFloat():3===t?A.readDouble():4===t?A.readVarint64():5===t?A.readVarint():6===t?A.readSVarint():7===t?A.readBoolean():null}return e}(r))}e.exports=i,i.prototype.feature=function(A){if(A<0||A>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[A];var e=this._pbf.readVarint()+this._pbf.pos;return new t(this._pbf,e,this.extent,this._keys,this._values)}},{"./vectortilefeature.js":4}],6:[function(A,e,r){!function(A,t){"object"==typeof r&&void 0!==e?e.exports=t():A.geojsonvt=t()}(this,function(){"use strict";function A(r,t,i,n){for(var o,a=n,f=i-t>>1,s=i-t,u=r[t],l=r[t+1],h=r[i],c=r[i+1],d=t+3;da)o=d,a=g;else if(g===a){var w=Math.abs(d-f);wn&&(o-t>3&&A(r,t,o,n),r[o+2]=a,i-o>3&&A(r,o,i,n))}function e(A,e,r,t,i,n){var o=i-r,a=n-t;if(0!==o||0!==a){var f=((A-r)*o+(e-t)*a)/(o*o+a*a);f>1?(r=i,t=n):f>0&&(r+=o*f,t+=a*f)}return(o=A-r)*o+(a=e-t)*a}function r(A,e,r,i){var n={id:void 0===A?null:A,type:e,geometry:r,tags:i,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(A){var e=A.geometry,r=A.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)t(A,e);else if("Polygon"===r||"MultiLineString"===r)for(var i=0;i0&&(a+=i?(n*h-l*o)/2:Math.sqrt(Math.pow(l-n,2)+Math.pow(h-o,2))),n=l,o=h}var c=r.length-3;r[2]=1,A(r,0,c,t),r[c+2]=1,r.size=Math.abs(a),r.start=0,r.end=r.size}function a(A,e,r,t){for(var i=0;i1?1:r}function u(A,e,t,i,n,o,a,f){if(i/=e,o>=(t/=e)&&a=i)return null;for(var s=[],u=0;u=t&&B=i)){var b=[];if("Point"===w||"MultiPoint"===w)l(g,b,t,i,n);else if("LineString"===w)h(g,b,t,i,n,!1,f.lineMetrics);else if("MultiLineString"===w)d(g,b,t,i,n,!1);else if("Polygon"===w)d(g,b,t,i,n,!0);else if("MultiPolygon"===w)for(var m=0;m=r&&o<=t&&(e.push(A[n]),e.push(A[n+1]),e.push(A[n+2]))}}function h(A,e,r,t,i,n,o){for(var a,f,s=c(A),u=0===i?w:p,l=A.start,h=0;hr&&(f=u(s,d,B,m,v,r),o&&(s.start=l+a*f)):k>t?M=r&&(f=u(s,d,B,m,v,r),Q=!0),M>t&&k<=t&&(f=u(s,d,B,m,v,t),Q=!0),!n&&Q&&(o&&(s.end=l+a*f),e.push(s),s=c(A)),o&&(l+=a)}var y=A.length-3;d=A[y],B=A[y+1],b=A[y+2],(k=0===i?d:B)>=r&&k<=t&&g(s,d,B,b),y=s.length-3,n&&y>=3&&(s[y]!==s[0]||s[y+1]!==s[1])&&g(s,s[0],s[1],s[2]),s.length&&e.push(s)}function c(A){var e=[];return e.size=A.size,e.start=A.start,e.end=A.end,e}function d(A,e,r,t,i,n){for(var o=0;oo.maxX&&(o.maxX=u),l>o.maxY&&(o.maxY=l)}return o}function M(A,e,r,t){var i=e.geometry,n=e.type,o=[];if("Point"===n||"MultiPoint"===n)for(var a=0;a0&&e.size<(i?o:t))r.numPoints+=e.length/3;else{for(var a=[],f=0;fo)&&(r.numSimplified++,a.push(e[f]),a.push(e[f+1])),r.numPoints++;i&&function(A,e){for(var r=0,t=0,i=A.length,n=i-2;t0===e)for(t=0,i=A.length;t24)throw new Error("maxZoom should be in the 0-24 range");if(e.promoteId&&e.generateId)throw new Error("promoteId and generateId cannot be used together.");var t=function(A,e){var r=[];if("FeatureCollection"===A.type)for(var t=0;t1&&console.time("creation"),c=this.tiles[h]=k(A,e,r,t,f),this.tileCoords.push({z:e,x:r,y:t}),s)){s>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,t,c.numFeatures,c.numPoints,c.numSimplified),console.timeEnd("creation"));var d="z"+e;this.stats[d]=(this.stats[d]||0)+1,this.total++}if(c.source=A,i){if(e===f.maxZoom||e===i)continue;var g=1<1&&console.time("clipping");var w,p,B,b,m,v,M=.5*f.buffer/f.extent,Q=.5-M,y=.5+M,x=1+M;w=p=B=b=null,m=u(A,l,r-M,r+y,0,c.minX,c.maxX,f),v=u(A,l,r+Q,r+x,0,c.minX,c.maxX,f),A=null,m&&(w=u(m,l,t-M,t+y,1,c.minY,c.maxY,f),p=u(m,l,t+Q,t+x,1,c.minY,c.maxY,f),m=null),v&&(B=u(v,l,t-M,t+y,1,c.minY,c.maxY,f),b=u(v,l,t+Q,t+x,1,c.minY,c.maxY,f),v=null),s>1&&console.timeEnd("clipping"),a.push(w||[],e+1,2*r,2*t),a.push(p||[],e+1,2*r,2*t+1),a.push(B||[],e+1,2*r+1,2*t),a.push(b||[],e+1,2*r+1,2*t+1)}}},y.prototype.getTile=function(A,e,r){var t=this.options,i=t.extent,n=t.debug;if(A<0||A>24)return null;var o=1<1&&console.log("drilling down to z%d-%d-%d",A,e,r);for(var f,s=A,u=e,l=r;!f&&s>0;)s--,u=Math.floor(u/2),l=Math.floor(l/2),f=this.tiles[E(s,u,l)];return f&&f.source?(n>1&&console.log("found parent tile z%d-%d-%d",s,u,l),n>1&&console.time("drilling down"),this.splitTile(f.source,s,u,l,A,e,r),n>1&&console.timeEnd("drilling down"),this.tiles[a]?m(this.tiles[a],i):null):null},function(A,e){return new y(A,e)}})},{}],7:[function(A,e,r){var t=function(A){var e,r=void 0!==(A=A||{})?A:{},t={};for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);var i,n=[],o="";document.currentScript&&(o=document.currentScript.src),o=0!==o.indexOf("blob:")?o.substr(0,o.lastIndexOf("/")+1):"",i=function(A,e,r){var t=new XMLHttpRequest;t.open("GET",A,!0),t.responseType="arraybuffer",t.onload=function(){if(200==t.status||0==t.status&&t.response)e(t.response);else{var i=X(A);i?e(i.buffer):r()}},t.onerror=r,t.send(null)};var a=r.print||console.log.bind(console),f=r.printErr||console.warn.bind(console);for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);t=null,r.arguments&&(n=r.arguments);var s=0,u=function(){return s};var l=!1;function h(A){var e,t=r["_"+A];return e="Cannot call unknown function "+A+", make sure it is exported",t||uA("Assertion failed: "+e),t}function c(A,e,r,t,i){var n={string:function(A){var e=0;if(null!=A&&0!==A){var r=1+(A.length<<2);(function(A,e,r){(function(A,e,r,t){if(!(t>0))return 0;for(var i=r,n=r+t-1,o=0;o=55296&&a<=57343)a=65536+((1023&a)<<10)|1023&A.charCodeAt(++o);if(a<=127){if(r>=n)break;e[r++]=a}else if(a<=2047){if(r+1>=n)break;e[r++]=192|a>>6,e[r++]=128|63&a}else if(a<=65535){if(r+2>=n)break;e[r++]=224|a>>12,e[r++]=128|a>>6&63,e[r++]=128|63&a}else{if(r+3>=n)break;e[r++]=240|a>>18,e[r++]=128|a>>12&63,e[r++]=128|a>>6&63,e[r++]=128|63&a}}e[r]=0})(A,B,e,r)})(A,e=rA(r),r)}return e},array:function(A){var e=rA(A.length);return function(A,e){p.set(A,e)}(A,e),e}};var o=h(A),a=[],f=0;if(t)for(var s=0;s=t);)++i;if(i-e>16&&A.subarray&&d)return d.decode(A.subarray(e,i));for(var n="";e>10,56320|1023&s)}}else n+=String.fromCharCode((31&o)<<6|a)}else n+=String.fromCharCode(o)}return n}(B,A,e):""}var w,p,B,b,m,v,k;"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");function M(A,e){return A%e>0&&(A+=e-A%e),A}function Q(A){w=A,r.HEAP8=p=new Int8Array(A),r.HEAP16=b=new Int16Array(A),r.HEAP32=m=new Int32Array(A),r.HEAPU8=B=new Uint8Array(A),r.HEAPU16=new Uint16Array(A),r.HEAPU32=new Uint32Array(A),r.HEAPF32=v=new Float32Array(A),r.HEAPF64=k=new Float64Array(A)}var y=r.TOTAL_MEMORY||33554432;function E(A){for(;A.length>0;){var e=A.shift();if("function"!=typeof e){var t=e.func;"number"==typeof t?void 0===e.arg?r.dynCall_v(t):r.dynCall_vi(t,e.arg):t(void 0===e.arg?null:e.arg)}else e()}}y=(w=r.buffer?r.buffer:new ArrayBuffer(y)).byteLength,Q(w),m[6004]=5266928;var x=[],_=[],D=[],I=[];function F(A){x.unshift(A)}function C(A){I.unshift(A)}var P=Math.abs,U=Math.ceil,G=Math.floor,S=Math.min,T=0,V=null,H=null;r.preloadedImages={},r.preloadedAudios={};var R,L,z=null,Y="data:application/octet-stream;base64,";function O(A){return String.prototype.startsWith?A.startsWith(Y):0===A.indexOf(Y)}z="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 j(A){return A}function N(A){return A.replace(/\b__Z[\w\d_]+/g,function(A){return A===A?A:A+" ["+A+"]"})}function Z(){var A=new Error;if(!A.stack){try{throw new Error(0)}catch(e){A=e}if(!A.stack)return"(no stack trace available)"}return A.stack.toString()}function W(){return p.length}function J(A){try{var e=new ArrayBuffer(A);if(e.byteLength!=A)return;return new Int8Array(e).set(p),eA(e),Q(e),1}catch(A){}}var K="function"==typeof atob?atob:function(A){var e,r,t,i,n,o,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",f="",s=0;A=A.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{e=a.indexOf(A.charAt(s++))<<2|(i=a.indexOf(A.charAt(s++)))>>4,r=(15&i)<<4|(n=a.indexOf(A.charAt(s++)))>>2,t=(3&n)<<6|(o=a.indexOf(A.charAt(s++))),f+=String.fromCharCode(e),64!==n&&(f+=String.fromCharCode(r)),64!==o&&(f+=String.fromCharCode(t))}while(s>2]=A,i[a+4>>2]=e,(a=!!(0|n))&&(i[n>>2]=0),0|UA(A,e))return I=o,0|(d=1);i[d>>2]=0;A:do{if((0|r)>=1)if(a)for(l=0,h=1,c=1,f=0,a=A;;){if(!(f|l)){if(!(0|(a=0|U(a,e,4,d)))&!(0|(e=0|M()))){a=2;break A}if(0|UA(a,e)){a=1;break A}}if(!(0|(a=0|U(a,e,0|i[16+(l<<2)>>2],d)))&!(0|(e=0|M()))){a=2;break A}if(i[(A=t+(c<<3)|0)>>2]=a,i[A+4>>2]=e,i[n+(c<<2)>>2]=h,A=(0|(f=f+1|0))==(0|h),u=6==(0|(s=l+1|0)),0|UA(a,e)){a=1;break A}if((0|(h=h+(u&A&1)|0))>(0|r)){a=0;break}l=A?u?0:s:l,c=c+1|0,f=A?0:f}else for(l=0,h=1,c=1,f=0,a=A;;){if(!(f|l)){if(!(0|(a=0|U(a,e,4,d)))&!(0|(e=0|M()))){a=2;break A}if(0|UA(a,e)){a=1;break A}}if(!(0|(a=0|U(a,e,0|i[16+(l<<2)>>2],d)))&!(0|(e=0|M()))){a=2;break A}if(i[(A=t+(c<<3)|0)>>2]=a,i[A+4>>2]=e,A=(0|(f=f+1|0))==(0|h),u=6==(0|(s=l+1|0)),0|UA(a,e)){a=1;break A}if((0|(h=h+(u&A&1)|0))>(0|r)){a=0;break}l=A?u?0:s:l,c=c+1|0,f=A?0:f}else a=0}while(0);return I=o,0|(d=a)}function P(A,e,r,t,n,o,a){r|=0,t|=0,n|=0,o|=0,a|=0;var f,s,u=0,l=0,h=0,c=0,d=0;if(s=I,I=I+16|0,f=s,!(0|(A|=0))&!(0|(e|=0)))I=s;else{if(u=0|Me(0|A,0|e,0|o,((0|o)<0)<<31>>31),M(),!(!(0|(d=0|i[(c=l=t+(u<<3)|0)>>2]))&!(0|(c=0|i[c+4>>2]))|(h=(0|d)==(0|A)&(0|c)==(0|e))))do{h=(0|(c=0|i[(d=l=t+((u=(u+1|0)%(0|o)|0)<<3)|0)>>2]))==(0|A)&(0|(d=0|i[d+4>>2]))==(0|e)}while(!(!(0|c)&!(0|d)|h));u=n+(u<<2)|0,h&&(0|i[u>>2])<=(0|a)||(i[(d=l)>>2]=A,i[d+4>>2]=e,i[u>>2]=a,(0|a)>=(0|r)||(d=a+1|0,i[f>>2]=0,P(c=0|U(A,e,2,f),0|M(),r,t,n,o,d),i[f>>2]=0,P(c=0|U(A,e,3,f),0|M(),r,t,n,o,d),i[f>>2]=0,P(c=0|U(A,e,1,f),0|M(),r,t,n,o,d),i[f>>2]=0,P(c=0|U(A,e,5,f),0|M(),r,t,n,o,d),i[f>>2]=0,P(c=0|U(A,e,4,f),0|M(),r,t,n,o,d),i[f>>2]=0,P(c=0|U(A,e,6,f),0|M(),r,t,n,o,d))),I=s}}function U(A,e,r,t){A|=0,e|=0,r|=0;var n,o,a=0,f=0,s=0,u=0,l=0,h=0,c=0;if((0|i[(t|=0)>>2])>0){a=0;do{r=0|fA(r),a=a+1|0}while((0|a)<(0|i[t>>2]))}n=0|Qe(0|A,0|e,45),M(),o=127&n,f=0|GA(A,e),a=0|Qe(0|A,0|e,52),M(),a&=15;A:do{if(a)for(;;){if(h=0|Qe(0|A,0|e,0|(l=3*(15-a|0)|0)),M(),h&=7,c=!(0|RA(a)),a=a+-1|0,u=0|ye(7,0,0|l),e&=~M(),A=(l=0|ye(0|i[(c?464:48)+(28*h|0)+(r<<2)>>2],0,0|l))|A&~u,e|=0|M(),!(r=0|i[(c?672:256)+(28*h|0)+(r<<2)>>2])){r=0;break A}if(!a){s=6;break}}else s=6}while(0);6==(0|s)&&(A|=h=0|ye(0|(c=0|i[880+(28*o|0)+(r<<2)>>2]),0,45),e=M()|-1040385&e,r=0|i[4304+(28*o|0)+(r<<2)>>2],127&~c||(c=0|ye(0|i[880+(28*o|0)+20>>2],0,45),e=M()|-1040385&e,r=0|i[4304+(28*o|0)+20>>2],A=0|TA(c|A,e),e=0|M(),i[t>>2]=1+(0|i[t>>2]))),s=0|Qe(0|A,0|e,45),M(),s&=127;A:do{if(0|S(s)){e:do{if(1==(0|GA(A,e))){if((0|o)!=(0|s)){if(0|R(s,0|i[7728+(28*o|0)>>2])){A=0|HA(A,e),f=1,e=0|M();break}A=0|TA(A,e),f=1,e=0|M();break}switch(0|f){case 5:A=0|HA(A,e),e=0|M(),i[t>>2]=5+(0|i[t>>2]),f=0;break e;case 3:A=0|TA(A,e),e=0|M(),i[t>>2]=1+(0|i[t>>2]),f=0;break e;default:return c=0,k(0|(h=0)),0|c}}else f=0}while(0);if((0|r)>0){a=0;do{A=0|SA(A,e),e=0|M(),a=a+1|0}while((0|a)!=(0|r))}if((0|o)!=(0|s)){if(!(0|T(s))){if(!!(0|f)|5!=(0|GA(A,e)))break;i[t>>2]=1+(0|i[t>>2]);break}switch(127&n){case 8:case 118:break A}3!=(0|GA(A,e))&&(i[t>>2]=1+(0|i[t>>2]))}}else if((0|r)>0){a=0;do{A=0|TA(A,e),e=0|M(),a=a+1|0}while((0|a)!=(0|r))}}while(0);return i[t>>2]=((0|i[t>>2])+r|0)%6|0,c=A,k(0|(h=e)),0|c}function G(A,e,r,t,o,a){e|=0,r|=0,t|=0,o|=0,a|=0;var f,s,u,l,h,c,d,g,w,p=0,B=0,b=0,m=0,v=0,k=0,Q=0,y=0,E=0,x=0,_=0,D=0,F=0,C=0;if(w=I,I=I+48|0,c=w+32|0,d=w+16|0,g=w,(0|(p=0|i[(A|=0)>>2]))<=0)return I=w,0|(D=0);f=A+4|0,s=c+8|0,u=d+8|0,l=g+8|0,h=((0|e)<0)<<31>>31,_=0;A:for(;;){E=(B=0|i[f>>2])+(_<<4)|0,i[c>>2]=i[E>>2],i[c+4>>2]=i[E+4>>2],i[c+8>>2]=i[E+8>>2],i[c+12>>2]=i[E+12>>2],(0|_)==(p+-1|0)?(i[d>>2]=i[B>>2],i[d+4>>2]=i[B+4>>2],i[d+8>>2]=i[B+8>>2],i[d+12>>2]=i[B+12>>2]):(E=B+(_+1<<4)|0,i[d>>2]=i[E>>2],i[d+4>>2]=i[E+4>>2],i[d+8>>2]=i[E+8>>2],i[d+12>>2]=i[E+12>>2]),E=0|N(c,d,r);e:do{if((0|E)>0){x=+(0|E),y=0;r:for(;;){C=+(E-y|0),F=+(0|y),n[g>>3]=+n[c>>3]*C/x+ +n[d>>3]*F/x,n[l>>3]=+n[s>>3]*C/x+ +n[u>>3]*F/x,B=0|Me(0|(k=0|LA(g,r)),0|(Q=0|M()),0|e,0|h),M(),m=0|i[(b=p=a+(B<<3)|0)>>2],b=0|i[b+4>>2];t:do{if(!(0|m)&!(0|b))D=14;else for(v=0;;){if((0|v)>(0|e)){p=1;break t}if((0|m)==(0|k)&(0|b)==(0|Q)){p=7;break t}if(!(0|(m=0|i[(b=p=a+((B=(B+1|0)%(0|e)|0)<<3)|0)>>2]))&!(0|(b=0|i[b+4>>2]))){D=14;break}v=v+1|0}}while(0);switch(14==(0|D)&&(D=0,!(0|k)&!(0|Q)?p=7:(i[p>>2]=k,i[p+4>>2]=Q,p=0|i[t>>2],i[(v=o+(p<<3)|0)>>2]=k,i[v+4>>2]=Q,i[t>>2]=p+1,p=0)),7&p){case 7:case 0:break;default:break r}if((0|E)<=(0|(y=y+1|0))){D=8;break e}}if(0|p){p=-1,D=20;break A}}else D=8}while(0);if(8==(0|D)&&(D=0),(0|(_=_+1|0))>=(0|(p=0|i[A>>2]))){p=0,D=20;break}}return 20==(0|D)?(I=w,0|p):0}function S(A){return 0|i[7728+(28*(A|=0)|0)+16>>2]}function T(A){return 4==(0|(A|=0))|117==(0|A)|0}function V(A){return 0|i[11152+(216*(0|i[(A|=0)>>2])|0)+(72*(0|i[A+4>>2])|0)+(24*(0|i[A+8>>2])|0)+(i[A+12>>2]<<3)>>2]}function H(A){return 0|i[11152+(216*(0|i[(A|=0)>>2])|0)+(72*(0|i[A+4>>2])|0)+(24*(0|i[A+8>>2])|0)+(i[A+12>>2]<<3)+4>>2]}function R(A,e){return e|=0,(0|i[7728+(28*(A|=0)|0)+20>>2])==(0|e)?0|(e=1):0|(e=(0|i[7728+(28*A|0)+24>>2])==(0|e))}function L(A,e){return 0|i[880+(28*(A|=0)|0)+((e|=0)<<2)>>2]}function z(A,e){return e|=0,(0|i[880+(28*(A|=0)|0)>>2])==(0|e)?0|(e=0):(0|i[880+(28*A|0)+4>>2])==(0|e)?0|(e=1):(0|i[880+(28*A|0)+8>>2])==(0|e)?0|(e=2):(0|i[880+(28*A|0)+12>>2])==(0|e)?0|(e=3):(0|i[880+(28*A|0)+16>>2])==(0|e)?0|(e=4):(0|i[880+(28*A|0)+20>>2])==(0|e)?0|(e=5):0|((0|i[880+(28*A|0)+24>>2])==(0|e)?6:7)}function Y(A){return+n[(A|=0)+16>>3]<+n[A+24>>3]|0}function O(A,e){A|=0;var r,t,i=0;return(i=+n[(e|=0)>>3])>=+n[A+8>>3]&&i<=+n[A>>3]?(r=+n[A+16>>3],i=+n[A+24>>3],e=(t=+n[e+8>>3])>=i,A=t<=r&1,r>2]=0,l=l+4|0}while((0|l)<(0|h));return NA(e,o),OA(h=0|i[(l=o)>>2],l=0|i[l+4>>2],r),jA(h,l,t),s=+_A(r,t+8|0),n[r>>3]=+n[A>>3],n[(l=r+8|0)>>3]=+n[A+16>>3],n[t>>3]=+n[A+8>>3],n[(h=t+8|0)>>3]=+n[A+24>>3],u=+_A(r,t),h=~~+B(+u*u/+Ee(+ +f(+(+n[l>>3]-+n[h>>3])/(+n[r>>3]-+n[t>>3])),3)/(s*(2.59807621135*s)*.8)),I=a,0|(0|h?h:1)}function N(A,e,r){A|=0,e|=0,r|=0;var t,n,o,a,f,s=0,u=0;a=I,I=I+288|0,t=a+264|0,n=a+96|0,u=(s=o=a)+96|0;do{i[s>>2]=0,s=s+4|0}while((0|s)<(0|u));return NA(r,o),OA(s=0|i[(u=o)>>2],u=0|i[u+4>>2],t),jA(s,u,n),f=+_A(t,n+8|0),u=~~+B(+ +_A(A,e)/(2*f)),I=a,0|(0|u?u:1)}function Z(A,e,r,t){e|=0,r|=0,t|=0,i[(A|=0)>>2]=e,i[A+4>>2]=r,i[A+8>>2]=t}function W(A,e){A|=0;var r,t,o,a,s=0,u=0,l=0,h=0,c=0,d=0,g=0;i[(a=(e|=0)+8|0)>>2]=0,t=+n[A>>3],h=+f(+t),o=+n[A+8>>3],h+=.5*(c=+f(+o)/.8660254037844386),h-=+(0|(s=~~h)),c-=+(0|(A=~~c));do{if(h<.5){if(h<.3333333333333333){if(i[e>>2]=s,c<.5*(h+1)){i[e+4>>2]=A;break}A=A+1|0,i[e+4>>2]=A;break}if(A=(1&!(c<(g=1-h)))+A|0,i[e+4>>2]=A,g<=c&c<2*h){s=s+1|0,i[e>>2]=s;break}i[e>>2]=s;break}if(!(h<.6666666666666666)){if(s=s+1|0,i[e>>2]=s,c<.5*h){i[e+4>>2]=A;break}A=A+1|0,i[e+4>>2]=A;break}if(c<1-h){if(i[e+4>>2]=A,2*h-1>2]=s;break}}else A=A+1|0,i[e+4>>2]=A;s=s+1|0,i[e>>2]=s}while(0);do{if(t<0){if(1&A){s=~~(+(0|s)-(2*(+((d=0|me(0|s,((0|s)<0)<<31>>31,0|(d=(A+1|0)/2|0),((0|d)<0)<<31>>31))>>>0)+4294967296*+(0|M()))+1)),i[e>>2]=s;break}s=~~(+(0|s)-2*(+((d=0|me(0|s,((0|s)<0)<<31>>31,0|(d=(0|A)/2|0),((0|d)<0)<<31>>31))>>>0)+4294967296*+(0|M()))),i[e>>2]=s;break}}while(0);d=e+4|0,o<0&&(s=s-((1|A<<1)/2|0)|0,i[e>>2]=s,A=0-A|0,i[d>>2]=A),u=A-s|0,(0|s)<0?(l=0-s|0,i[d>>2]=u,i[a>>2]=l,i[e>>2]=0,A=u,s=0):l=0,(0|A)<0&&(s=s-A|0,i[e>>2]=s,l=l-A|0,i[a>>2]=l,i[d>>2]=0,A=0),r=s-l|0,u=A-l|0,(0|l)<0&&(i[e>>2]=r,i[d>>2]=u,i[a>>2]=0,A=u,s=r,l=0),(0|(u=(0|l)<(0|(u=(0|A)<(0|s)?A:s))?l:u))<=0||(i[e>>2]=s-u,i[d>>2]=A-u,i[a>>2]=l-u)}function J(A){var e,r=0,t=0,n=0,o=0,a=0;r=0|i[(A|=0)>>2],t=0|i[(e=A+4|0)>>2],(0|r)<0&&(t=t-r|0,i[e>>2]=t,i[(a=A+8|0)>>2]=(0|i[a>>2])-r,i[A>>2]=0,r=0),(0|t)<0?(r=r-t|0,i[A>>2]=r,o=(0|i[(a=A+8|0)>>2])-t|0,i[a>>2]=o,i[e>>2]=0,t=0):(a=o=A+8|0,o=0|i[o>>2]),(0|o)<0&&(r=r-o|0,i[A>>2]=r,t=t-o|0,i[e>>2]=t,i[a>>2]=0,o=0),(0|(n=(0|o)<(0|(n=(0|t)<(0|r)?t:r))?o:n))<=0||(i[A>>2]=r-n,i[e>>2]=t-n,i[a>>2]=o-n)}function K(A,e){e|=0;var r,t;t=0|i[(A|=0)+8>>2],r=+((0|i[A+4>>2])-t|0),n[e>>3]=+((0|i[A>>2])-t|0)-.5*r,n[e+8>>3]=.8660254037844386*r}function X(A,e,r){A|=0,e|=0,i[(r|=0)>>2]=(0|i[e>>2])+(0|i[A>>2]),i[r+4>>2]=(0|i[e+4>>2])+(0|i[A+4>>2]),i[r+8>>2]=(0|i[e+8>>2])+(0|i[A+8>>2])}function q(A,e,r){A|=0,e|=0,i[(r|=0)>>2]=(0|i[A>>2])-(0|i[e>>2]),i[r+4>>2]=(0|i[A+4>>2])-(0|i[e+4>>2]),i[r+8>>2]=(0|i[A+8>>2])-(0|i[e+8>>2])}function $(A,e){e|=0;var r,t=0;t=0|b(0|i[(A|=0)>>2],e),i[A>>2]=t,r=0|b(0|i[(t=A+4|0)>>2],e),i[t>>2]=r,e=0|b(0|i[(A=A+8|0)>>2],e),i[A>>2]=e}function AA(A){var e,r,t=0,n=0,o=0,a=0,f=0;f=(0|(r=0|i[(A|=0)>>2]))<0,A=(A=(n=(0|(a=((e=(0|(o=(0|i[A+4>>2])-(f?r:0)|0))<0)?0-o|0:0)+((0|i[A+8>>2])-(f?r:0))|0))<0)?0:a)-((o=(0|(n=(0|A)<(0|(n=(0|(t=(e?0:o)-(n?a:0)|0))<(0|(a=(f?0:r)-(e?o:0)-(n?a:0)|0))?t:a))?A:n))>0)?n:0)|0,t=t-(o?n:0)|0;A:do{switch(a-(o?n:0)|0){case 0:switch(0|t){case 0:return 0|(f=0|A?1==(0|A)?1:7:0);case 1:return 0|(f=0|A?1==(0|A)?3:7:2);default:break A}case 1:switch(0|t){case 0:return 0|(f=0|A?1==(0|A)?5:7:4);case 1:if(A)break A;return 0|(A=6);default:break A}}}while(0);return 0|(f=7)}function eA(A){var e,r,t=0,n=0,o=0,a=0,f=0;n=0|i[(e=(A|=0)+8|0)>>2],o=0|we(+((3*(t=(0|i[A>>2])-n|0)|0)-(n=(0|i[(r=A+4|0)>>2])-n|0)|0)/7),i[A>>2]=o,t=0|we(+((n<<1)+t|0)/7),i[r>>2]=t,i[e>>2]=0,n=t-o|0,(0|o)<0?(f=0-o|0,i[r>>2]=n,i[e>>2]=f,i[A>>2]=0,t=n,o=0,n=f):n=0,(0|t)<0&&(o=o-t|0,i[A>>2]=o,n=n-t|0,i[e>>2]=n,i[r>>2]=0,t=0),f=o-n|0,a=t-n|0,(0|n)<0?(i[A>>2]=f,i[r>>2]=a,i[e>>2]=0,t=a,a=f,n=0):a=o,(0|(o=(0|n)<(0|(o=(0|t)<(0|a)?t:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=t-o,i[e>>2]=n-o)}function rA(A){var e,r,t=0,n=0,o=0,a=0,f=0;n=0|i[(e=(A|=0)+8|0)>>2],o=0|we(+(((t=(0|i[A>>2])-n|0)<<1)+(n=(0|i[(r=A+4|0)>>2])-n|0)|0)/7),i[A>>2]=o,t=0|we(+((3*n|0)-t|0)/7),i[r>>2]=t,i[e>>2]=0,n=t-o|0,(0|o)<0?(f=0-o|0,i[r>>2]=n,i[e>>2]=f,i[A>>2]=0,t=n,o=0,n=f):n=0,(0|t)<0&&(o=o-t|0,i[A>>2]=o,n=n-t|0,i[e>>2]=n,i[r>>2]=0,t=0),f=o-n|0,a=t-n|0,(0|n)<0?(i[A>>2]=f,i[r>>2]=a,i[e>>2]=0,t=a,a=f,n=0):a=o,(0|(o=(0|n)<(0|(o=(0|t)<(0|a)?t:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=t-o,i[e>>2]=n-o)}function tA(A){var e,r,t,n=0,o=0,a=0,f=0;n=0|i[(A|=0)>>2],o=0|i[(r=A+4|0)>>2],a=0|i[(t=A+8|0)>>2],f=o+(3*n|0)|0,i[A>>2]=f,o=a+(3*o|0)|0,i[r>>2]=o,n=(3*a|0)+n|0,i[t>>2]=n,a=o-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=a,i[t>>2]=n,i[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,i[A>>2]=a,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=a-n|0,f=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=f,i[t>>2]=0,a=e,n=0):f=o,(0|(o=(0|n)<(0|(o=(0|f)<(0|a)?f:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=f-o,i[t>>2]=n-o)}function iA(A){var e,r,t,n=0,o=0,a=0,f=0;f=0|i[(A|=0)>>2],a=(3*(n=0|i[(r=A+4|0)>>2])|0)+f|0,f=(o=0|i[(t=A+8|0)>>2])+(3*f|0)|0,i[A>>2]=f,i[r>>2]=a,n=(3*o|0)+n|0,i[t>>2]=n,o=a-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=o,i[t>>2]=n,i[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,i[A>>2]=f,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=f-n|0,a=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=a,i[t>>2]=0,f=e,n=0):a=o,(0|(o=(0|n)<(0|(o=(0|a)<(0|f)?a:f))?n:o))<=0||(i[A>>2]=f-o,i[r>>2]=a-o,i[t>>2]=n-o)}function nA(A,e){A|=0;var r,t,n,o=0,a=0,f=0;((e|=0)+-1|0)>>>0>=6||(f=(0|i[15472+(12*e|0)>>2])+(0|i[A>>2])|0,i[A>>2]=f,n=A+4|0,a=(0|i[15472+(12*e|0)+4>>2])+(0|i[n>>2])|0,i[n>>2]=a,t=A+8|0,e=(0|i[15472+(12*e|0)+8>>2])+(0|i[t>>2])|0,i[t>>2]=e,o=a-f|0,(0|f)<0?(e=e-f|0,i[n>>2]=o,i[t>>2]=e,i[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,i[A>>2]=a,e=e-o|0,i[t>>2]=e,i[n>>2]=0,o=0),r=a-e|0,f=o-e|0,(0|e)<0?(i[A>>2]=r,i[n>>2]=f,i[t>>2]=0,a=r,e=0):f=o,(0|(o=(0|e)<(0|(o=(0|f)<(0|a)?f:a))?e:o))<=0||(i[A>>2]=a-o,i[n>>2]=f-o,i[t>>2]=e-o))}function oA(A){var e,r,t,n=0,o=0,a=0,f=0;f=0|i[(A|=0)>>2],a=(n=0|i[(r=A+4|0)>>2])+f|0,f=(o=0|i[(t=A+8|0)>>2])+f|0,i[A>>2]=f,i[r>>2]=a,n=o+n|0,i[t>>2]=n,o=a-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=o,i[t>>2]=n,i[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,i[A>>2]=a,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=a-n|0,f=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=f,i[t>>2]=0,a=e,n=0):f=o,(0|(o=(0|n)<(0|(o=(0|f)<(0|a)?f:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=f-o,i[t>>2]=n-o)}function aA(A){var e,r,t,n=0,o=0,a=0,f=0;n=0|i[(A|=0)>>2],a=0|i[(r=A+4|0)>>2],o=0|i[(t=A+8|0)>>2],f=a+n|0,i[A>>2]=f,a=o+a|0,i[r>>2]=a,n=o+n|0,i[t>>2]=n,o=a-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=o,i[t>>2]=n,i[A>>2]=0,a=0):(o=a,a=f),(0|o)<0&&(a=a-o|0,i[A>>2]=a,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=a-n|0,f=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=f,i[t>>2]=0,a=e,n=0):f=o,(0|(o=(0|n)<(0|(o=(0|f)<(0|a)?f:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=f-o,i[t>>2]=n-o)}function fA(A){switch(0|(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}return 0|A}function sA(A){switch(0|(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}return 0|A}function uA(A){var e,r,t,n=0,o=0,a=0,f=0;n=0|i[(A|=0)>>2],o=0|i[(r=A+4|0)>>2],a=0|i[(t=A+8|0)>>2],f=o+(n<<1)|0,i[A>>2]=f,o=a+(o<<1)|0,i[r>>2]=o,n=(a<<1)+n|0,i[t>>2]=n,a=o-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=a,i[t>>2]=n,i[A>>2]=0,o=a,a=0):a=f,(0|o)<0&&(a=a-o|0,i[A>>2]=a,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=a-n|0,f=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=f,i[t>>2]=0,a=e,n=0):f=o,(0|(o=(0|n)<(0|(o=(0|f)<(0|a)?f:a))?n:o))<=0||(i[A>>2]=a-o,i[r>>2]=f-o,i[t>>2]=n-o)}function lA(A){var e,r,t,n=0,o=0,a=0,f=0;f=0|i[(A|=0)>>2],a=((n=0|i[(r=A+4|0)>>2])<<1)+f|0,f=(o=0|i[(t=A+8|0)>>2])+(f<<1)|0,i[A>>2]=f,i[r>>2]=a,n=(o<<1)+n|0,i[t>>2]=n,o=a-f|0,(0|f)<0?(n=n-f|0,i[r>>2]=o,i[t>>2]=n,i[A>>2]=0,f=0):o=a,(0|o)<0&&(f=f-o|0,i[A>>2]=f,n=n-o|0,i[t>>2]=n,i[r>>2]=0,o=0),e=f-n|0,a=o-n|0,(0|n)<0?(i[A>>2]=e,i[r>>2]=a,i[t>>2]=0,f=e,n=0):a=o,(0|(o=(0|n)<(0|(o=(0|a)<(0|f)?a:f))?n:o))<=0||(i[A>>2]=f-o,i[r>>2]=a-o,i[t>>2]=n-o)}function hA(A,e){e|=0;var r,t,n,o=0,a=0,f=0;return n=(0|(t=(0|i[(A|=0)>>2])-(0|i[e>>2])|0))<0,r=(0|(a=(0|i[A+4>>2])-(0|i[e+4>>2])-(n?t:0)|0))<0,e=(e=(A=(0|(f=(n?0-t|0:0)+(0|i[A+8>>2])-(0|i[e+8>>2])+(r?0-a|0:0)|0))<0)?0:f)-((a=(0|(A=(0|e)<(0|(A=(0|(o=(r?0:a)-(A?f:0)|0))<(0|(f=(n?0:t)-(r?a:0)-(A?f:0)|0))?o:f))?e:A))>0)?A:0)|0,o=o-(a?A:0)|0,0|((0|(A=(0|(A=f-(a?A:0)|0))>-1?A:0-A|0))>(0|(e=(0|(o=(0|o)>-1?o:0-o|0))>(0|(e=(0|e)>-1?e:0-e|0))?o:e))?A:e)}function cA(A,e){e|=0;var r;r=0|i[(A|=0)+8>>2],i[e>>2]=(0|i[A>>2])-r,i[e+4>>2]=(0|i[A+4>>2])-r}function dA(A,e){e|=0;var r,t,n,o=0,a=0,f=0;a=0|i[(A|=0)>>2],i[e>>2]=a,A=0|i[A+4>>2],i[(t=e+4|0)>>2]=A,i[(n=e+8|0)>>2]=0,o=A-a|0,(0|a)<0?(A=0-a|0,i[t>>2]=o,i[n>>2]=A,i[e>>2]=0,a=0):(o=A,A=0),(0|o)<0&&(a=a-o|0,i[e>>2]=a,A=A-o|0,i[n>>2]=A,i[t>>2]=0,o=0),r=a-A|0,f=o-A|0,(0|A)<0?(i[e>>2]=r,i[t>>2]=f,i[n>>2]=0,o=f,f=r,A=0):f=a,(0|(a=(0|A)<(0|(a=(0|o)<(0|f)?o:f))?A:a))<=0||(i[e>>2]=f-a,i[t>>2]=o-a,i[n>>2]=A-a)}function gA(A){var e,r,t,n;r=(n=0|i[(e=(A|=0)+8|0)>>2])-(0|i[A>>2])|0,i[A>>2]=r,A=(0|i[(t=A+4|0)>>2])-n|0,i[t>>2]=A,i[e>>2]=0-(A+r)}function wA(A){var e,r,t=0,n=0,o=0,a=0,f=0;t=0-(n=0|i[(A|=0)>>2])|0,i[A>>2]=t,i[(e=A+8|0)>>2]=0,a=(o=0|i[(r=A+4|0)>>2])+n|0,(0|n)>0?(i[r>>2]=a,i[e>>2]=n,i[A>>2]=0,t=0,o=a):n=0,(0|o)<0?(f=t-o|0,i[A>>2]=f,n=n-o|0,i[e>>2]=n,i[r>>2]=0,a=f-n|0,t=0-n|0,(0|n)<0?(i[A>>2]=a,i[r>>2]=t,i[e>>2]=0,o=t,n=0):(o=0,a=f)):a=t,(0|(t=(0|n)<(0|(t=(0|o)<(0|a)?o:a))?n:t))<=0||(i[A>>2]=a-t,i[r>>2]=o-t,i[e>>2]=n-t)}function pA(A,e,r,t){e|=0,r|=0,t|=0;var o,a=0,f=0,s=0,u=0;if(o=I,I=I+32|0,function(A,e){A|=0,e|=0;var r=0,t=0,i=0;r=+n[A>>3],t=+l(+r),r=+h(+r),n[e+16>>3]=r,r=+n[A+8>>3],i=t*+l(+r),n[e>>3]=i,r=t*+h(+r),n[e+8>>3]=r}(A|=0,f=o),i[r>>2]=0,a=+fe(15888,f),(s=+fe(15912,f))>2]=1,a=s),(s=+fe(15936,f))>2]=2,a=s),(s=+fe(15960,f))>2]=3,a=s),(s=+fe(15984,f))>2]=4,a=s),(s=+fe(16008,f))>2]=5,a=s),(s=+fe(16032,f))>2]=6,a=s),(s=+fe(16056,f))>2]=7,a=s),(s=+fe(16080,f))>2]=8,a=s),(s=+fe(16104,f))>2]=9,a=s),(s=+fe(16128,f))>2]=10,a=s),(s=+fe(16152,f))>2]=11,a=s),(s=+fe(16176,f))>2]=12,a=s),(s=+fe(16200,f))>2]=13,a=s),(s=+fe(16224,f))>2]=14,a=s),(s=+fe(16248,f))>2]=15,a=s),(s=+fe(16272,f))>2]=16,a=s),(s=+fe(16296,f))>2]=17,a=s),(s=+fe(16320,f))>2]=18,a=s),(s=+fe(16344,f))>2]=19,a=s),(s=+d(+(1-.5*a)))<1e-16)return i[t>>2]=0,i[t+4>>2]=0,i[t+8>>2]=0,i[t+12>>2]=0,void(I=o);if(r=0|i[r>>2],a=+EA((a=+n[16368+(24*r|0)>>3])-+EA(+function(A,e){A|=0,e|=0;var r=0,t=0,i=0,o=0,a=0;return o=+n[e>>3],t=+l(+o),i=+n[e+8>>3]-+n[A+8>>3],a=t*+h(+i),r=+n[A>>3],+ +p(+a,+(+h(+o)*+l(+r)-+l(+i)*(t*+h(+r))))}(15568+(r<<4)|0,A))),u=0|RA(e)?+EA(a+-.3334731722518321):a,a=+c(+s)/.381966011250105,(0|e)>0){f=0;do{a*=2.6457513110645907,f=f+1|0}while((0|f)!=(0|e))}s=+l(+u)*a,n[t>>3]=s,u=+h(+u)*a,n[t+8>>3]=u,I=o}function BA(A,e,r,t,o){e|=0,r|=0,t|=0,o|=0;var a=0,u=0;if(a=+function(A){A|=0;var e=0,r=0;return r=+n[A>>3],e=+n[A+8>>3],+ +s(+(r*r+e*e))}(A|=0),a<1e-16)return e=15568+(e<<4)|0,i[o>>2]=i[e>>2],i[o+4>>2]=i[e+4>>2],i[o+8>>2]=i[e+8>>2],void(i[o+12>>2]=i[e+12>>2]);if(u=+p(+ +n[A+8>>3],+ +n[A>>3]),(0|r)>0){A=0;do{a/=2.6457513110645907,A=A+1|0}while((0|A)!=(0|r))}t?(a/=3,r=!(0|RA(r)),a=+w(.381966011250105*(r?a:a/2.6457513110645907))):(a=+w(.381966011250105*a),0|RA(r)&&(u=+EA(u+.3334731722518321))),function(A,e,r,t){A|=0,e=+e,r=+r,t|=0;var o=0,a=0,s=0,u=0;if(r<1e-16)return i[t>>2]=i[A>>2],i[t+4>>2]=i[A+4>>2],i[t+8>>2]=i[A+8>>2],void(i[t+12>>2]=i[A+12>>2]);a=e<0?e+6.283185307179586:e,a=e>=6.283185307179586?a+-6.283185307179586:a;do{if(!(a<1e-16)){if(o=+f(+(a+-3.141592653589793))<1e-16,e=+n[A>>3],o){e-=r,n[t>>3]=e,o=t;break}if(s=+l(+r),r=+h(+r),e=s*+h(+e)+ +l(+a)*(r*+l(+e)),e=+g(+((e=e>1?1:e)<-1?-1:e)),n[t>>3]=e,+f(+(e+-1.5707963267948966))<1e-16)return n[t>>3]=1.5707963267948966,void(n[t+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return n[t>>3]=-1.5707963267948966,void(n[t+8>>3]=0);if(u=+l(+e),a=r*+h(+a)/u,r=+n[A>>3],e=(s-+h(+e)*+h(+r))/+l(+r)/u,s=a>1?1:a,e=e>1?1:e,(e=+n[A+8>>3]+ +p(+(s<-1?-1:s),+(e<-1?-1:e)))>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);return void(n[t+8>>3]=e)}e=+n[A>>3]+r,n[t>>3]=e,o=t}while(0);if(+f(+(e+-1.5707963267948966))<1e-16)return n[o>>3]=1.5707963267948966,void(n[t+8>>3]=0);if(+f(+(e+1.5707963267948966))<1e-16)return n[o>>3]=-1.5707963267948966,void(n[t+8>>3]=0);if(e=+n[A+8>>3],e>3.141592653589793)do{e+=-6.283185307179586}while(e>3.141592653589793);if(e<-3.141592653589793)do{e+=6.283185307179586}while(e<-3.141592653589793);n[t+8>>3]=e}(15568+(e<<4)|0,+EA(+n[16368+(24*e|0)>>3]-u),a,o)}function bA(A,e,r){e|=0,r|=0;var t,n;t=I,I=I+16|0,K((A|=0)+4|0,n=t),BA(n,0|i[A>>2],e,0,r),I=t}function mA(A,e,r,t,o){A|=0,e|=0,r|=0,t|=0,o|=0;var a,f,s,u,l,h,c,d,g,w,p,B,b,m,v,k,M,y,E,x,_,D,F=0,C=0,P=0,U=0,G=0,S=0;if(D=I,I=I+272|0,U=D+240|0,E=D,x=D+224|0,_=D+208|0,p=D+176|0,B=D+160|0,b=D+192|0,m=D+144|0,v=D+128|0,k=D+112|0,M=D+96|0,y=D+80|0,i[(F=D+256|0)>>2]=e,i[U>>2]=i[A>>2],i[U+4>>2]=i[A+4>>2],i[U+8>>2]=i[A+8>>2],i[U+12>>2]=i[A+12>>2],vA(U,F,E),i[o>>2]=0,(0|(U=t+r+(5==(0|t)&1)|0))<=(0|r))I=D;else{f=x+4|0,s=p+4|0,u=r+5|0,l=16848+((a=0|i[F>>2])<<2)|0,h=16928+(a<<2)|0,c=v+8|0,d=k+8|0,g=M+8|0,w=_+4|0,P=r;A:for(;;){C=E+((0|P)%5<<4)|0,i[_>>2]=i[C>>2],i[_+4>>2]=i[C+4>>2],i[_+8>>2]=i[C+8>>2],i[_+12>>2]=i[C+12>>2];do{}while(2==(0|kA(_,a,0,1)));if((0|P)>(0|r)&!!(0|RA(e))){if(i[p>>2]=i[_>>2],i[p+4>>2]=i[_+4>>2],i[p+8>>2]=i[_+8>>2],i[p+12>>2]=i[_+12>>2],K(f,B),t=0|i[p>>2],F=0|i[17008+(80*t|0)+(i[x>>2]<<2)>>2],i[p>>2]=i[18608+(80*t|0)+(20*F|0)>>2],(0|(C=0|i[18608+(80*t|0)+(20*F|0)+16>>2]))>0){A=0;do{oA(s),A=A+1|0}while((0|A)<(0|C))}switch(C=18608+(80*t|0)+(20*F|0)+4|0,i[b>>2]=i[C>>2],i[b+4>>2]=i[C+4>>2],i[b+8>>2]=i[C+8>>2],$(b,3*(0|i[l>>2])|0),X(s,b,s),J(s),K(s,m),G=+(0|i[h>>2]),n[v>>3]=3*G,n[c>>3]=0,S=-1.5*G,n[k>>3]=S,n[d>>3]=2.598076211353316*G,n[M>>3]=S,n[g>>3]=-2.598076211353316*G,0|i[17008+(80*(0|i[p>>2])|0)+(i[_>>2]<<2)>>2]){case 1:A=k,t=v;break;case 3:A=M,t=k;break;case 2:A=v,t=M;break;default:A=12;break A}oe(B,m,t,A,y),BA(y,0|i[p>>2],a,1,o+8+(i[o>>2]<<4)|0),i[o>>2]=1+(0|i[o>>2])}if((0|P)<(0|u)&&(K(w,p),BA(p,0|i[_>>2],a,1,o+8+(i[o>>2]<<4)|0),i[o>>2]=1+(0|i[o>>2])),i[x>>2]=i[_>>2],i[x+4>>2]=i[_+4>>2],i[x+8>>2]=i[_+8>>2],i[x+12>>2]=i[_+12>>2],(0|(P=P+1|0))>=(0|U)){A=3;break}}3!=(0|A)?12==(0|A)&&Q(22474,22521,581,22531):I=D}}function vA(A,e,r){A|=0,e|=0,r|=0;var t,n=0,o=0,a=0,f=0,s=0;t=I,I=I+128|0,o=t,f=20208,s=(a=n=t+64|0)+60|0;do{i[a>>2]=i[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|s));f=20272,s=(a=o)+60|0;do{i[a>>2]=i[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|s));n=(s=!(0|RA(0|i[e>>2])))?n:o,uA(o=A+4|0),lA(o),0|RA(0|i[e>>2])&&(iA(o),i[e>>2]=1+(0|i[e>>2])),i[r>>2]=i[A>>2],X(o,n,e=r+4|0),J(e),i[r+16>>2]=i[A>>2],X(o,n+12|0,e=r+20|0),J(e),i[r+32>>2]=i[A>>2],X(o,n+24|0,e=r+36|0),J(e),i[r+48>>2]=i[A>>2],X(o,n+36|0,e=r+52|0),J(e),i[r+64>>2]=i[A>>2],X(o,n+48|0,r=r+68|0),J(r),I=t}function kA(A,e,r,t){r|=0,t|=0;var n,o,a,f,s,u,l=0,h=0,c=0,d=0,g=0;if(u=I,I=I+32|0,s=u+12|0,o=u,g=(A|=0)+4|0,d=0|i[16928+((e|=0)<<2)>>2],d=(f=!!(0|t))?3*d|0:d,l=0|i[g>>2],n=0|i[(a=A+8|0)>>2],f){if((0|(l=n+l+(t=0|i[(h=A+12|0)>>2])|0))==(0|d))return I=u,0|(g=1);c=h}else l=n+l+(t=0|i[(c=A+12|0)>>2])|0;if((0|l)<=(0|d))return I=u,0|(g=0);do{if((0|t)>0){if(t=0|i[A>>2],(0|n)>0){h=18608+(80*t|0)+60|0,t=A;break}t=18608+(80*t|0)+40|0,r?(Z(s,d,0,0),q(g,s,o),aA(o),X(o,s,g),h=t,t=A):(h=t,t=A)}else h=18608+(80*(0|i[A>>2])|0)+20|0,t=A}while(0);if(i[t>>2]=i[h>>2],(0|i[(l=h+16|0)>>2])>0){t=0;do{oA(g),t=t+1|0}while((0|t)<(0|i[l>>2]))}return A=h+4|0,i[s>>2]=i[A>>2],i[s+4>>2]=i[A+4>>2],i[s+8>>2]=i[A+8>>2],e=0|i[16848+(e<<2)>>2],$(s,f?3*e|0:e),X(g,s,g),J(g),t=f&&((0|i[a>>2])+(0|i[g>>2])+(0|i[c>>2])|0)==(0|d)?1:2,I=u,0|(g=t)}function MA(A,e){A|=0,e|=0;var r=0;do{r=0|kA(A,e,0,1)}while(2==(0|r));return 0|r}function QA(A,e,r,t,o){A|=0,e|=0,r|=0,t|=0,o|=0;var a,f,s,u,l,h,c,d,g,w,p,B,b,m,v,k,M,y,E=0,x=0,_=0,D=0,F=0;if(y=I,I=I+240|0,m=y+208|0,v=y,k=y+192|0,M=y+176|0,g=y+160|0,w=y+144|0,p=y+128|0,B=y+112|0,b=y+96|0,i[(E=y+224|0)>>2]=e,i[m>>2]=i[A>>2],i[m+4>>2]=i[A+4>>2],i[m+8>>2]=i[A+8>>2],i[m+12>>2]=i[A+12>>2],yA(m,E,v),i[o>>2]=0,(0|(d=t+r+(6==(0|t)&1)|0))<=(0|r))I=y;else{f=r+6|0,s=16928+((a=0|i[E>>2])<<2)|0,u=w+8|0,l=p+8|0,h=B+8|0,c=k+4|0,x=0,_=r,t=-1;A:for(;;){if(A=v+((E=(0|_)%6|0)<<4)|0,i[k>>2]=i[A>>2],i[k+4>>2]=i[A+4>>2],i[k+8>>2]=i[A+8>>2],i[k+12>>2]=i[A+12>>2],A=x,x=0|kA(k,a,0,1),(0|_)>(0|r)&!!(0|RA(e))&&(1!=(0|A)&&(0|i[k>>2])!=(0|t))){switch(K(v+((E+5|0)%6<<4)+4|0,M),K(v+(E<<4)+4|0,g),D=+(0|i[s>>2]),n[w>>3]=3*D,n[u>>3]=0,F=-1.5*D,n[p>>3]=F,n[l>>3]=2.598076211353316*D,n[B>>3]=F,n[h>>3]=-2.598076211353316*D,E=0|i[m>>2],0|i[17008+(80*E|0)+(((0|t)==(0|E)?i[k>>2]:t)<<2)>>2]){case 1:A=p,t=w;break;case 3:A=B,t=p;break;case 2:A=w,t=B;break;default:A=8;break A}oe(M,g,t,A,b),0|ae(M,b)||0|ae(g,b)||(BA(b,0|i[m>>2],a,1,o+8+(i[o>>2]<<4)|0),i[o>>2]=1+(0|i[o>>2]))}if((0|_)<(0|f)&&(K(c,M),BA(M,0|i[k>>2],a,1,o+8+(i[o>>2]<<4)|0),i[o>>2]=1+(0|i[o>>2])),(0|(_=_+1|0))>=(0|d)){A=3;break}t=0|i[k>>2]}3!=(0|A)?8==(0|A)&&Q(22557,22521,746,22602):I=y}}function yA(A,e,r){A|=0,e|=0,r|=0;var t,n=0,o=0,a=0,f=0,s=0;t=I,I=I+160|0,o=t,f=20336,s=(a=n=t+80|0)+72|0;do{i[a>>2]=i[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|s));f=20416,s=(a=o)+72|0;do{i[a>>2]=i[f>>2],a=a+4|0,f=f+4|0}while((0|a)<(0|s));n=(s=!(0|RA(0|i[e>>2])))?n:o,uA(o=A+4|0),lA(o),0|RA(0|i[e>>2])&&(iA(o),i[e>>2]=1+(0|i[e>>2])),i[r>>2]=i[A>>2],X(o,n,e=r+4|0),J(e),i[r+16>>2]=i[A>>2],X(o,n+12|0,e=r+20|0),J(e),i[r+32>>2]=i[A>>2],X(o,n+24|0,e=r+36|0),J(e),i[r+48>>2]=i[A>>2],X(o,n+36|0,e=r+52|0),J(e),i[r+64>>2]=i[A>>2],X(o,n+48|0,e=r+68|0),J(e),i[r+80>>2]=i[A>>2],X(o,n+60|0,r=r+84|0),J(r),I=t}function EA(A){var e;return e=(A=+A)<0?A+6.283185307179586:A,+(A>=6.283185307179586?e+-6.283185307179586:e)}function xA(A,e){return e|=0,+f(+(+n[(A|=0)>>3]-+n[e>>3]))<17453292519943298e-27?0|(e=+f(+(+n[A+8>>3]-+n[e+8>>3]))<17453292519943298e-27):0|(e=0)}function _A(A,e){A|=0;var r,t,i,o=0;return t=+n[(e|=0)>>3],r=+n[A>>3],o=(i=+h(.5*(t-r)))*i+(o=+h(.5*(+n[e+8>>3]-+n[A+8>>3])))*(+l(+t)*+l(+r)*o),2*+p(+ +s(+o),+ +s(+(1-o)))*6371.007180918475}function DA(A,e,r){A|=0,r|=0;var t,i,o,a,f=0,u=0,d=0,g=0,B=0,b=0;return b=+n[(e|=0)>>3],o=+n[A>>3],B=+h(.5*(b-o)),d=+n[e+8>>3],i=+n[A+8>>3],g=+h(.5*(d-i)),t=+l(+o),a=+l(+b),g=2*+p(+ +s(+(g=B*B+g*(a*t*g))),+ +s(+(1-g))),B=+n[r>>3],b=+h(.5*(B-b)),f=+n[r+8>>3],d=+h(.5*(f-d)),u=+l(+B),d=2*+p(+ +s(+(d=b*b+d*(a*u*d))),+ +s(+(1-d))),B=+h(.5*(o-B)),f=+h(.5*(i-f)),f=2*+p(+ +s(+(f=B*B+f*(t*u*f))),+ +s(+(1-f))),4*+w(+ +s(+ +c(.5*(u=.5*(g+d+f)))*+c(.5*(u-g))*+c(.5*(u-d))*+c(.5*(u-f))))}function IA(A,e){return e=0|Qe(0|(A|=0),0|(e|=0),45),M(),127&e}function FA(A,e){var r=0,t=0,i=0,n=0,o=0,a=0;if(!(!0&134217728==(-16777216&(e|=0))))return 0|(e=0);if(o=0|Qe(0|(A|=0),0|e,45),M(),(o&=127)>>>0>121)return 0|(e=0);r=0|Qe(0|A,0|e,52),M(),r&=15;do{if(0|r){for(i=1,t=0;;){if(n=0|Qe(0|A,0|e,3*(15-i|0)|0),M(),!!(0|(n&=7))&(1^t)){if(1==(0|n)&!!(0|S(o))){a=0,t=13;break}t=1}if(7==(0|n)){a=0,t=13;break}if(!(i>>>0>>0)){t=9;break}i=i+1|0}if(9==(0|t)){if(15!=(0|r))break;return 0|(a=1)}if(13==(0|t))return 0|a}}while(0);for(;;){if(a=0|Qe(0|A,0|e,3*(14-r|0)|0),M(),!(!0&!(7&~a))){a=0,t=13;break}if(!(r>>>0<14)){a=1,t=13;break}r=r+1|0}return 13==(0|t)?0|a:0}function CA(A,e,r){r|=0;var t=0,i=0;if(t=0|Qe(0|(A|=0),0|(e|=0),52),M(),(0|(t&=15))>=(0|r)){if((0|t)!=(0|r))if(r>>>0<=15){if(A|=i=0|ye(0|r,0,52),e=M()|-15728641&e,(0|t)>(0|r))do{i=0|ye(7,0,3*(14-r|0)|0),r=r+1|0,A|=i,e=0|M()|e}while((0|r)<(0|t))}else e=0,A=0}else e=0,A=0;return k(0|e),0|A}function PA(A,e,r,t){r|=0,t|=0;var n,o=0,a=0,f=0,s=0,u=0,l=0;if(f=0|Qe(0|(A|=0),0|(e|=0),52),M(),(0|r)<16&(0|(f&=15))<=(0|r)){if((0|f)==(0|r))return i[(r=t)>>2]=A,void(i[r+4>>2]=e);if(n=(0|(u=0|ee(7,r-f|0)))/7|0,s=0|Qe(0|A,0|e,45),M(),0|S(127&s)){A:do{if(f)for(a=1;;){if(o=0|Qe(0|A,0|e,3*(15-a|0)|0),M(),0|(o&=7))break A;if(!(a>>>0>>0)){o=0;break}a=a+1|0}else o=0}while(0);a=!(0|o)}else a=0;if(l=0|ye(f+1|0,0,52),o=M()|-15728641&e,PA(e=(l|A)&~(e=0|ye(7,0,0|(s=3*(14-f|0)|0))),f=o&~M(),r,t),o=t+(n<<3)|0,!a)return PA((l=0|ye(1,0,0|s))|e,0|M()|f,r,o),l=o+(n<<3)|0,PA((u=0|ye(2,0,0|s))|e,0|M()|f,r,l),l=l+(n<<3)|0,PA((u=0|ye(3,0,0|s))|e,0|M()|f,r,l),l=l+(n<<3)|0,PA((u=0|ye(4,0,0|s))|e,0|M()|f,r,l),l=l+(n<<3)|0,PA((u=0|ye(5,0,0|s))|e,0|M()|f,r,l),void PA((u=0|ye(6,0,0|s))|e,0|M()|f,r,l+(n<<3)|0);a=o+(n<<3)|0,(0|u)>6&&(De(0|o,0,(l=(a>>>0>(u=o+8|0)>>>0?a:u)+-1+(0-o)|0)+8&-8),o=u+(l>>>3<<3)|0),PA((l=0|ye(2,0,0|s))|e,0|M()|f,r,o),l=o+(n<<3)|0,PA((u=0|ye(3,0,0|s))|e,0|M()|f,r,l),l=l+(n<<3)|0,PA((u=0|ye(4,0,0|s))|e,0|M()|f,r,l),l=l+(n<<3)|0,PA((u=0|ye(5,0,0|s))|e,0|M()|f,r,l),PA((u=0|ye(6,0,0|s))|e,0|M()|f,r,l+(n<<3)|0)}}function UA(A,e){var r=0,t=0,i=0;if(i=0|Qe(0|(A|=0),0|(e|=0),45),M(),!(0|S(127&i)))return 0|(i=0);i=0|Qe(0|A,0|e,52),M(),i&=15;A:do{if(i)for(t=1;;){if(r=0|Qe(0|A,0|e,3*(15-t|0)|0),M(),0|(r&=7))break A;if(!(t>>>0>>0)){r=0;break}t=t+1|0}else r=0}while(0);return 0|(i=1&!(0|r))}function GA(A,e){var r=0,t=0,i=0;if(i=0|Qe(0|(A|=0),0|(e|=0),52),M(),!(i&=15))return 0|(i=0);for(t=1;;){if(r=0|Qe(0|A,0|e,3*(15-t|0)|0),M(),0|(r&=7)){t=5;break}if(!(t>>>0>>0)){r=0,t=5;break}t=t+1|0}return 5==(0|t)?0|r:0}function SA(A,e){var r=0,t=0,i=0,n=0,o=0,a=0,f=0;if(f=0|Qe(0|(A|=0),0|(e|=0),52),M(),!(f&=15))return f=A,k(0|(a=e)),0|f;for(a=1,r=0;;){t=0|ye(7,0,0|(n=3*(15-a|0)|0)),i=0|M(),o=0|Qe(0|A,0|e,0|n),M(),A=(n=0|ye(0|fA(7&o),0,0|n))|A&~t,e=(o=0|M())|e&~i;A:do{if(!r)if(!(n&t|0)&!(o&i|0))r=0;else if(t=0|Qe(0|A,0|e,52),M(),t&=15){r=1;e:for(;;){switch(o=0|Qe(0|A,0|e,3*(15-r|0)|0),M(),7&o){case 1:break e;case 0:break;default:r=1;break A}if(!(r>>>0>>0)){r=1;break A}r=r+1|0}for(r=1;;){if(i=0|Qe(0|A,0|e,0|(o=3*(15-r|0)|0)),M(),n=0|ye(7,0,0|o),e&=~M(),A=A&~n|(o=0|ye(0|fA(7&i),0,0|o)),e=0|e|M(),!(r>>>0>>0)){r=1;break}r=r+1|0}}else r=1}while(0);if(!(a>>>0>>0))break;a=a+1|0}return k(0|e),0|A}function TA(A,e){var r=0,t=0,i=0,n=0,o=0;if(t=0|Qe(0|(A|=0),0|(e|=0),52),M(),!(t&=15))return t=A,k(0|(r=e)),0|t;for(r=1;o=0|Qe(0|A,0|e,0|(n=3*(15-r|0)|0)),M(),i=0|ye(7,0,0|n),e&=~M(),A=(n=0|ye(0|fA(7&o),0,0|n))|A&~i,e=0|M()|e,r>>>0>>0;)r=r+1|0;return k(0|e),0|A}function VA(A,e){var r=0,t=0,i=0,n=0,o=0,a=0,f=0;if(f=0|Qe(0|(A|=0),0|(e|=0),52),M(),!(f&=15))return f=A,k(0|(a=e)),0|f;for(a=1,r=0;;){t=0|ye(7,0,0|(n=3*(15-a|0)|0)),i=0|M(),o=0|Qe(0|A,0|e,0|n),M(),A=(n=0|ye(0|sA(7&o),0,0|n))|A&~t,e=(o=0|M())|e&~i;A:do{if(!r)if(!(n&t|0)&!(o&i|0))r=0;else if(t=0|Qe(0|A,0|e,52),M(),t&=15){r=1;e:for(;;){switch(o=0|Qe(0|A,0|e,3*(15-r|0)|0),M(),7&o){case 1:break e;case 0:break;default:r=1;break A}if(!(r>>>0>>0)){r=1;break A}r=r+1|0}for(r=1;;){if(n=0|ye(7,0,0|(i=3*(15-r|0)|0)),o=e&~M(),e=0|Qe(0|A,0|e,0|i),M(),A=A&~n|(e=0|ye(0|sA(7&e),0,0|i)),e=0|o|M(),!(r>>>0>>0)){r=1;break}r=r+1|0}}else r=1}while(0);if(!(a>>>0>>0))break;a=a+1|0}return k(0|e),0|A}function HA(A,e){var r=0,t=0,i=0,n=0,o=0;if(t=0|Qe(0|(A|=0),0|(e|=0),52),M(),!(t&=15))return t=A,k(0|(r=e)),0|t;for(r=1;n=0|ye(7,0,0|(o=3*(15-r|0)|0)),i=e&~M(),e=0|Qe(0|A,0|e,0|o),M(),A=(e=0|ye(0|sA(7&e),0,0|o))|A&~n,e=0|M()|i,r>>>0>>0;)r=r+1|0;return k(0|e),0|A}function RA(A){return(0|(A|=0))%2|0}function LA(A,e){A|=0;var r,t;return t=I,I=I+16|0,r=t,(e|=0)>>>0<=15&&2146435072&~i[A+4>>2]&&2146435072&~i[A+8+4>>2]?(!function(A,e,r){var t,i;t=I,I=I+16|0,pA(A|=0,e|=0,r|=0,i=t),W(i,r+4|0),I=t}(A,e,r),e=0|function(A,e){A|=0;var r,t=0,n=0,o=0,a=0,f=0,s=0,u=0,l=0;if(r=I,I=I+64|0,s=r+40|0,n=r+24|0,o=r+12|0,a=r,ye(0|(e|=0),0,52),t=134225919|M(),!e)return(0|i[A+4>>2])>2||(0|i[A+8>>2])>2||(0|i[A+12>>2])>2?(s=0,k(0|(f=0)),I=r,0|s):(ye(0|V(A),0,45),f=0|M()|t,s=-1,k(0|f),I=r,0|s);if(i[s>>2]=i[A>>2],i[s+4>>2]=i[A+4>>2],i[s+8>>2]=i[A+8>>2],i[s+12>>2]=i[A+12>>2],f=s+4|0,(0|e)>0)for(A=-1;i[n>>2]=i[f>>2],i[n+4>>2]=i[f+4>>2],i[n+8>>2]=i[f+8>>2],1&e?(eA(f),i[o>>2]=i[f>>2],i[o+4>>2]=i[f+4>>2],i[o+8>>2]=i[f+8>>2],tA(o)):(rA(f),i[o>>2]=i[f>>2],i[o+4>>2]=i[f+4>>2],i[o+8>>2]=i[f+8>>2],iA(o)),q(n,o,a),J(a),u=0|ye(7,0,0|(l=3*(15-e|0)|0)),t&=~M(),A=(l=0|ye(0|AA(a),0,0|l))|A&~u,t=0|M()|t,(0|e)>1;)e=e+-1|0;else A=-1;A:do{if((0|i[f>>2])<=2&&(0|i[s+8>>2])<=2&&(0|i[s+12>>2])<=2){if(e=0|ye(0|(n=0|V(s)),0,45),e|=A,A=M()|-1040385&t,a=0|H(s),!(0|S(n))){if((0|a)<=0)break;for(o=0;;){if(n=0|Qe(0|e,0|A,52),M(),n&=15)for(t=1;s=0|Qe(0|e,0|A,0|(l=3*(15-t|0)|0)),M(),u=0|ye(7,0,0|l),A&=~M(),e=e&~u|(l=0|ye(0|fA(7&s),0,0|l)),A=0|A|M(),t>>>0>>0;)t=t+1|0;if((0|(o=o+1|0))==(0|a))break A}}o=0|Qe(0|e,0|A,52),M(),o&=15;e:do{if(o){t=1;r:for(;;){switch(l=0|Qe(0|e,0|A,3*(15-t|0)|0),M(),7&l){case 1:break r;case 0:break;default:break e}if(!(t>>>0>>0))break e;t=t+1|0}if(0|R(n,0|i[s>>2]))for(t=1;u=0|ye(7,0,0|(s=3*(15-t|0)|0)),l=A&~M(),A=0|Qe(0|e,0|A,0|s),M(),e=e&~u|(A=0|ye(0|sA(7&A),0,0|s)),A=0|l|M(),t>>>0>>0;)t=t+1|0;else for(t=1;s=0|Qe(0|e,0|A,0|(l=3*(15-t|0)|0)),M(),u=0|ye(7,0,0|l),A&=~M(),e=e&~u|(l=0|ye(0|fA(7&s),0,0|l)),A=0|A|M(),t>>>0>>0;)t=t+1|0}}while(0);if((0|a)>0){t=0;do{e=0|SA(e,A),A=0|M(),t=t+1|0}while((0|t)!=(0|a))}}else e=0,A=0}while(0);return l=e,k(0|(u=A)),I=r,0|l}(r,e),A=0|M()):(A=0,e=0),k(0|A),I=t,0|e}function zA(A,e,r){var t,n=0,o=0,a=0;if(t=(r|=0)+4|0,o=0|Qe(0|(A|=0),0|(e|=0),52),M(),o&=15,a=0|Qe(0|A,0|e,45),M(),n=!(0|o),0|S(127&a)){if(n)return 0|(a=1);n=1}else{if(n)return 0|(a=0);n=0|i[t>>2]||0|i[r+8>>2]?1:1&!!(0|i[r+12>>2])}for(r=1;1&r?tA(t):iA(t),a=0|Qe(0|A,0|e,3*(15-r|0)|0),M(),nA(t,7&a),r>>>0>>0;)r=r+1|0;return 0|n}function YA(A,e,r){r|=0;var t,n,o=0,a=0,f=0,s=0,u=0,l=0;n=I,I=I+16|0,t=n,l=0|Qe(0|(A|=0),0|(e|=0),45),M(),l&=127;A:do{if(0|S(l)&&(f=0|Qe(0|A,0|e,52),M(),0|(f&=15))){o=1;e:for(;;){switch(u=0|Qe(0|A,0|e,3*(15-o|0)|0),M(),7&u){case 5:break e;case 0:break;default:o=e;break A}if(!(o>>>0>>0)){o=e;break A}o=o+1|0}for(a=1,o=e;s=0|ye(7,0,0|(e=3*(15-a|0)|0)),u=o&~M(),o=0|Qe(0|A,0|o,0|e),M(),A=A&~s|(o=0|ye(0|sA(7&o),0,0|e)),o=0|u|M(),a>>>0>>0;)a=a+1|0}else o=e}while(0);if(u=7728+(28*l|0)|0,i[r>>2]=i[u>>2],i[r+4>>2]=i[u+4>>2],i[r+8>>2]=i[u+8>>2],i[r+12>>2]=i[u+12>>2],0|zA(A,o,r)){if(s=r+4|0,i[t>>2]=i[s>>2],i[t+4>>2]=i[s+4>>2],i[t+8>>2]=i[s+8>>2],f=0|Qe(0|A,0|o,52),M(),u=15&f,1&f?(iA(s),f=u+1|0):f=u,0|S(l)){A:do{if(u)for(e=1;;){if(a=0|Qe(0|A,0|o,3*(15-e|0)|0),M(),0|(a&=7)){o=a;break A}if(!(e>>>0>>0)){o=0;break}e=e+1|0}else o=0}while(0);o=4==(0|o)&1}else o=0;if(0|kA(r,f,o,0)){if(0|S(l))do{}while(0|kA(r,f,0,0));(0|f)!=(0|u)&&rA(s)}else(0|f)!=(0|u)&&(i[s>>2]=i[t>>2],i[s+4>>2]=i[t+4>>2],i[s+8>>2]=i[t+8>>2]);I=n}else I=n}function OA(A,e,r){r|=0;var t,i;t=I,I=I+16|0,YA(A|=0,e|=0,i=t),e=0|Qe(0|A,0|e,52),M(),bA(i,15&e,r),I=t}function jA(A,e,r){r|=0;var t,i,n=0,o=0;i=I,I=I+16|0,YA(A|=0,e|=0,t=i),n=0|Qe(0|A,0|e,45),M(),n=!(0|S(127&n)),o=0|Qe(0|A,0|e,52),M(),o&=15;A:do{if(!n){if(0|o)for(n=1;;){if(!(!((0|ye(7,0,3*(15-n|0)|0))&A|0)&!((0|M())&e)))break A;if(!(n>>>0>>0))break;n=n+1|0}return mA(t,o,0,5,r),void(I=i)}}while(0);QA(t,o,0,6,r),I=i}function NA(A,e){e|=0;var r,t=0,n=0,o=0,a=0,f=0,s=0;if(ye(0|(A|=0),0,52),r=134225919|M(),(0|A)<1){n=0,t=0;do{0|S(n)&&(ye(0|n,0,45),f=0|r|M(),i[(A=e+(t<<3)|0)>>2]=-1,i[A+4>>2]=f,t=t+1|0),n=n+1|0}while(122!=(0|n))}else{f=0,t=0;do{if(0|S(f)){for(ye(0|f,0,45),n=1,o=-1,a=0|r|M();o&=~(s=0|ye(7,0,3*(15-n|0)|0)),a&=~M(),(0|n)!=(0|A);)n=n+1|0;i[(s=e+(t<<3)|0)>>2]=o,i[s+4>>2]=a,t=t+1|0}f=f+1|0}while(122!=(0|f))}}function ZA(A,e,r,t){var n,o=0,a=0,f=0,s=0,u=0;if(n=I,I=I+64|0,f=n,(0|(A|=0))==(0|(r|=0))&(0|(e|=0))==(0|(t|=0))|!1|134217728!=(2013265920&e)|!1|134217728!=(2013265920&t))return I=n,0|(f=0);if(o=0|Qe(0|A,0|e,52),M(),o&=15,a=0|Qe(0|r,0|t,52),M(),(0|o)!=(15&a))return I=n,0|(f=0);if(a=o+-1|0,o>>>0>1&&(u=0|CA(A,e,a),s=0|M(),(0|u)==(0|(a=0|CA(r,t,a)))&(0|s)==(0|M()))){if(o=0|Qe(0|A,0|e,0|(a=3*(15^o)|0)),M(),o&=7,a=0|Qe(0|r,0|t,0|a),M(),!(0|o)|!(0|(a&=7)))return I=n,0|(u=1);if((0|i[21136+(o<<2)>>2])==(0|a))return I=n,0|(u=1);if((0|i[21168+(o<<2)>>2])==(0|a))return I=n,0|(u=1)}a=(o=f)+56|0;do{i[o>>2]=0,o=o+4|0}while((0|o)<(0|a));return F(A,e,1,f),o=(0|i[(u=f)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)||(0|i[(u=f+8|0)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)||(0|i[(u=f+16|0)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)||(0|i[(u=f+24|0)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)||(0|i[(u=f+32|0)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)||(0|i[(u=f+40|0)>>2])==(0|r)&&(0|i[u+4>>2])==(0|t)?1:1&((0|i[(o=f+48|0)>>2])==(0|r)?(0|i[o+4>>2])==(0|t):0),I=n,0|(u=o)}function WA(A,e,r){r|=0;var t,n,o,a,f=0;if(o=I,I=I+16|0,n=o,f=0|Qe(0|(A|=0),0|(e|=0),56),M(),e=0|function(A,e,r){A|=0,e|=0,r|=0;var t=0,n=0;if(t=0|UA(A,e),(r+-1|0)>>>0>5)return 0|(r=-1);if(n=!!(0|t),1==(0|r)&n)return 0|(r=-1);return t=0|function(A,e){A|=0,e|=0;var r=0,t=0,n=0,o=0,a=0,f=0,s=0,u=0;if(u=I,I=I+32|0,n=u+16|0,o=u,YA(A,e,n),a=0|IA(A,e),s=0|GA(A,e),function(A,e){A=7728+(28*(A|=0)|0)|0,i[(e|=0)>>2]=i[A>>2],i[e+4>>2]=i[A+4>>2],i[e+8>>2]=i[A+8>>2],i[e+12>>2]=i[A+12>>2]}(a,o),e=0|function(A,e){A|=0;var r=0,t=0;if((e|=0)>>>0>20)return-1;do{if((0|i[11152+(216*e|0)>>2])!=(0|A))if((0|i[11152+(216*e|0)+8>>2])!=(0|A))if((0|i[11152+(216*e|0)+16>>2])!=(0|A))if((0|i[11152+(216*e|0)+24>>2])!=(0|A))if((0|i[11152+(216*e|0)+32>>2])!=(0|A))if((0|i[11152+(216*e|0)+40>>2])!=(0|A))if((0|i[11152+(216*e|0)+48>>2])!=(0|A))if((0|i[11152+(216*e|0)+56>>2])!=(0|A))if((0|i[11152+(216*e|0)+64>>2])!=(0|A))if((0|i[11152+(216*e|0)+72>>2])!=(0|A))if((0|i[11152+(216*e|0)+80>>2])!=(0|A))if((0|i[11152+(216*e|0)+88>>2])!=(0|A))if((0|i[11152+(216*e|0)+96>>2])!=(0|A))if((0|i[11152+(216*e|0)+104>>2])!=(0|A))if((0|i[11152+(216*e|0)+112>>2])!=(0|A))if((0|i[11152+(216*e|0)+120>>2])!=(0|A))if((0|i[11152+(216*e|0)+128>>2])!=(0|A)){if((0|i[11152+(216*e|0)+136>>2])!=(0|A)){if((0|i[11152+(216*e|0)+144>>2])==(0|A)){A=0,r=2,t=0;break}if((0|i[11152+(216*e|0)+152>>2])==(0|A)){A=0,r=2,t=1;break}if((0|i[11152+(216*e|0)+160>>2])==(0|A)){A=0,r=2,t=2;break}if((0|i[11152+(216*e|0)+168>>2])==(0|A)){A=1,r=2,t=0;break}if((0|i[11152+(216*e|0)+176>>2])==(0|A)){A=1,r=2,t=1;break}if((0|i[11152+(216*e|0)+184>>2])==(0|A)){A=1,r=2,t=2;break}if((0|i[11152+(216*e|0)+192>>2])==(0|A)){A=2,r=2,t=0;break}if((0|i[11152+(216*e|0)+200>>2])==(0|A)){A=2,r=2,t=1;break}if((0|i[11152+(216*e|0)+208>>2])==(0|A)){A=2,r=2,t=2;break}return-1}A=2,r=1,t=2}else A=2,r=1,t=1;else A=2,r=1,t=0;else A=1,r=1,t=2;else A=1,r=1,t=1;else A=1,r=1,t=0;else A=0,r=1,t=2;else A=0,r=1,t=1;else A=0,r=1,t=0;else A=2,r=0,t=2;else A=2,r=0,t=1;else A=2,r=0,t=0;else A=1,r=0,t=2;else A=1,r=0,t=1;else A=1,r=0,t=0;else A=0,r=0,t=2;else A=0,r=0,t=1;else A=0,r=0,t=0}while(0);return 0|i[11152+(216*e|0)+(72*r|0)+(24*A|0)+(t<<3)+4>>2]}(a,0|i[n>>2]),!(0|S(a)))return I=u,0|(s=e);switch(0|a){case 4:A=0,r=14;break;case 14:A=1,r=14;break;case 24:A=2,r=14;break;case 38:A=3,r=14;break;case 49:A=4,r=14;break;case 58:A=5,r=14;break;case 63:A=6,r=14;break;case 72:A=7,r=14;break;case 83:A=8,r=14;break;case 97:A=9,r=14;break;case 107:A=10,r=14;break;case 117:A=11,r=14;break;default:f=0,t=0}14==(0|r)&&(f=0|i[22096+(24*A|0)+8>>2],t=0|i[22096+(24*A|0)+16>>2]);A=0|i[n>>2],(0|A)!=(0|i[o>>2])&&(a=0|T(a))|(0|(A=0|i[n>>2]))==(0|t)&&(e=(e+1|0)%6|0);if(3==(0|s)&(0|A)==(0|t))return I=u,0|(s=(e+5|0)%6|0);if(!(5==(0|s)&(0|A)==(0|f)))return I=u,0|(s=e);return s=(e+1|0)%6|0,I=u,0|s}(A,e),n?0|(r=(5-t+(0|i[22384+(r<<2)>>2])|0)%5|0):0|(r=(6-t+(0|i[22416+(r<<2)>>2])|0)%6|0)}(t=(a=!0&268435456==(2013265920&e))?A:0,A=a?-2130706433&e|134217728:0,7&f),-1==(0|e))return i[r>>2]=0,void(I=o);YA(t,A,n),f=0|Qe(0|t,0|A,52),M(),f&=15,0|UA(t,A)?mA(n,f,e,2,r):QA(n,f,e,2,r),I=o}function JA(A){A|=0;var e,r,t=0;return(e=0|be(1,12))||Q(22691,22646,49,22704),0|(t=0|i[(r=A+4|0)>>2])?(i[(t=t+8|0)>>2]=e,i[r>>2]=e,0|e):(0|i[A>>2]&&Q(22721,22646,61,22744),i[(t=A)>>2]=e,i[r>>2]=e,0|e)}function KA(A,e){A|=0,e|=0;var r,t;return(t=0|pe(24))||Q(22758,22646,78,22772),i[t>>2]=i[e>>2],i[t+4>>2]=i[e+4>>2],i[t+8>>2]=i[e+8>>2],i[t+12>>2]=i[e+12>>2],i[t+16>>2]=0,0|(r=0|i[(e=A+4|0)>>2])?(i[r+16>>2]=t,i[e>>2]=t,0|t):(0|i[A>>2]&&Q(22787,22646,82,22772),i[A>>2]=t,i[e>>2]=t,0|t)}function XA(A){var e,r,t=0,o=0,a=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,m=0,v=0,k=0,M=0,y=0,E=0,x=0,_=0,D=0,I=0,F=0,C=0,P=0,U=0,G=0,S=0;if(0|i[(s=(A|=0)+8|0)>>2])return 0|(S=1);if(!(a=0|i[A>>2]))return 0|(S=0);t=a,o=0;do{o=o+1|0,t=0|i[t+8>>2]}while(0|t);if(o>>>0<2)return 0|(S=0);(r=0|pe(o<<2))||Q(22807,22646,317,22826),(e=0|pe(o<<5))||Q(22848,22646,321,22826),i[A>>2]=0,i[(_=A+4|0)>>2]=0,i[s>>2]=0,o=0,U=0,x=0,w=0;A:for(;;){if(g=0|i[a>>2]){u=0,l=g;do{if(c=+n[l+8>>3],t=l,l=0|i[l+16>>2],h=+n[(s=(d=!(0|l))?g:l)+8>>3],+f(+(c-h))>3.141592653589793){S=14;break}u+=(h-c)*(+n[t>>3]+ +n[s>>3])}while(!d);if(14==(0|S)){S=0,u=0,t=g;do{E=+n[t+8>>3],C=0|i[(P=t+16|0)>>2],y=+n[(C=0|C?C:g)+8>>3],u+=(+n[t>>3]+ +n[C>>3])*((y<0?y+6.283185307179586:y)-(E<0?E+6.283185307179586:E)),t=0|i[(0|t?P:a)>>2]}while(0|t)}u>0?(i[r+(U<<2)>>2]=a,U=U+1|0,s=x,t=w):S=19}else S=19;if(19==(0|S)){S=0;do{if(!o){if(w){s=_,l=w+8|0,t=a,o=A;break}if(0|i[A>>2]){S=27;break A}s=_,l=A,t=a,o=A;break}if(0|i[(t=o+8|0)>>2]){S=21;break A}if(!(o=0|be(1,12))){S=23;break A}i[t>>2]=o,s=o+4|0,l=o,t=w}while(0);if(i[l>>2]=a,i[s>>2]=a,l=e+(x<<5)|0,d=0|i[a>>2]){for(n[(g=e+(x<<5)+8|0)>>3]=17976931348623157e292,n[(w=e+(x<<5)+24|0)>>3]=17976931348623157e292,n[l>>3]=-17976931348623157e292,n[(p=e+(x<<5)+16|0)>>3]=-17976931348623157e292,k=17976931348623157e292,M=-17976931348623157e292,s=0,B=d,c=17976931348623157e292,m=17976931348623157e292,v=-17976931348623157e292,h=-17976931348623157e292;u=+n[B>>3],E=+n[B+8>>3],B=0|i[B+16>>2],y=+n[((b=!(0|B))?d:B)+8>>3],u>3]=u,c=u),E>3]=E,m=E),u>v?n[l>>3]=u:u=v,E>h&&(n[p>>3]=E,h=E),k=E>0&EM?E:M,s|=+f(+(E-y))>3.141592653589793,!b;)v=u;s&&(n[p>>3]=M,n[w>>3]=k)}else i[l>>2]=0,i[l+4>>2]=0,i[l+8>>2]=0,i[l+12>>2]=0,i[l+16>>2]=0,i[l+20>>2]=0,i[l+24>>2]=0,i[l+28>>2]=0;s=x+1|0}if(a=0|i[(P=a+8|0)>>2],i[P>>2]=0,!a){S=45;break}x=s,w=t}if(21==(0|S))Q(22624,22646,35,22658);else if(23==(0|S))Q(22678,22646,37,22658);else if(27==(0|S))Q(22721,22646,61,22744);else if(45==(0|S)){A:do{if((0|U)>0){for(P=!(0|s),F=s<<2,C=!(0|A),I=0,t=0;;){if(D=0|i[r+(I<<2)>>2],P)S=73;else{if(!(x=0|pe(F))){S=50;break}if(!(_=0|pe(F))){S=52;break}e:do{if(C)o=0;else{for(s=0,o=0,l=A;a=e+(s<<5)|0,0|qA(0|i[l>>2],a,0|i[D>>2])?(i[x+(o<<2)>>2]=l,i[_+(o<<2)>>2]=a,b=o+1|0):b=o,l=0|i[l+8>>2];)s=s+1|0,o=b;if((0|b)>0)if(a=0|i[x>>2],1==(0|b))o=a;else for(p=0,B=-1,o=a,w=a;;){for(d=0|i[w>>2],a=0,l=0;g=(0|(s=0|i[i[x+(l<<2)>>2]>>2]))==(0|d)?a:a+(1&qA(s,0|i[_+(l<<2)>>2],0|i[d>>2]))|0,(0|(l=l+1|0))!=(0|b);)a=g;if(o=(s=(0|g)>(0|B))?w:o,(0|(a=p+1|0))==(0|b))break e;p=a,B=s?g:B,w=0|i[x+(a<<2)>>2]}else o=0}}while(0);if(Be(x),Be(_),o){if(a=0|i[(s=o+4|0)>>2])o=a+8|0;else if(0|i[o>>2]){S=70;break}i[o>>2]=D,i[s>>2]=D}else S=73}if(73==(0|S)){if(S=0,0|(t=0|i[D>>2]))do{_=t,t=0|i[t+16>>2],Be(_)}while(0|t);Be(D),t=2}if((0|(I=I+1|0))>=(0|U)){G=t;break A}}50==(0|S)?Q(22863,22646,249,22882):52==(0|S)?Q(22901,22646,252,22882):70==(0|S)&&Q(22721,22646,61,22744)}else G=0}while(0);return Be(r),Be(e),0|(S=G)}return 0}function qA(A,e,r){A|=0;var t,o=0,a=0,f=0,s=0,u=0,l=0,h=0;if(!(0|O(e|=0,r|=0)))return 0|(A=0);if(e=0|Y(e),t=+n[r>>3],o=e&(o=+n[r+8>>3])<0?o+6.283185307179586:o,!(A=0|i[A>>2]))return 0|(A=0);if(e){e=0,r=A;A:for(;;){for(;s=+n[r>>3],l=+n[r+8>>3],h=0|i[(r=r+16|0)>>2],f=+n[(h=0|h?h:A)>>3],a=+n[h+8>>3],s>f?(u=s,s=l):(u=f,f=s,s=a,a=l),tu;)if(!(r=0|i[r>>2])){r=22;break A}if(o=(s=s<0?s+6.283185307179586:s)==o|(l=a<0?a+6.283185307179586:a)==o?o+-2220446049250313e-31:o,((l+=(t-f)/(u-f)*(s-l))<0?l+6.283185307179586:l)>o&&(e^=1),!(r=0|i[r>>2])){r=22;break}}if(22==(0|r))return 0|e}else{e=0,r=A;A:for(;;){for(;s=+n[r>>3],l=+n[r+8>>3],h=0|i[(r=r+16|0)>>2],f=+n[(h=0|h?h:A)>>3],a=+n[h+8>>3],s>f?(u=s,s=l):(u=f,f=s,s=a,a=l),tu;)if(!(r=0|i[r>>2])){r=22;break A}if(a+(t-f)/(u-f)*(s-a)>(o=s==o|a==o?o+-2220446049250313e-31:o)&&(e^=1),!(r=0|i[r>>2])){r=22;break}}if(22==(0|r))return 0|e}return 0}function $A(A,e,r,n,o){r|=0,n|=0,o|=0;var a,f,s,u,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,m=0;if(u=I,I=I+32|0,m=u+16|0,s=u,l=0|Qe(0|(A|=0),0|(e|=0),52),M(),l&=15,p=0|Qe(0|r,0|n,52),M(),(0|l)!=(15&p))return I=u,0|(m=1);if(g=0|Qe(0|A,0|e,45),M(),g&=127,w=0|Qe(0|r,0|n,45),M(),p=(0|g)!=(0|(w&=127))){if(7==(0|(c=0|z(g,w))))return I=u,0|(m=2);7==(0|(d=0|z(w,g)))?Q(22925,22949,151,22959):(B=c,h=d)}else B=0,h=0;a=0|S(g),f=0|S(w),i[m>>2]=0,i[m+4>>2]=0,i[m+8>>2]=0,i[m+12>>2]=0;do{if(B){if(c=(0|(w=0|i[4304+(28*g|0)+(B<<2)>>2]))>0,f)if(c){g=0,d=r,c=n;do{d=0|VA(d,c),c=0|M(),1==(0|(h=0|sA(h)))&&(h=0|sA(1)),g=g+1|0}while((0|g)!=(0|w));w=h,g=d,d=c}else w=h,g=r,d=n;else if(c){g=0,d=r,c=n;do{d=0|HA(d,c),c=0|M(),h=0|sA(h),g=g+1|0}while((0|g)!=(0|w));w=h,g=d,d=c}else w=h,g=r,d=n;if(zA(g,d,m),p||Q(22972,22949,181,22959),(c=!!(0|a))&(h=!!(0|f))&&Q(22999,22949,182,22959),c){if(h=0|GA(A,e),0|t[22032+(7*h|0)+B|0]){l=3;break}g=d=0|i[21200+(28*h|0)+(B<<2)>>2],b=26}else if(h){if(h=0|GA(g,d),0|t[22032+(7*h|0)+w|0]){l=4;break}g=0,d=0|i[21200+(28*w|0)+(h<<2)>>2],b=26}else h=0;if(26==(0|b))if((0|d)<=-1&&Q(23030,22949,212,22959),(0|g)<=-1&&Q(23053,22949,213,22959),(0|d)>0){c=m+4|0,h=0;do{aA(c),h=h+1|0}while((0|h)!=(0|d));h=g}else h=g;if(i[s>>2]=0,i[s+4>>2]=0,i[s+8>>2]=0,nA(s,B),0|l)for(;0|RA(l)?tA(s):iA(s),(0|l)>1;)l=l+-1|0;if((0|h)>0){l=0;do{aA(s),l=l+1|0}while((0|l)!=(0|h))}X(b=m+4|0,s,b),J(b),b=50}else if(zA(r,n,m),!!(0|a)&!!(0|f))if((0|w)!=(0|g)&&Q(23077,22949,243,22959),h=0|GA(A,e),l=0|GA(r,n),0|t[22032+(7*h|0)+l|0])l=5;else if((0|(h=0|i[21200+(28*h|0)+(l<<2)>>2]))>0){c=m+4|0,l=0;do{aA(c),l=l+1|0}while((0|l)!=(0|h));b=50}else b=50;else b=50}while(0);return 50==(0|b)&&(l=m+4|0,i[o>>2]=i[l>>2],i[o+4>>2]=i[l+4>>2],i[o+8>>2]=i[l+8>>2],l=0),I=u,0|(m=l)}function Ae(A,e,r,t){r|=0,t|=0;var n,o,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0;if(o=I,I=I+48|0,s=o+36|0,u=o+24|0,l=o+12|0,h=o,f=0|Qe(0|(A|=0),0|(e|=0),52),M(),f&=15,d=0|Qe(0|A,0|e,45),M(),n=0|S(d&=127),ye(0|f,0,52),p=134225919|M(),i[(w=t)>>2]=-1,i[w+4>>2]=p,!f)return(0|i[r>>2])>1||(0|i[r+4>>2])>1||(0|i[r+8>>2])>1||127==(0|(a=0|L(d,0|AA(r))))?(I=o,0|(p=1)):(g=0|ye(0|a,0,45),w=0|M(),w=-1040385&i[(d=t)+4>>2]|w,i[(p=t)>>2]=i[d>>2]|g,i[p+4>>2]=w,I=o,0|(p=0));for(i[s>>2]=i[r>>2],i[s+4>>2]=i[r+4>>2],i[s+8>>2]=i[r+8>>2];i[u>>2]=i[s>>2],i[u+4>>2]=i[s+4>>2],i[u+8>>2]=i[s+8>>2],0|RA(f)?(eA(s),i[l>>2]=i[s>>2],i[l+4>>2]=i[s+4>>2],i[l+8>>2]=i[s+8>>2],tA(l)):(rA(s),i[l>>2]=i[s>>2],i[l+4>>2]=i[s+4>>2],i[l+8>>2]=i[s+8>>2],iA(l)),q(u,l,h),J(h),B=0|i[(w=t)>>2],w=0|i[w+4>>2],r=0|ye(7,0,0|(b=3*(15-f|0)|0)),w&=~M(),b=0|ye(0|AA(h),0,0|b),w=0|M()|w,i[(p=t)>>2]=b|B&~r,i[p+4>>2]=w,(0|f)>1;)f=f+-1|0;A:do{if((0|i[s>>2])<=1&&(0|i[s+4>>2])<=1&&(0|i[s+8>>2])<=1){h=127==(0|(u=0|L(d,f=0|AA(s))))?0:0|S(u);e:do{if(f){if(n){if(s=21408+(28*(0|GA(A,e))|0)+(f<<2)|0,(0|(s=0|i[s>>2]))>0){r=0;do{f=0|fA(f),r=r+1|0}while((0|r)!=(0|s))}if(1==(0|f)){a=3;break A}127==(0|(r=0|L(d,f)))&&Q(23104,22949,376,23134),0|S(r)?Q(23147,22949,377,23134):(g=s,c=f,a=r)}else g=0,c=f,a=u;if((0|(l=0|i[4304+(28*d|0)+(c<<2)>>2]))<=-1&&Q(23178,22949,384,23134),!h){if((0|g)<=-1&&Q(23030,22949,417,23134),0|g){f=0,r=0|i[(s=t)>>2],s=0|i[s+4>>2];do{r=0|TA(r,s),s=0|M(),i[(b=t)>>2]=r,i[b+4>>2]=s,f=f+1|0}while((0|f)<(0|g))}if((0|l)<=0){f=54;break}for(f=0,r=0|i[(s=t)>>2],s=0|i[s+4>>2];;)if(r=0|TA(r,s),s=0|M(),i[(b=t)>>2]=r,i[b+4>>2]=s,(0|(f=f+1|0))==(0|l)){f=54;break e}}if(7==(0|(u=0|z(a,d)))&&Q(22925,22949,393,23134),r=0|i[(f=t)>>2],f=0|i[f+4>>2],(0|l)>0){s=0;do{r=0|TA(r,f),f=0|M(),i[(b=t)>>2]=r,i[b+4>>2]=f,s=s+1|0}while((0|s)!=(0|l))}if(r=0|GA(r,f),b=0|T(a),(0|(r=0|i[(b?21824:21616)+(28*u|0)+(r<<2)>>2]))<=-1&&Q(23030,22949,412,23134),r){f=0,s=0|i[(u=t)>>2],u=0|i[u+4>>2];do{s=0|SA(s,u),u=0|M(),i[(b=t)>>2]=s,i[b+4>>2]=u,f=f+1|0}while((0|f)<(0|r));f=54}else f=54}else if(!!(0|n)&!!(0|h))if(f=21408+(28*(b=0|GA(A,e))|0)+(GA(0|i[(f=t)>>2],0|i[f+4>>2])<<2)|0,(0|(f=0|i[f>>2]))<=-1&&Q(23201,22949,433,23134),f){a=0,r=0|i[(s=t)>>2],s=0|i[s+4>>2];do{r=0|TA(r,s),s=0|M(),i[(b=t)>>2]=r,i[b+4>>2]=s,a=a+1|0}while((0|a)<(0|f));a=u,f=54}else a=u,f=55;else a=u,f=54}while(0);if(54==(0|f)&&h&&(f=55),55==(0|f)&&1==(0|GA(0|i[(b=t)>>2],0|i[b+4>>2]))){a=4;break}p=0|i[(b=t)>>2],b=-1040385&i[b+4>>2],B=0|ye(0|a,0,45),b=0|b|M(),i[(a=t)>>2]=p|B,i[a+4>>2]=b,a=0}else a=2}while(0);return I=o,0|(b=a)}function ee(A,e){var r=0;if(!(e|=0))return 0|(r=1);r=A|=0,A=1;do{A=0|b(1&e?r:1,A),e>>=1,r=0|b(r,r)}while(0|e);return 0|A}function re(A,e,r){A|=0;var t,o,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0;if(!(0|O(e|=0,r|=0)))return 0|(d=0);if(e=0|Y(e),o=+n[r>>3],a=e&(a=+n[r+8>>3])<0?a+6.283185307179586:a,(0|(d=0|i[A>>2]))<=0)return 0|(d=0);if(t=0|i[A+4>>2],e){e=0,r=-1,A=0;A:for(;;){for(c=A;u=+n[t+(c<<4)>>3],h=+n[t+(c<<4)+8>>3],s=+n[t+((A=(r+2|0)%(0|d)|0)<<4)>>3],f=+n[t+(A<<4)+8>>3],u>s?(l=u,u=h):(l=s,s=u,u=f,f=h),ol;){if(!((0|(r=c+1|0))<(0|d))){r=22;break A}A=c,c=r,r=A}if(a=(u=u<0?u+6.283185307179586:u)==a|(h=f<0?f+6.283185307179586:f)==a?a+-2220446049250313e-31:a,((h+=(o-s)/(l-s)*(u-h))<0?h+6.283185307179586:h)>a&&(e^=1),(0|(A=c+1|0))>=(0|d)){r=22;break}r=c}if(22==(0|r))return 0|e}else{e=0,r=-1,A=0;A:for(;;){for(c=A;u=+n[t+(c<<4)>>3],h=+n[t+(c<<4)+8>>3],s=+n[t+((A=(r+2|0)%(0|d)|0)<<4)>>3],f=+n[t+(A<<4)+8>>3],u>s?(l=u,u=h):(l=s,s=u,u=f,f=h),ol;){if(!((0|(r=c+1|0))<(0|d))){r=22;break A}A=c,c=r,r=A}if(f+(o-s)/(l-s)*(u-f)>(a=u==a|f==a?a+-2220446049250313e-31:a)&&(e^=1),(0|(A=c+1|0))>=(0|d)){r=22;break}r=c}if(22==(0|r))return 0|e}return 0}function te(A,e){e|=0;var r,t,o,a,s,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,m=0,v=0;if(!(t=0|i[(A|=0)>>2]))return i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,i[e+12>>2]=0,i[e+16>>2]=0,i[e+20>>2]=0,i[e+24>>2]=0,void(i[e+28>>2]=0);if(n[(o=e+8|0)>>3]=17976931348623157e292,n[(a=e+24|0)>>3]=17976931348623157e292,n[e>>3]=-17976931348623157e292,n[(s=e+16|0)>>3]=-17976931348623157e292,!((0|t)<=0)){for(r=0|i[A+4>>2],p=17976931348623157e292,B=-17976931348623157e292,b=0,A=-1,c=17976931348623157e292,d=17976931348623157e292,w=-17976931348623157e292,l=-17976931348623157e292,m=0;u=+n[r+(m<<4)>>3],g=+n[r+(m<<4)+8>>3],h=+n[r+(((0|(A=A+2|0))==(0|t)?0:A)<<4)+8>>3],u>3]=u,c=u),g>3]=g,d=g),u>w?n[e>>3]=u:u=w,g>l&&(n[s>>3]=g,l=g),p=g>0&gB?g:B,b|=+f(+(g-h))>3.141592653589793,(0|(A=m+1|0))!=(0|t);)v=m,w=u,m=A,A=v;b&&(n[s>>3]=B,n[a>>3]=p)}}function ie(A,e){e|=0;var r,t=0,o=0,a=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,m=0,v=0,k=0,M=0,Q=0,y=0,E=0;if(B=0|i[(A|=0)>>2]){if(n[(b=e+8|0)>>3]=17976931348623157e292,n[(m=e+24|0)>>3]=17976931348623157e292,n[e>>3]=-17976931348623157e292,n[(v=e+16|0)>>3]=-17976931348623157e292,(0|B)>0){for(a=0|i[A+4>>2],w=17976931348623157e292,p=-17976931348623157e292,o=0,t=-1,h=17976931348623157e292,c=17976931348623157e292,g=-17976931348623157e292,u=-17976931348623157e292,k=0;s=+n[a+(k<<4)>>3],d=+n[a+(k<<4)+8>>3],l=+n[a+(((0|(y=t+2|0))==(0|B)?0:y)<<4)+8>>3],s>3]=s,h=s),d>3]=d,c=d),s>g?n[e>>3]=s:s=g,d>u&&(n[v>>3]=d,u=d),w=d>0&dp?d:p,o|=+f(+(d-l))>3.141592653589793,(0|(t=k+1|0))!=(0|B);)y=k,g=s,k=t,t=y;o&&(n[v>>3]=p,n[m>>3]=w)}}else i[e>>2]=0,i[e+4>>2]=0,i[e+8>>2]=0,i[e+12>>2]=0,i[e+16>>2]=0,i[e+20>>2]=0,i[e+24>>2]=0,i[e+28>>2]=0;if(!((0|(t=0|i[(y=A+8|0)>>2]))<=0)){r=A+12|0,Q=0;do{if(a=0|i[r>>2],o=Q,m=e+((Q=Q+1|0)<<5)|0,v=0|i[a+(o<<3)>>2]){if(n[(k=e+(Q<<5)+8|0)>>3]=17976931348623157e292,n[(A=e+(Q<<5)+24|0)>>3]=17976931348623157e292,n[m>>3]=-17976931348623157e292,n[(M=e+(Q<<5)+16|0)>>3]=-17976931348623157e292,(0|v)>0){for(B=0|i[a+(o<<3)+4>>2],w=17976931348623157e292,p=-17976931348623157e292,a=0,o=-1,b=0,h=17976931348623157e292,c=17976931348623157e292,d=-17976931348623157e292,u=-17976931348623157e292;s=+n[B+(b<<4)>>3],g=+n[B+(b<<4)+8>>3],l=+n[B+(((0|(o=o+2|0))==(0|v)?0:o)<<4)+8>>3],s>3]=s,h=s),g>3]=g,c=g),s>d?n[m>>3]=s:s=d,g>u&&(n[M>>3]=g,u=g),w=g>0&gp?g:p,a|=+f(+(g-l))>3.141592653589793,(0|(o=b+1|0))!=(0|v);)E=b,b=o,d=s,o=E;a&&(n[M>>3]=p,n[A>>3]=w)}}else i[m>>2]=0,i[m+4>>2]=0,i[m+8>>2]=0,i[m+12>>2]=0,i[m+16>>2]=0,i[m+20>>2]=0,i[m+24>>2]=0,i[m+28>>2]=0,t=0|i[y>>2]}while((0|Q)<(0|t))}}function ne(A,e,r){var t=0,n=0,o=0;if(!(0|re(A|=0,e|=0,r|=0)))return 0|(n=0);if((0|i[(n=A+8|0)>>2])<=0)return 0|(n=1);for(t=A+12|0,A=0;;){if(o=A,A=A+1|0,0|re((0|i[t>>2])+(o<<3)|0,e+(A<<5)|0,r)){A=0,t=6;break}if((0|A)>=(0|i[n>>2])){A=1,t=6;break}}return 6==(0|t)?0|A:0}function oe(A,e,r,t,i){e|=0,r|=0,t|=0,i|=0;var o,a,f,s,u,l,h,c=0;s=+n[(A|=0)>>3],f=+n[e>>3]-s,a=+n[A+8>>3],o=+n[e+8>>3]-a,l=+n[r>>3],c=((c=+n[t>>3]-l)*(a-(h=+n[r+8>>3]))-(s-l)*(u=+n[t+8>>3]-h))/(f*u-o*c),n[i>>3]=s+f*c,n[i+8>>3]=a+o*c}function ae(A,e){return e|=0,+n[(A|=0)>>3]!=+n[e>>3]?0|(e=0):0|(e=+n[A+8>>3]==+n[e+8>>3])}function fe(A,e){e|=0;var r,t,i;return+((i=+n[(A|=0)>>3]-+n[e>>3])*i+(t=+n[A+8>>3]-+n[e+8>>3])*t+(r=+n[A+16>>3]-+n[e+16>>3])*r)}function se(A,e,r){A|=0,r|=0;var t=0;(0|(e|=0))>0?(t=0|be(e,4),i[A>>2]=t,t||Q(23230,23253,40,23267)):i[A>>2]=0,i[A+4>>2]=e,i[A+8>>2]=0,i[A+12>>2]=r}function ue(A){var e,r,t,o=0,a=0,s=0,l=0;e=(A|=0)+4|0,r=A+12|0,t=A+8|0;A:for(;;){for(a=0|i[e>>2],o=0;;){if((0|o)>=(0|a))break A;if(s=0|i[A>>2],l=0|i[s+(o<<2)>>2])break;o=o+1|0}o=s+(~~(+f(+ +u(10,+ +(15-(0|i[r>>2])|0))*(+n[l>>3]+ +n[l+8>>3]))%+(0|a))>>>0<<2)|0,a=0|i[o>>2];e:do{if(0|a){if(s=l+32|0,(0|a)==(0|l))i[o>>2]=i[s>>2];else{if(!(o=0|i[(a=a+32|0)>>2]))break;for(;(0|o)!=(0|l);)if(!(o=0|i[(a=o+32|0)>>2]))break e;i[a>>2]=i[s>>2]}Be(l),i[t>>2]=(0|i[t>>2])-1}}while(0)}Be(0|i[A>>2])}function le(A){var e,r=0,t=0;for(e=0|i[(A|=0)+4>>2],t=0;;){if((0|t)>=(0|e)){r=0,t=4;break}if(r=0|i[(0|i[A>>2])+(t<<2)>>2]){t=4;break}t=t+1|0}return 4==(0|t)?0|r:0}function he(A,e){e|=0;var r=0,t=0,o=0,a=0;if(r=~~(+f(+ +u(10,+ +(15-(0|i[(A|=0)+12>>2])|0))*(+n[e>>3]+ +n[e+8>>3]))%+(0|i[A+4>>2]))>>>0,r=(0|i[A>>2])+(r<<2)|0,!(t=0|i[r>>2]))return 0|(a=1);a=e+32|0;do{if((0|t)!=(0|e)){if(!(r=0|i[t+32>>2]))return 0|(a=1);for(o=r;;){if((0|o)==(0|e)){o=8;break}if(!(r=0|i[o+32>>2])){r=1,o=10;break}t=o,o=r}if(8==(0|o)){i[t+32>>2]=i[a>>2];break}if(10==(0|o))return 0|r}else i[r>>2]=i[a>>2]}while(0);return Be(e),i[(a=A+8|0)>>2]=(0|i[a>>2])-1,0|(a=0)}function ce(A,e,r){A|=0,e|=0,r|=0;var t,o=0,a=0,s=0;(t=0|pe(40))||Q(23283,23253,98,23296),i[t>>2]=i[e>>2],i[t+4>>2]=i[e+4>>2],i[t+8>>2]=i[e+8>>2],i[t+12>>2]=i[e+12>>2],i[(a=t+16|0)>>2]=i[r>>2],i[a+4>>2]=i[r+4>>2],i[a+8>>2]=i[r+8>>2],i[a+12>>2]=i[r+12>>2],i[t+32>>2]=0,a=~~(+f(+ +u(10,+ +(15-(0|i[A+12>>2])|0))*(+n[e>>3]+ +n[e+8>>3]))%+(0|i[A+4>>2]))>>>0,a=(0|i[A>>2])+(a<<2)|0,o=0|i[a>>2];do{if(o){for(;!(0|xA(o,e)&&0|xA(o+16|0,r));)if(a=0|i[o+32>>2],!(0|i[(o=0|a?a:o)+32>>2])){s=10;break}if(10==(0|s)){i[o+32>>2]=t;break}return Be(t),0|(s=o)}i[a>>2]=t}while(0);return i[(s=A+8|0)>>2]=1+(0|i[s>>2]),0|(s=t)}function de(A,e,r){e|=0,r|=0;var t=0,o=0;if(o=~~(+f(+ +u(10,+ +(15-(0|i[(A|=0)+12>>2])|0))*(+n[e>>3]+ +n[e+8>>3]))%+(0|i[A+4>>2]))>>>0,!(o=0|i[(0|i[A>>2])+(o<<2)>>2]))return 0|(r=0);if(!r){for(A=o;;){if(0|xA(A,e)){t=10;break}if(!(A=0|i[A+32>>2])){A=0,t=10;break}}if(10==(0|t))return 0|A}for(A=o;;){if(0|xA(A,e)&&0|xA(A+16|0,r)){t=10;break}if(!(A=0|i[A+32>>2])){A=0,t=10;break}}return 10==(0|t)?0|A:0}function ge(A,e){e|=0;var r=0;if(r=~~(+f(+ +u(10,+ +(15-(0|i[(A|=0)+12>>2])|0))*(+n[e>>3]+ +n[e+8>>3]))%+(0|i[A+4>>2]))>>>0,!(A=0|i[(0|i[A>>2])+(r<<2)>>2]))return 0|(r=0);for(;;){if(0|xA(A,e)){e=5;break}if(!(A=0|i[A+32>>2])){A=0,e=5;break}}return 5==(0|e)?0|A:0}function we(A){return 0|+function(A){return+ +Ie(+(A=+A))}(A=+A)}function pe(A){A|=0;var e,r=0,t=0,n=0,o=0,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,m=0,v=0,k=0;e=I,I=I+16|0,d=e;do{if(A>>>0<245){if(A=(l=A>>>0<11?16:A+11&-8)>>>3,3&(t=(c=0|i[5829])>>>A))return n=0|i[(t=(A=23356+((r=(1&t^1)+A|0)<<1<<2)|0)+8|0)>>2],(0|(a=0|i[(o=n+8|0)>>2]))==(0|A)?i[5829]=c&~(1<>2]=A,i[t>>2]=a),k=r<<3,i[n+4>>2]=3|k,i[(k=n+k+4|0)>>2]=1|i[k>>2],I=e,0|(k=o);if(l>>>0>(h=0|i[5831])>>>0){if(0|t)return r=((r=t<>>=s=r>>>12&16)>>>5&8)|s|(a=(r>>>=t)>>>2&4)|(A=(r>>>=a)>>>1&2)|(n=(r>>>=A)>>>1&1))+(r>>>n)|0)<<1<<2)|0)+8|0)>>2],(0|(t=0|i[(s=a+8|0)>>2]))==(0|r)?(A=c&~(1<>2]=r,i[A>>2]=t,A=c),f=(k=n<<3)-l|0,i[a+4>>2]=3|l,i[(o=a+l|0)+4>>2]=1|f,i[a+k>>2]=f,0|h&&(n=0|i[5834],t=23356+((r=h>>>3)<<1<<2)|0,A&(r=1<>2]:(i[5829]=A|r,r=t,A=t+8|0),i[A>>2]=n,i[r+12>>2]=n,i[n+8>>2]=r,i[n+12>>2]=t),i[5831]=f,i[5834]=o,I=e,0|(k=s);if(a=0|i[5830]){for(t=(a&0-a)-1|0,t=u=0|i[23620+(((n=(t>>>=o=t>>>12&16)>>>5&8)|o|(f=(t>>>=n)>>>2&4)|(s=(t>>>=f)>>>1&2)|(u=(t>>>=s)>>>1&1))+(t>>>u)<<2)>>2],s=u,u=(-8&i[u+4>>2])-l|0;(A=0|i[t+16>>2])||(A=0|i[t+20>>2]);)t=A,s=(o=(f=(-8&i[A+4>>2])-l|0)>>>0>>0)?A:s,u=o?f:u;if((f=s+l|0)>>>0>s>>>0){o=0|i[s+24>>2],r=0|i[s+12>>2];do{if((0|r)==(0|s)){if(!(r=0|i[(A=s+20|0)>>2])&&!(r=0|i[(A=s+16|0)>>2])){t=0;break}for(;;)if(t=0|i[(n=r+20|0)>>2])r=t,A=n;else{if(!(t=0|i[(n=r+16|0)>>2]))break;r=t,A=n}i[A>>2]=0,t=r}else t=0|i[s+8>>2],i[t+12>>2]=r,i[r+8>>2]=t,t=r}while(0);do{if(0|o){if(r=0|i[s+28>>2],(0|s)==(0|i[(A=23620+(r<<2)|0)>>2])){if(i[A>>2]=t,!t){i[5830]=a&~(1<>2])==(0|s)?k:o+20)>>2]=t,!t)break;i[t+24>>2]=o,0|(r=0|i[s+16>>2])&&(i[t+16>>2]=r,i[r+24>>2]=t),0|(r=0|i[s+20>>2])&&(i[t+20>>2]=r,i[r+24>>2]=t)}}while(0);return u>>>0<16?(k=u+l|0,i[s+4>>2]=3|k,i[(k=s+k+4|0)>>2]=1|i[k>>2]):(i[s+4>>2]=3|l,i[f+4>>2]=1|u,i[f+u>>2]=u,0|h&&(n=0|i[5834],t=23356+((r=h>>>3)<<1<<2)|0,(r=1<>2]:(i[5829]=r|c,r=t,A=t+8|0),i[A>>2]=n,i[r+12>>2]=n,i[n+8>>2]=r,i[n+12>>2]=t),i[5831]=u,i[5834]=f),I=e,0|(k=s+8|0)}c=l}else c=l}else c=l}else if(A>>>0<=4294967231)if(l=-8&(A=A+11|0),n=0|i[5830]){o=0-l|0,u=(A>>>=8)?l>>>0>16777215?31:l>>>((u=14-((s=((p=A<<(c=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|c|(u=((p<<=s)+245760|0)>>>16&2))+(p<>>15)|0)+7|0)&1|u<<1:0,t=0|i[23620+(u<<2)>>2];A:do{if(t)for(A=0,s=l<<(31==(0|u)?0:25-(u>>>1)|0),a=0;;){if((f=(-8&i[t+4>>2])-l|0)>>>0>>0){if(!f){A=t,o=0,p=65;break A}A=t,o=f}if(a=!(0|(p=0|i[t+20>>2]))|(0|p)==(0|(t=0|i[t+16+(s>>>31<<2)>>2]))?a:p,!t){t=a,p=61;break}s<<=1}else t=0,A=0,p=61}while(0);if(61==(0|p)){if(!(0|t)&!(0|A)){if(!(A=((A=2<>>=f=c>>>12&16)>>>5&8)|f|(s=(c>>>=a)>>>2&4)|(u=(c>>>=s)>>>1&2)|(t=(c>>>=u)>>>1&1))+(c>>>t)<<2)>>2]}t?p=65:(s=A,f=o)}if(65==(0|p))for(a=t;;){if(o=(t=(c=(-8&i[a+4>>2])-l|0)>>>0>>0)?c:o,A=t?a:A,(t=0|i[a+16>>2])||(t=0|i[a+20>>2]),!t){s=A,f=o;break}a=t}if(0|s&&f>>>0<((0|i[5831])-l|0)>>>0&&(h=s+l|0)>>>0>s>>>0){a=0|i[s+24>>2],r=0|i[s+12>>2];do{if((0|r)==(0|s)){if(!(r=0|i[(A=s+20|0)>>2])&&!(r=0|i[(A=s+16|0)>>2])){r=0;break}for(;;)if(t=0|i[(o=r+20|0)>>2])r=t,A=o;else{if(!(t=0|i[(o=r+16|0)>>2]))break;r=t,A=o}i[A>>2]=0}else k=0|i[s+8>>2],i[k+12>>2]=r,i[r+8>>2]=k}while(0);do{if(a){if(A=0|i[s+28>>2],(0|s)==(0|i[(t=23620+(A<<2)|0)>>2])){if(i[t>>2]=r,!r){n&=~(1<>2])==(0|s)?k:a+20)>>2]=r,!r)break;i[r+24>>2]=a,0|(A=0|i[s+16>>2])&&(i[r+16>>2]=A,i[A+24>>2]=r),(A=0|i[s+20>>2])&&(i[r+20>>2]=A,i[A+24>>2]=r)}}while(0);A:do{if(f>>>0<16)k=f+l|0,i[s+4>>2]=3|k,i[(k=s+k+4|0)>>2]=1|i[k>>2];else{if(i[s+4>>2]=3|l,i[h+4>>2]=1|f,i[h+f>>2]=f,r=f>>>3,f>>>0<256){t=23356+(r<<1<<2)|0,(A=0|i[5829])&(r=1<>2]:(i[5829]=A|r,r=t,A=t+8|0),i[A>>2]=h,i[r+12>>2]=h,i[h+8>>2]=r,i[h+12>>2]=t;break}if(r=23620+((t=(r=f>>>8)?f>>>0>16777215?31:f>>>((t=14-((m=((k=r<<(v=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(t=((k<<=m)+245760|0)>>>16&2))+(k<>>15)|0)+7|0)&1|t<<1:0)<<2)|0,i[h+28>>2]=t,i[(A=h+16|0)+4>>2]=0,i[A>>2]=0,!(n&(A=1<>2]=h,i[h+24>>2]=r,i[h+12>>2]=h,i[h+8>>2]=h;break}r=0|i[r>>2];e:do{if((-8&i[r+4>>2])!=(0|f)){for(n=f<<(31==(0|t)?0:25-(t>>>1)|0);A=0|i[(t=r+16+(n>>>31<<2)|0)>>2];){if((-8&i[A+4>>2])==(0|f)){r=A;break e}n<<=1,r=A}i[t>>2]=h,i[h+24>>2]=r,i[h+12>>2]=h,i[h+8>>2]=h;break A}}while(0);k=0|i[(v=r+8|0)>>2],i[k+12>>2]=h,i[v>>2]=h,i[h+8>>2]=k,i[h+12>>2]=r,i[h+24>>2]=0}}while(0);return I=e,0|(k=s+8|0)}c=l}else c=l;else c=-1}while(0);if((t=0|i[5831])>>>0>=c>>>0)return r=t-c|0,A=0|i[5834],r>>>0>15?(k=A+c|0,i[5834]=k,i[5831]=r,i[k+4>>2]=1|r,i[A+t>>2]=r,i[A+4>>2]=3|c):(i[5831]=0,i[5834]=0,i[A+4>>2]=3|t,i[(k=A+t+4|0)>>2]=1|i[k>>2]),I=e,0|(k=A+8|0);if((f=0|i[5832])>>>0>c>>>0)return m=f-c|0,i[5832]=m,v=(k=0|i[5835])+c|0,i[5835]=v,i[v+4>>2]=1|m,i[k+4>>2]=3|c,I=e,0|(k=k+8|0);if(0|i[5947]?A=0|i[5949]:(i[5949]=4096,i[5948]=4096,i[5950]=-1,i[5951]=-1,i[5952]=0,i[5940]=0,i[5947]=-16&d^1431655768,A=4096),s=c+48|0,(l=(a=A+(u=c+47|0)|0)&(o=0-A|0))>>>0<=c>>>0)return I=e,0|(k=0);if(0|(A=0|i[5939])&&(d=(h=0|i[5937])+l|0)>>>0<=h>>>0|d>>>0>A>>>0)return I=e,0|(k=0);A:do{if(4&i[5940])r=0,p=143;else{t=0|i[5835];e:do{if(t){for(n=23764;!((d=0|i[n>>2])>>>0<=t>>>0&&(d+(0|i[n+4>>2])|0)>>>0>t>>>0);){if(!(A=0|i[n+8>>2])){p=128;break e}n=A}if((r=a-f&o)>>>0<2147483647)if((0|(A=0|Fe(0|r)))==((0|i[n>>2])+(0|i[n+4>>2])|0)){if(-1!=(0|A)){f=r,a=A,p=145;break A}}else n=A,p=136;else r=0}else p=128}while(0);do{if(128==(0|p))if(-1!=(0|(t=0|Fe(0)))&&(r=t,w=(r=((w=(g=0|i[5948])+-1|0)&r|0?(w+r&0-g)-r|0:0)+l|0)+(g=0|i[5937])|0,r>>>0>c>>>0&r>>>0<2147483647)){if(0|(d=0|i[5939])&&w>>>0<=g>>>0|w>>>0>d>>>0){r=0;break}if((0|(A=0|Fe(0|r)))==(0|t)){f=r,a=t,p=145;break A}n=A,p=136}else r=0}while(0);do{if(136==(0|p)){if(t=0-r|0,!(s>>>0>r>>>0&r>>>0<2147483647&-1!=(0|n))){if(-1==(0|n)){r=0;break}f=r,a=n,p=145;break A}if((A=u-r+(A=0|i[5949])&0-A)>>>0>=2147483647){f=r,a=n,p=145;break A}if(-1==(0|Fe(0|A))){Fe(0|t),r=0;break}f=A+r|0,a=n,p=145;break A}}while(0);i[5940]=4|i[5940],p=143}}while(0);if(143==(0|p)&&l>>>0<2147483647&&!(-1==(0|(m=0|Fe(0|l)))|1^(b=(B=(w=0|Fe(0))-m|0)>>>0>(c+40|0)>>>0)|m>>>0>>0&-1!=(0|m)&-1!=(0|w)^1)&&(f=b?B:r,a=m,p=145),145==(0|p)){r=(0|i[5937])+f|0,i[5937]=r,r>>>0>(0|i[5938])>>>0&&(i[5938]=r),u=0|i[5835];A:do{if(u){for(r=23764;;){if((0|a)==((A=0|i[r>>2])+(t=0|i[r+4>>2])|0)){p=154;break}if(!(n=0|i[r+8>>2]))break;r=n}if(!(154!=(0|p)||(v=r+4|0,8&i[r+12>>2]))&&a>>>0>u>>>0&A>>>0<=u>>>0){i[v>>2]=t+f,v=u+(m=7&(m=u+8|0)?0-m&7:0)|0,m=(k=(0|i[5832])+f|0)-m|0,i[5835]=v,i[5832]=m,i[v+4>>2]=1|m,i[u+k+4>>2]=40,i[5836]=i[5951];break}for(a>>>0<(0|i[5833])>>>0&&(i[5833]=a),t=a+f|0,r=23764;;){if((0|i[r>>2])==(0|t)){p=162;break}if(!(A=0|i[r+8>>2]))break;r=A}if(162==(0|p)&&!(8&i[r+12>>2])){i[r>>2]=a,i[(h=r+4|0)>>2]=(0|i[h>>2])+f,l=(h=a+(7&(h=a+8|0)?0-h&7:0)|0)+c|0,s=(r=t+(7&(r=t+8|0)?0-r&7:0)|0)-h-c|0,i[h+4>>2]=3|c;e:do{if((0|u)==(0|r))k=(0|i[5832])+s|0,i[5832]=k,i[5835]=l,i[l+4>>2]=1|k;else{if((0|i[5834])==(0|r)){k=(0|i[5831])+s|0,i[5831]=k,i[5834]=l,i[l+4>>2]=1|k,i[l+k>>2]=k;break}if(1==(3&(A=0|i[r+4>>2]))){f=-8&A,n=A>>>3;r:do{if(A>>>0<256){if(A=0|i[r+8>>2],(0|(t=0|i[r+12>>2]))==(0|A)){i[5829]=i[5829]&~(1<>2]=t,i[t+8>>2]=A;break}a=0|i[r+24>>2],A=0|i[r+12>>2];do{if((0|A)==(0|r)){if(A=0|i[(n=(t=r+16|0)+4|0)>>2])t=n;else if(!(A=0|i[t>>2])){A=0;break}for(;;)if(n=0|i[(o=A+20|0)>>2])A=n,t=o;else{if(!(n=0|i[(o=A+16|0)>>2]))break;A=n,t=o}i[t>>2]=0}else k=0|i[r+8>>2],i[k+12>>2]=A,i[A+8>>2]=k}while(0);if(!a)break;n=23620+((t=0|i[r+28>>2])<<2)|0;do{if((0|i[n>>2])==(0|r)){if(i[n>>2]=A,0|A)break;i[5830]=i[5830]&~(1<>2])==(0|r)?k:a+20)>>2]=A,!A)break r}while(0);if(i[A+24>>2]=a,0|(n=0|i[(t=r+16|0)>>2])&&(i[A+16>>2]=n,i[n+24>>2]=A),!(t=0|i[t+4>>2]))break;i[A+20>>2]=t,i[t+24>>2]=A}while(0);r=r+f|0,o=f+s|0}else o=s;if(i[(r=r+4|0)>>2]=-2&i[r>>2],i[l+4>>2]=1|o,i[l+o>>2]=o,r=o>>>3,o>>>0<256){t=23356+(r<<1<<2)|0,(A=0|i[5829])&(r=1<>2]:(i[5829]=A|r,r=t,A=t+8|0),i[A>>2]=l,i[r+12>>2]=l,i[l+8>>2]=r,i[l+12>>2]=t;break}r=o>>>8;do{if(r){if(o>>>0>16777215){n=31;break}n=o>>>((n=14-((m=((k=r<<(v=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(n=((k<<=m)+245760|0)>>>16&2))+(k<>>15)|0)+7|0)&1|n<<1}else n=0}while(0);if(r=23620+(n<<2)|0,i[l+28>>2]=n,i[(A=l+16|0)+4>>2]=0,i[A>>2]=0,!((A=0|i[5830])&(t=1<>2]=l,i[l+24>>2]=r,i[l+12>>2]=l,i[l+8>>2]=l;break}r=0|i[r>>2];r:do{if((-8&i[r+4>>2])!=(0|o)){for(n=o<<(31==(0|n)?0:25-(n>>>1)|0);A=0|i[(t=r+16+(n>>>31<<2)|0)>>2];){if((-8&i[A+4>>2])==(0|o)){r=A;break r}n<<=1,r=A}i[t>>2]=l,i[l+24>>2]=r,i[l+12>>2]=l,i[l+8>>2]=l;break e}}while(0);k=0|i[(v=r+8|0)>>2],i[k+12>>2]=l,i[v>>2]=l,i[l+8>>2]=k,i[l+12>>2]=r,i[l+24>>2]=0}}while(0);return I=e,0|(k=h+8|0)}for(r=23764;!((A=0|i[r>>2])>>>0<=u>>>0&&(k=A+(0|i[r+4>>2])|0)>>>0>u>>>0);)r=0|i[r+8>>2];r=(A=(A=(o=k+-47|0)+(7&(A=o+8|0)?0-A&7:0)|0)>>>0<(o=u+16|0)>>>0?u:A)+8|0,v=a+(m=7&(m=a+8|0)?0-m&7:0)|0,m=(t=f+-40|0)-m|0,i[5835]=v,i[5832]=m,i[v+4>>2]=1|m,i[a+t+4>>2]=40,i[5836]=i[5951],i[(t=A+4|0)>>2]=27,i[r>>2]=i[5941],i[r+4>>2]=i[5942],i[r+8>>2]=i[5943],i[r+12>>2]=i[5944],i[5941]=a,i[5942]=f,i[5944]=0,i[5943]=r,r=A+24|0;do{v=r,i[(r=r+4|0)>>2]=7}while((v+8|0)>>>0>>0);if((0|A)!=(0|u)){if(a=A-u|0,i[t>>2]=-2&i[t>>2],i[u+4>>2]=1|a,i[A>>2]=a,r=a>>>3,a>>>0<256){t=23356+(r<<1<<2)|0,(A=0|i[5829])&(r=1<>2]:(i[5829]=A|r,r=t,A=t+8|0),i[A>>2]=u,i[r+12>>2]=u,i[u+8>>2]=r,i[u+12>>2]=t;break}if(t=23620+((n=(r=a>>>8)?a>>>0>16777215?31:a>>>((n=14-((m=((k=r<<(v=(r+1048320|0)>>>16&8))+520192|0)>>>16&4)|v|(n=((k<<=m)+245760|0)>>>16&2))+(k<>>15)|0)+7|0)&1|n<<1:0)<<2)|0,i[u+28>>2]=n,i[u+20>>2]=0,i[o>>2]=0,!((r=0|i[5830])&(A=1<>2]=u,i[u+24>>2]=t,i[u+12>>2]=u,i[u+8>>2]=u;break}r=0|i[t>>2];e:do{if((-8&i[r+4>>2])!=(0|a)){for(n=a<<(31==(0|n)?0:25-(n>>>1)|0);A=0|i[(t=r+16+(n>>>31<<2)|0)>>2];){if((-8&i[A+4>>2])==(0|a)){r=A;break e}n<<=1,r=A}i[t>>2]=u,i[u+24>>2]=r,i[u+12>>2]=u,i[u+8>>2]=u;break A}}while(0);k=0|i[(v=r+8|0)>>2],i[k+12>>2]=u,i[v>>2]=u,i[u+8>>2]=k,i[u+12>>2]=r,i[u+24>>2]=0}}else!(0|(k=0|i[5833]))|a>>>0>>0&&(i[5833]=a),i[5941]=a,i[5942]=f,i[5944]=0,i[5838]=i[5947],i[5837]=-1,i[5842]=23356,i[5841]=23356,i[5844]=23364,i[5843]=23364,i[5846]=23372,i[5845]=23372,i[5848]=23380,i[5847]=23380,i[5850]=23388,i[5849]=23388,i[5852]=23396,i[5851]=23396,i[5854]=23404,i[5853]=23404,i[5856]=23412,i[5855]=23412,i[5858]=23420,i[5857]=23420,i[5860]=23428,i[5859]=23428,i[5862]=23436,i[5861]=23436,i[5864]=23444,i[5863]=23444,i[5866]=23452,i[5865]=23452,i[5868]=23460,i[5867]=23460,i[5870]=23468,i[5869]=23468,i[5872]=23476,i[5871]=23476,i[5874]=23484,i[5873]=23484,i[5876]=23492,i[5875]=23492,i[5878]=23500,i[5877]=23500,i[5880]=23508,i[5879]=23508,i[5882]=23516,i[5881]=23516,i[5884]=23524,i[5883]=23524,i[5886]=23532,i[5885]=23532,i[5888]=23540,i[5887]=23540,i[5890]=23548,i[5889]=23548,i[5892]=23556,i[5891]=23556,i[5894]=23564,i[5893]=23564,i[5896]=23572,i[5895]=23572,i[5898]=23580,i[5897]=23580,i[5900]=23588,i[5899]=23588,i[5902]=23596,i[5901]=23596,i[5904]=23604,i[5903]=23604,v=a+(m=7&(m=a+8|0)?0-m&7:0)|0,m=(k=f+-40|0)-m|0,i[5835]=v,i[5832]=m,i[v+4>>2]=1|m,i[a+k+4>>2]=40,i[5836]=i[5951]}while(0);if((r=0|i[5832])>>>0>c>>>0)return m=r-c|0,i[5832]=m,v=(k=0|i[5835])+c|0,i[5835]=v,i[v+4>>2]=1|m,i[k+4>>2]=3|c,I=e,0|(k=k+8|0)}return i[(k=23312)>>2]=12,I=e,0|(k=0)}function Be(A){var e=0,r=0,t=0,n=0,o=0,a=0,f=0,s=0;if(A|=0){r=A+-8|0,n=0|i[5833],s=r+(e=-8&(A=0|i[A+-4>>2]))|0;do{if(1&A)f=r,a=r;else{if(t=0|i[r>>2],!(3&A))return;if(o=t+e|0,(a=r+(0-t)|0)>>>0>>0)return;if((0|i[5834])==(0|a)){if(3&~(e=0|i[(A=s+4|0)>>2])){f=a,e=o;break}return i[5831]=o,i[A>>2]=-2&e,i[a+4>>2]=1|o,void(i[a+o>>2]=o)}if(r=t>>>3,t>>>0<256){if(A=0|i[a+8>>2],(0|(e=0|i[a+12>>2]))==(0|A)){i[5829]=i[5829]&~(1<>2]=e,i[e+8>>2]=A,f=a,e=o;break}n=0|i[a+24>>2],A=0|i[a+12>>2];do{if((0|A)==(0|a)){if(A=0|i[(r=(e=a+16|0)+4|0)>>2])e=r;else if(!(A=0|i[e>>2])){A=0;break}for(;;)if(r=0|i[(t=A+20|0)>>2])A=r,e=t;else{if(!(r=0|i[(t=A+16|0)>>2]))break;A=r,e=t}i[e>>2]=0}else f=0|i[a+8>>2],i[f+12>>2]=A,i[A+8>>2]=f}while(0);if(n){if(e=0|i[a+28>>2],(0|i[(r=23620+(e<<2)|0)>>2])==(0|a)){if(i[r>>2]=A,!A){i[5830]=i[5830]&~(1<>2])==(0|a)?f:n+20)>>2]=A,!A){f=a,e=o;break}i[A+24>>2]=n,0|(r=0|i[(e=a+16|0)>>2])&&(i[A+16>>2]=r,i[r+24>>2]=A),(e=0|i[e+4>>2])?(i[A+20>>2]=e,i[e+24>>2]=A,f=a,e=o):(f=a,e=o)}else f=a,e=o}}while(0);if(!(a>>>0>=s>>>0)&&1&(t=0|i[(A=s+4|0)>>2])){if(2&t)i[A>>2]=-2&t,i[f+4>>2]=1|e,i[a+e>>2]=e,n=e;else{if((0|i[5835])==(0|s)){if(s=(0|i[5832])+e|0,i[5832]=s,i[5835]=f,i[f+4>>2]=1|s,(0|f)!=(0|i[5834]))return;return i[5834]=0,void(i[5831]=0)}if((0|i[5834])==(0|s))return s=(0|i[5831])+e|0,i[5831]=s,i[5834]=a,i[f+4>>2]=1|s,void(i[a+s>>2]=s);n=(-8&t)+e|0,r=t>>>3;do{if(t>>>0<256){if(e=0|i[s+8>>2],(0|(A=0|i[s+12>>2]))==(0|e)){i[5829]=i[5829]&~(1<>2]=A,i[A+8>>2]=e;break}o=0|i[s+24>>2],A=0|i[s+12>>2];do{if((0|A)==(0|s)){if(A=0|i[(r=(e=s+16|0)+4|0)>>2])e=r;else if(!(A=0|i[e>>2])){r=0;break}for(;;)if(r=0|i[(t=A+20|0)>>2])A=r,e=t;else{if(!(r=0|i[(t=A+16|0)>>2]))break;A=r,e=t}i[e>>2]=0,r=A}else r=0|i[s+8>>2],i[r+12>>2]=A,i[A+8>>2]=r,r=A}while(0);if(0|o){if(A=0|i[s+28>>2],(0|i[(e=23620+(A<<2)|0)>>2])==(0|s)){if(i[e>>2]=r,!r){i[5830]=i[5830]&~(1<>2])==(0|s)?t:o+20)>>2]=r,!r)break;i[r+24>>2]=o,0|(e=0|i[(A=s+16|0)>>2])&&(i[r+16>>2]=e,i[e+24>>2]=r),0|(A=0|i[A+4>>2])&&(i[r+20>>2]=A,i[A+24>>2]=r)}}while(0);if(i[f+4>>2]=1|n,i[a+n>>2]=n,(0|f)==(0|i[5834]))return void(i[5831]=n)}if(A=n>>>3,n>>>0<256)return r=23356+(A<<1<<2)|0,(e=0|i[5829])&(A=1<>2]:(i[5829]=e|A,A=r,e=r+8|0),i[e>>2]=f,i[A+12>>2]=f,i[f+8>>2]=A,void(i[f+12>>2]=r);A=23620+((t=(A=n>>>8)?n>>>0>16777215?31:n>>>((t=14-((o=((s=A<<(a=(A+1048320|0)>>>16&8))+520192|0)>>>16&4)|a|(t=((s<<=o)+245760|0)>>>16&2))+(s<>>15)|0)+7|0)&1|t<<1:0)<<2)|0,i[f+28>>2]=t,i[f+20>>2]=0,i[f+16>>2]=0,e=0|i[5830],r=1<>2];e:do{if((-8&i[A+4>>2])!=(0|n)){for(t=n<<(31==(0|t)?0:25-(t>>>1)|0);e=0|i[(r=A+16+(t>>>31<<2)|0)>>2];){if((-8&i[e+4>>2])==(0|n)){A=e;break e}t<<=1,A=e}i[r>>2]=f,i[f+24>>2]=A,i[f+12>>2]=f,i[f+8>>2]=f;break A}}while(0);s=0|i[(a=A+8|0)>>2],i[s+12>>2]=f,i[a>>2]=f,i[f+8>>2]=s,i[f+12>>2]=A,i[f+24>>2]=0}else i[5830]=e|r,i[A>>2]=f,i[f+24>>2]=A,i[f+12>>2]=f,i[f+8>>2]=f}while(0);if(s=(0|i[5837])-1|0,i[5837]=s,!(0|s)){for(A=23772;A=0|i[A>>2];)A=A+8|0;i[5837]=-1}}}}function be(A,e){e|=0;var r=0;return(A|=0)?(r=0|b(e,A),(e|A)>>>0>65535&&(r=((r>>>0)/(A>>>0)|0)==(0|e)?r:-1)):r=0,(A=0|pe(r))&&3&i[A+-4>>2]?(De(0|A,0,0|r),0|A):0|A}function me(A,e,r,t){return 0|(k(0|(t=(e|=0)-(t|=0)-((r|=0)>>>0>(A|=0)>>>0|0)>>>0)),A-r>>>0)}function ve(A){return 0|((A|=0)?31-(0|v(A^A-1)):32)}function ke(A,e,r,t,n){n|=0;var o=0,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0;if(l=A|=0,a=r|=0,f=c=t|=0,!(u=s=e|=0))return o=!!(0|n),f?o?(i[n>>2]=0|A,i[n+4>>2]=0&e,n=0,0|(k(0|(c=0)),n)):(n=0,0|(k(0|(c=0)),n)):(o&&(i[n>>2]=(l>>>0)%(a>>>0),i[n+4>>2]=0),n=(l>>>0)/(a>>>0)>>>0,0|(k(0|(c=0)),n));o=!(0|f);do{if(a){if(!o){if((o=(0|v(0|f))-(0|v(0|u))|0)>>>0<=31){a=h=o+1|0,A=l>>>(h>>>0)&(e=o-31>>31)|u<<(f=31-o|0),e&=u>>>(h>>>0),o=0,f=l<>2]=0|A,i[n+4>>2]=s|0&e,n=0,0|(k(0|(c=0)),n)):(n=0,0|(k(0|(c=0)),n))}if((o=a-1|0)&a|0){a=f=33+(0|v(0|a))-(0|v(0|u))|0,A=(h=32-f|0)-1>>31&u>>>((d=f-32|0)>>>0)|(u<>>(f>>>0))&(e=d>>31),e&=u>>>(f>>>0),o=l<<(g=64-f|0)&(s=h>>31),f=(u<>>(d>>>0))&s|l<>31;break}return 0|n&&(i[n>>2]=o&l,i[n+4>>2]=0),1==(0|a)?(g=0|A,0|(k(0|(d=s|0&e)),g)):(d=u>>>((g=0|ve(0|a))>>>0)|0,g=u<<32-g|l>>>(g>>>0),0|(k(0|d),g))}if(o)return 0|n&&(i[n>>2]=(u>>>0)%(a>>>0),i[n+4>>2]=0),g=(u>>>0)/(a>>>0)>>>0,0|(k(0|(d=0)),g);if(!l)return 0|n&&(i[n>>2]=0,i[n+4>>2]=(u>>>0)%(f>>>0)),g=(u>>>0)/(f>>>0)>>>0,0|(k(0|(d=0)),g);if(!((o=f-1|0)&f))return 0|n&&(i[n>>2]=0|A,i[n+4>>2]=o&u|0&e),d=0,g=u>>>((0|ve(0|f))>>>0),0|(k(0|d),g);if((o=(0|v(0|f))-(0|v(0|u))|0)>>>0<=30){a=e=o+1|0,A=u<<(f=31-o|0)|l>>>(e>>>0),e=u>>>(e>>>0),o=0,f=l<>2]=0|A,i[n+4>>2]=s|0&e,g=0,0|(k(0|(d=0)),g)):(g=0,0|(k(0|(d=0)),g))}while(0);if(a){u=0|function(A,e,r,t){return 0|(k((e|=0)+(t|=0)+((r=(A|=0)+(r|=0)>>>0)>>>0>>0|0)>>>0|0),r)}(0|(h=0|r),0|(l=c|0&t),-1,-1),r=0|M(),s=f,f=0;do{t=s,s=o>>>31|s<<1,o=f|o<<1,me(0|u,0|r,0|(t=A<<1|t>>>31),0|(c=A>>>31|e<<1)),f=1&(d=(g=0|M())>>31|((0|g)<0?-1:0)<<1),A=0|me(0|t,0|c,d&h|0,(((0|g)<0?-1:0)>>31|((0|g)<0?-1:0)<<1)&l),e=0|M(),a=a-1|0}while(0|a);u=s,s=0}else u=f,s=0,f=0;return a=0,0|n&&(i[n>>2]=A,i[n+4>>2]=e),g=o<<1&-2|f,0|(k(0|(d=(0|o)>>>31|(u|a)<<1|s)),g)}function Me(A,e,r,t){var n,o;return o=I,I=I+16|0,ke(A|=0,e|=0,r|=0,t|=0,n=0|o),I=o,0|(k(0|i[n+4>>2]),i[n>>2])}function Qe(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(k(e>>>r|0),A>>>r|(e&(1<>>r-32|0)}function ye(A,e,r){return A|=0,e|=0,(0|(r|=0))<32?(k(e<>>32-r),A<=0?+a(A+.5):+B(A-.5)}function _e(A,e,r){A|=0,e|=0;var n,o,a=0;if((0|(r|=0))>=8192)return x(0|A,0|e,0|r),0|A;if(o=0|A,n=A+r|0,(3&A)==(3&e)){for(;3&A;){if(!r)return 0|o;t[A|0]=0|t[e|0],A=A+1|0,e=e+1|0,r=r-1|0}for(a=(r=-4&n)-64|0;(0|A)<=(0|a);)i[A>>2]=i[e>>2],i[A+4>>2]=i[e+4>>2],i[A+8>>2]=i[e+8>>2],i[A+12>>2]=i[e+12>>2],i[A+16>>2]=i[e+16>>2],i[A+20>>2]=i[e+20>>2],i[A+24>>2]=i[e+24>>2],i[A+28>>2]=i[e+28>>2],i[A+32>>2]=i[e+32>>2],i[A+36>>2]=i[e+36>>2],i[A+40>>2]=i[e+40>>2],i[A+44>>2]=i[e+44>>2],i[A+48>>2]=i[e+48>>2],i[A+52>>2]=i[e+52>>2],i[A+56>>2]=i[e+56>>2],i[A+60>>2]=i[e+60>>2],A=A+64|0,e=e+64|0;for(;(0|A)<(0|r);)i[A>>2]=i[e>>2],A=A+4|0,e=e+4|0}else for(r=n-4|0;(0|A)<(0|r);)t[A|0]=0|t[e|0],t[A+1|0]=0|t[e+1|0],t[A+2|0]=0|t[e+2|0],t[A+3|0]=0|t[e+3|0],A=A+4|0,e=e+4|0;for(;(0|A)<(0|n);)t[A|0]=0|t[e|0],A=A+1|0,e=e+1|0;return 0|o}function De(A,e,r){e|=0;var n,o=0,a=0,f=0;if(n=(A|=0)+(r|=0)|0,e&=255,(0|r)>=67){for(;3&A;)t[A|0]=e,A=A+1|0;for(f=e|e<<8|e<<16|e<<24,a=(o=-4&n)-64|0;(0|A)<=(0|a);)i[A>>2]=f,i[A+4>>2]=f,i[A+8>>2]=f,i[A+12>>2]=f,i[A+16>>2]=f,i[A+20>>2]=f,i[A+24>>2]=f,i[A+28>>2]=f,i[A+32>>2]=f,i[A+36>>2]=f,i[A+40>>2]=f,i[A+44>>2]=f,i[A+48>>2]=f,i[A+52>>2]=f,i[A+56>>2]=f,i[A+60>>2]=f,A=A+64|0;for(;(0|A)<(0|o);)i[A>>2]=f,A=A+4|0}for(;(0|A)<(0|n);)t[A|0]=e,A=A+1|0;return n-r|0}function Ie(A){return(A=+A)>=0?+a(A+.5):+B(A-.5)}function Fe(A){A|=0;var e,r,t;return t=0|E(),(0|A)>0&(0|(e=(r=0|i[o>>2])+A|0))<(0|r)|(0|e)<0?(D(0|e),y(12),-1):(0|e)>(0|t)&&!(0|_(0|e))?(y(12),-1):(i[o>>2]=e,0|r)}return{___uremdi3:Me,_bitshift64Lshr:Qe,_bitshift64Shl:ye,_calloc:be,_cellAreaKm2:function(A,e){var r,t,n,o=0;if(n=I,I=I+192|0,t=n,OA(A|=0,e|=0,r=n+168|0),jA(A,e,t),(0|(e=0|i[t>>2]))>0){if(o=+DA(t+8|0,t+8+((1!=(0|e)&1)<<4)|0,r)+0,1!=(0|e)){A=1;do{o+=+DA(t+8+(A<<4)|0,t+8+((0|(A=A+1|0))%(0|e)<<4)|0,r)}while((0|A)<(0|e))}}else o=0;return I=n,6371.007180918475*o*6371.007180918475},_cellAreaM2:function(A,e){var r,t,n,o=0;if(n=I,I=I+192|0,t=n,OA(A|=0,e|=0,r=n+168|0),jA(A,e,t),(0|(e=0|i[t>>2]))>0){if(o=+DA(t+8|0,t+8+((1!=(0|e)&1)<<4)|0,r)+0,1!=(0|e)){A=1;do{o+=+DA(t+8+(A<<4)|0,t+8+((0|(A=A+1|0))%(0|e)<<4)|0,r)}while((0|A)<(0|e))}}else o=0;return I=n,6371.007180918475*o*6371.007180918475*1e3*1e3},_cellAreaRads2:function(A,e){var r,t,n,o=0;if(n=I,I=I+192|0,t=n,OA(A|=0,e|=0,r=n+168|0),jA(A,e,t),(0|(e=0|i[t>>2]))<=0)return I=n,+(o=0);if(o=+DA(t+8|0,t+8+((1!=(0|e)&1)<<4)|0,r)+0,1==(0|e))return I=n,+o;A=1;do{o+=+DA(t+8+(A<<4)|0,t+8+((0|(A=A+1|0))%(0|e)<<4)|0,r)}while((0|A)<(0|e));return I=n,+o},_compact:function(A,e,r){e|=0;var t,n=0,o=0,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,m=0,v=0,k=0,Q=0,y=0,E=0;if(!(r|=0))return 0|(y=0);if(n=0|i[(o=A|=0)>>2],!0&!(15728640&(o=0|i[o+4>>2]))){if((0|r)<=0)return 0|(y=0);if(i[(y=e)>>2]=n,i[y+4>>2]=o,1==(0|r))return 0|(y=0);n=1;do{Q=0|i[(k=A+(n<<3)|0)+4>>2],i[(y=e+(n<<3)|0)>>2]=i[k>>2],i[y+4>>2]=Q,n=n+1|0}while((0|n)!=(0|r));return 0|(n=0)}if(!(Q=0|pe(k=r<<3)))return 0|(y=-3);if(_e(0|Q,0|A,0|k),!(t=0|be(r,8)))return Be(Q),0|(y=-3);n=r;A:for(;;){m=0|Qe(0|(h=0|i[(f=Q)>>2]),0|(f=0|i[f+4>>2]),52),M(),v=(m&=15)+-1|0,b=(0|n)>0;e:do{if(b){if(B=((0|n)<0)<<31>>31,w=0|ye(0|v,0,52),p=0|M(),v>>>0>15)for(o=0,A=h,r=f;;){if(!(!(0|A)&!(0|r))){if(a=0|Qe(0|A,0|r,52),M(),s=(0|(a&=15))<(0|v),a=(0|a)==(0|v),r=0|Me(0|(l=s?0:a?A:0),0|(A=s?0:a?r:0),0|n,0|B),M(),!(0|(u=0|i[(s=a=t+(r<<3)|0)>>2]))&!(0|(s=0|i[s+4>>2])))r=l;else for(w=0,g=r,d=s,r=l;;){if((0|w)>(0|n)){y=41;break A}if((0|u)==(0|r)&(-117440513&d)==(0|A)){l=0|Qe(0|u,0|d,56),M(),c=(l&=7)+1|0,p=0|Qe(0|u,0|d,45),M();r:do{if(0|S(127&p)){if(u=0|Qe(0|u,0|d,52),M(),!(u&=15)){s=6;break}for(s=1;;){if(!(!((p=0|ye(7,0,3*(15-s|0)|0))&r|0)&!((0|M())&A))){s=7;break r}if(!(s>>>0>>0)){s=6;break}s=s+1|0}}else s=7}while(0);if((l+2|0)>>>0>s>>>0){y=51;break A}p=0|ye(0|c,0,56),A=M()|-117440513&A,i[(s=a)>>2]=0,i[s+4>>2]=0,s=g,r|=p}else s=(g+1|0)%(0|n)|0;if(!(0|(u=0|i[(d=a=t+(s<<3)|0)>>2]))&!(0|(d=0|i[d+4>>2])))break;w=w+1|0,g=s}i[(p=a)>>2]=r,i[p+4>>2]=A}if((0|(o=o+1|0))>=(0|n))break e;A=0|i[(r=Q+(o<<3)|0)>>2],r=0|i[r+4>>2]}for(o=0,A=h,r=f;;){if(!(!(0|A)&!(0|r))){if(s=0|Qe(0|A,0|r,52),M(),(0|(s&=15))>=(0|v)){if((0|s)!=(0|v)&&(A|=w,r=-15728641&r|p,s>>>0>=m>>>0)){a=v;do{g=0|ye(7,0,3*(14-a|0)|0),a=a+1|0,A|=g,r=0|M()|r}while(a>>>0>>0)}}else A=0,r=0;if(s=0|Me(0|A,0|r,0|n,0|B),M(),!(!(0|(l=0|i[(u=a=t+(s<<3)|0)>>2]))&!(0|(u=0|i[u+4>>2]))))for(g=0;;){if((0|g)>(0|n)){y=41;break A}if((0|l)==(0|A)&(-117440513&u)==(0|r)){c=0|Qe(0|l,0|u,56),M(),d=(c&=7)+1|0,E=0|Qe(0|l,0|u,45),M();r:do{if(0|S(127&E)){if(l=0|Qe(0|l,0|u,52),M(),!(l&=15)){u=6;break}for(u=1;;){if(!(!((E=0|ye(7,0,3*(15-u|0)|0))&A|0)&!((0|M())&r))){u=7;break r}if(!(u>>>0>>0)){u=6;break}u=u+1|0}}else u=7}while(0);if((c+2|0)>>>0>u>>>0){y=51;break A}E=0|ye(0|d,0,56),r=M()|-117440513&r,i[(d=a)>>2]=0,i[d+4>>2]=0,A|=E}else s=(s+1|0)%(0|n)|0;if(!(0|(l=0|i[(u=a=t+(s<<3)|0)>>2]))&!(0|(u=0|i[u+4>>2])))break;g=g+1|0}i[(E=a)>>2]=A,i[E+4>>2]=r}if((0|(o=o+1|0))>=(0|n))break e;A=0|i[(r=Q+(o<<3)|0)>>2],r=0|i[r+4>>2]}}}while(0);if((n+5|0)>>>0<11){y=99;break}if(!(p=0|be((0|n)/6|0,8))){y=58;break}e:do{if(b){g=0,d=0;do{if(!(!(0|(o=0|i[(A=s=t+(g<<3)|0)>>2]))&!(0|(A=0|i[A+4>>2])))){u=0|Qe(0|o,0|A,56),M(),r=(u&=7)+1|0,l=-117440513&A,E=0|Qe(0|o,0|A,45),M();r:do{if(0|S(127&E)){if(c=0|Qe(0|o,0|A,52),M(),0|(c&=15))for(a=1;;){if(!(!(o&(E=0|ye(7,0,3*(15-a|0)|0))|0)&!(l&(0|M()))))break r;if(!(a>>>0>>0))break;a=a+1|0}o|=A=0|ye(0|r,0,56),A=0|M()|l,i[(r=s)>>2]=o,i[r+4>>2]=A,r=u+2|0}}while(0);7==(0|r)&&(i[(E=p+(d<<3)|0)>>2]=o,i[E+4>>2]=-117440513&A,d=d+1|0)}g=g+1|0}while((0|g)!=(0|n));if(b){if(w=((0|n)<0)<<31>>31,c=0|ye(0|v,0,52),g=0|M(),v>>>0>15)for(A=0,o=0;;){do{if(!(!(0|h)&!(0|f))){for(u=0|Qe(0|h,0|f,52),M(),a=(0|(u&=15))<(0|v),u=(0|u)==(0|v),a=0|Me(0|(s=a?0:u?h:0),0|(u=a?0:u?f:0),0|n,0|w),M(),r=0;;){if((0|r)>(0|n)){y=98;break A}if((-117440513&(l=0|i[(E=t+(a<<3)|0)+4>>2]))==(0|u)&&(0|i[E>>2])==(0|s)){y=70;break}if((0|i[(E=t+((a=(a+1|0)%(0|n)|0)<<3)|0)>>2])==(0|s)&&(0|i[E+4>>2])==(0|u))break;r=r+1|0}if(70==(0|y)&&(y=0,!0&100663296==(117440512&l)))break;i[(E=e+(o<<3)|0)>>2]=h,i[E+4>>2]=f,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|n)){n=d;break e}h=0|i[(f=Q+(A<<3)|0)>>2],f=0|i[f+4>>2]}for(A=0,o=0;;){do{if(!(!(0|h)&!(0|f))){if(u=0|Qe(0|h,0|f,52),M(),(0|(u&=15))>=(0|v))if((0|u)!=(0|v))if(r=h|c,a=-15728641&f|g,u>>>0>>0)u=a;else{s=v;do{E=0|ye(7,0,3*(14-s|0)|0),s=s+1|0,r|=E,a=0|M()|a}while(s>>>0>>0);u=a}else r=h,u=f;else r=0,u=0;for(s=0|Me(0|r,0|u,0|n,0|w),M(),a=0;;){if((0|a)>(0|n)){y=98;break A}if((-117440513&(l=0|i[(E=t+(s<<3)|0)+4>>2]))==(0|u)&&(0|i[E>>2])==(0|r)){y=93;break}if((0|i[(E=t+((s=(s+1|0)%(0|n)|0)<<3)|0)>>2])==(0|r)&&(0|i[E+4>>2])==(0|u))break;a=a+1|0}if(93==(0|y)&&(y=0,!0&100663296==(117440512&l)))break;i[(E=e+(o<<3)|0)>>2]=h,i[E+4>>2]=f,o=o+1|0}}while(0);if((0|(A=A+1|0))>=(0|n)){n=d;break e}h=0|i[(f=Q+(A<<3)|0)>>2],f=0|i[f+4>>2]}}else o=0,n=d}else o=0,n=0}while(0);if(De(0|t,0,0|k),_e(0|Q,0|p,n<<3),Be(p),!n)break;e=e+(o<<3)|0}return 41==(0|y)?(Be(Q),Be(t),0|(E=-1)):51==(0|y)?(Be(Q),Be(t),0|(E=-2)):58==(0|y)?(Be(Q),Be(t),0|(E=-3)):98==(0|y)?(Be(p),Be(Q),Be(t),0|(E=-1)):(99==(0|y)&&_e(0|e,0|Q,n<<3),Be(Q),Be(t),0|(E=0))},_destroyLinkedPolygon:function(A){var e=0,r=0,t=0,n=0;if(A|=0)for(t=1;;){if(0|(e=0|i[A>>2]))do{if(0|(r=0|i[e>>2]))do{n=r,r=0|i[r+16>>2],Be(n)}while(0|r);n=e,e=0|i[e+8>>2],Be(n)}while(0|e);if(e=A,A=0|i[A+8>>2],t||Be(e),!A)break;t=0}},_edgeLengthKm:function(A){return+ +n[20752+((A|=0)<<3)>>3]},_edgeLengthM:function(A){return+ +n[20880+((A|=0)<<3)>>3]},_emscripten_replace_memory:function(A){return t=new Int8Array(A),new Uint8Array(A),i=new Int32Array(A),new Float32Array(A),n=new Float64Array(A),r=A,!0},_exactEdgeLengthKm:function(A,e){var r,t,o=0,a=0,f=0,u=0,c=0,d=0;if(t=I,I=I+176|0,WA(A|=0,e|=0,r=t),(0|(A=0|i[r>>2]))<=1)return I=t,+(f=0);e=A+-1|0,A=0,o=0,a=+n[r+8>>3],f=+n[r+16>>3];do{c=a,a=+n[r+8+((A=A+1|0)<<4)>>3],d=+h(.5*(a-c)),u=f,f=+n[r+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(f-u)))*(+l(+c)*+l(+a)*u),o+=2*+p(+ +s(+u),+ +s(+(1-u)))}while((0|A)!=(0|e));return I=t,+(d=6371.007180918475*o)},_exactEdgeLengthM:function(A,e){var r,t,o=0,a=0,f=0,u=0,c=0,d=0;if(t=I,I=I+176|0,WA(A|=0,e|=0,r=t),(0|(A=0|i[r>>2]))<=1)return I=t,+(f=0);e=A+-1|0,A=0,o=0,a=+n[r+8>>3],f=+n[r+16>>3];do{c=a,a=+n[r+8+((A=A+1|0)<<4)>>3],d=+h(.5*(a-c)),u=f,f=+n[r+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(f-u)))*(+l(+c)*+l(+a)*u),o+=2*+p(+ +s(+u),+ +s(+(1-u)))}while((0|A)!=(0|e));return I=t,+(d=6371.007180918475*o*1e3)},_exactEdgeLengthRads:function(A,e){var r,t,o=0,a=0,f=0,u=0,c=0,d=0;if(t=I,I=I+176|0,WA(A|=0,e|=0,r=t),(0|(A=0|i[r>>2]))<=1)return I=t,+(f=0);e=A+-1|0,A=0,o=0,a=+n[r+8>>3],f=+n[r+16>>3];do{c=a,a=+n[r+8+((A=A+1|0)<<4)>>3],d=+h(.5*(a-c)),u=f,f=+n[r+8+(A<<4)+8>>3],u=d*d+(u=+h(.5*(f-u)))*(+l(+a)*+l(+c)*u),o+=2*+p(+ +s(+u),+ +s(+(1-u)))}while((0|A)<(0|e));return I=t,+o},_experimentalH3ToLocalIj:function(A,e,r,t,i){var n,o;return i|=0,o=I,I=I+16|0,(A=0|$A(A|=0,e|=0,r|=0,t|=0,n=o))||(cA(n,i),A=0),I=o,0|A},_experimentalLocalIjToH3:function(A,e,r,t){var i,n;return A|=0,e|=0,t|=0,i=I,I=I+16|0,dA(r|=0,n=i),t=0|Ae(A,e,n,t),I=i,0|t},_free:Be,_geoToH3:LA,_getDestinationH3IndexFromUnidirectionalEdge:function(A,e){A|=0;var r,t,n=0;return r=I,I=I+16|0,n=r,!0&268435456==(2013265920&(e|=0))?(t=0|Qe(0|A,0|e,56),M(),i[n>>2]=0,n=0|U(A,-2130706433&e|134217728,7&t,n),e=0|M(),k(0|e),I=r,0|n):(n=0,k(0|(e=0)),I=r,0|n)},_getH3IndexesFromUnidirectionalEdge:function(A,e,r){A|=0;var t,n,o,a,f=0;o=I,I=I+16|0,t=o,a=!0&268435456==(2013265920&(e|=0)),n=-2130706433&e|134217728,i[(f=r|=0)>>2]=a?A:0,i[f+4>>2]=a?n:0,a?(e=0|Qe(0|A,0|e,56),M(),i[t>>2]=0,A=0|U(A,n,7&e,t),e=0|M()):(A=0,e=0),i[(f=r+8|0)>>2]=A,i[f+4>>2]=e,I=o},_getH3UnidirectionalEdge:function(A,e,r,t){var n,o,a=0,f=0,s=0,u=0,l=0;if(o=I,I=I+16|0,n=o,!(0|ZA(A|=0,e|=0,r|=0,t|=0)))return u=0,k(0|(s=0)),I=o,0|u;for(s=-2130706433&e,a=(a=!(0|UA(A,e)))?1:2;i[n>>2]=0,f=a+1|0,!((0|(l=0|U(A,e,a,n)))==(0|r)&(0|M())==(0|t));){if(!(f>>>0<7)){a=0,A=0,u=6;break}a=f}return 6==(0|u)?(k(0|a),I=o,0|A):(l=0|ye(0|a,0,56),u=0|s|M()|268435456,l|=A,k(0|u),I=o,0|l)},_getH3UnidirectionalEdgeBoundary:WA,_getH3UnidirectionalEdgesFromHexagon:function(A,e,r){r|=0;var t,n=0;t=!(0|UA(A|=0,e|=0)),e&=-2130706433,i[(n=r)>>2]=t?A:0,i[n+4>>2]=t?285212672|e:0,i[(n=r+8|0)>>2]=A,i[n+4>>2]=301989888|e,i[(n=r+16|0)>>2]=A,i[n+4>>2]=318767104|e,i[(n=r+24|0)>>2]=A,i[n+4>>2]=335544320|e,i[(n=r+32|0)>>2]=A,i[n+4>>2]=352321536|e,i[(r=r+40|0)>>2]=A,i[r+4>>2]=369098752|e},_getOriginH3IndexFromUnidirectionalEdge:function(A,e){var r;return A|=0,k(0|((r=!0&268435456==(2013265920&(e|=0)))?-2130706433&e|134217728:0)),0|(r?A:0)},_getPentagonIndexes:NA,_getRes0Indexes:function(A){A|=0;var e=0,r=0,t=0;e=0;do{ye(0|e,0,45),t=134225919|M(),i[(r=A+(e<<3)|0)>>2]=-1,i[r+4>>2]=t,e=e+1|0}while(122!=(0|e))},_h3Distance:function(A,e,r,t){var i,n,o;return r|=0,t|=0,o=I,I=I+32|0,n=o,A=0|$A(A|=0,e|=0,A,e,i=o+12|0)||0|$A(A,e,r,t,n)?-1:0|hA(i,n),I=o,0|A},_h3GetBaseCell:IA,_h3GetFaces:function A(e,r,t){t|=0;var n,o=0,a=0,f=0,s=0,u=0,l=0,h=0,c=0;n=I,I=I+128|0,h=n+112|0,f=n+96|0,c=n,a=0|Qe(0|(e|=0),0|(r|=0),52),M(),u=15&a,i[h>>2]=u,s=0|Qe(0|e,0|r,45),M(),s&=127;A:do{if(0|S(s)){if(0|u)for(o=1;;){if(!(!((l=0|ye(7,0,3*(15-o|0)|0))&e|0)&!((0|M())&r))){a=0;break A}if(!(o>>>0>>0))break;o=o+1|0}if(!(1&a))return l=0|ye(u+1|0,0,52),c=M()|-15728641&r,A((l|e)&~(h=0|ye(7,0,3*(14-u|0)|0)),c&~M(),t),void(I=n);a=1}else a=0}while(0);YA(e,r,f),a?(vA(f,h,c),l=5):(yA(f,h,c),l=6);A:do{if(0|S(s))if(u)for(o=1;;){if(!(!((s=0|ye(7,0,3*(15-o|0)|0))&e|0)&!((0|M())&r))){o=8;break A}if(!(o>>>0>>0)){o=20;break}o=o+1|0}else o=20;else o=8}while(0);if(De(0|t,-1,0|o),a){a=0;do{for(MA(f=c+(a<<4)|0,0|i[h>>2]),f=0|i[f>>2],o=0;!(-1==(0|(u=0|i[(s=t+(o<<2)|0)>>2]))|(0|u)==(0|f));)o=o+1|0;i[s>>2]=f,a=a+1|0}while((0|a)!=(0|l))}else{a=0;do{for(kA(f=c+(a<<4)|0,0|i[h>>2],0,1),f=0|i[f>>2],o=0;!(-1==(0|(u=0|i[(s=t+(o<<2)|0)>>2]))|(0|u)==(0|f));)o=o+1|0;i[s>>2]=f,a=a+1|0}while((0|a)!=(0|l))}I=n},_h3GetResolution:function(A,e){return e=0|Qe(0|(A|=0),0|(e|=0),52),M(),15&e},_h3IndexesAreNeighbors:ZA,_h3IsPentagon:UA,_h3IsResClassIII:function(A,e){return e=0|Qe(0|(A|=0),0|(e|=0),52),M(),1&e},_h3IsValid:FA,_h3Line:function(A,e,r,t,n){r|=0,t|=0,n|=0;var o,a=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,m=0,v=0,k=0,M=0,Q=0;if(o=I,I=I+48|0,s=o+12|0,M=o,!(0|$A(A|=0,e|=0,A,e,a=o+24|0))&&!(0|$A(A,e,r,t,s))){if((0|(k=0|hA(a,s)))<0)return I=o,0|(M=k);for(i[a>>2]=0,i[a+4>>2]=0,i[a+8>>2]=0,i[s>>2]=0,i[s+4>>2]=0,i[s+8>>2]=0,$A(A,e,A,e,a),$A(A,e,r,t,s),gA(a),gA(s),k?(w=+(0|k),v=a,r=c=0|i[a>>2],t=d=0|i[(b=a+4|0)>>2],a=g=0|i[(m=a+8|0)>>2],p=+((0|i[s>>2])-c|0)/w,B=+((0|i[s+4>>2])-d|0)/w,w=+((0|i[s+8>>2])-g|0)/w):(b=t=a+4|0,m=g=a+8|0,v=a,r=0|i[a>>2],t=0|i[t>>2],a=0|i[g>>2],p=0,B=0,w=0),i[M>>2]=r,i[(g=M+4|0)>>2]=t,i[(d=M+8|0)>>2]=a,c=0;;){Q=p*(l=+(0|c))+ +(0|r),u=B*l+ +(0|i[b>>2]),l=w*l+ +(0|i[m>>2]),t=~~+xe(+Q),s=~~+xe(+u),r=~~+xe(+l),Q=+f(+(+(0|t)-Q)),u=+f(+(+(0|s)-u)),l=+f(+(+(0|r)-l));do{if(!(Q>u&Q>l)){if(h=0-t|0,u>l){a=h-r|0;break}a=s,r=h-s|0;break}t=0-(s+r)|0,a=s}while(0);if(i[M>>2]=t,i[g>>2]=a,i[d>>2]=r,wA(M),Ae(A,e,M,n+(c<<3)|0),(0|c)==(0|k))break;c=c+1|0,r=0|i[v>>2]}return I=o,0|(M=0)}return I=o,0|(M=-1)},_h3LineSize:function(A,e,r,t){var i,n,o;return r|=0,t|=0,o=I,I=I+32|0,n=o,A=0|$A(A|=0,e|=0,A,e,i=o+12|0)||0|$A(A,e,r,t,n)?-1:0|hA(i,n),I=o,(A>>>31^1)+A|0},_h3SetToLinkedGeo:function(A,e,r){r|=0;var t,n,o,a=0;if(o=I,I=I+32|0,t=o,function(A,e,r){A|=0,r|=0;var t,n,o=0,a=0,f=0,s=0,u=0;if(n=I,I=I+176|0,t=n,(0|(e|=0))<1)return se(r,0,0),void(I=n);s=0|Qe(0|i[(s=A)>>2],0|i[s+4>>2],52),M(),se(r,(0|e)>6?e:6,15&s),s=0;do{if(jA(0|i[(o=A+(s<<3)|0)>>2],0|i[o+4>>2],t),(0|(o=0|i[t>>2]))>0){u=0;do{f=t+8+(u<<4)|0,(a=0|de(r,o=t+8+((0|(u=u+1|0))%(0|o)<<4)|0,f))?he(r,a):ce(r,f,o),o=0|i[t>>2]}while((0|u)<(0|o))}s=s+1|0}while((0|s)!=(0|e));I=n}(A|=0,e|=0,n=o+16|0),i[r>>2]=0,i[r+4>>2]=0,i[r+8>>2]=0,!(A=0|le(n)))return XA(r),ue(n),void(I=o);do{e=0|JA(r);do{KA(e,A),a=A+16|0,i[t>>2]=i[a>>2],i[t+4>>2]=i[a+4>>2],i[t+8>>2]=i[a+8>>2],i[t+12>>2]=i[a+12>>2],he(n,A),A=0|ge(n,t)}while(0|A);A=0|le(n)}while(0|A);XA(r),ue(n),I=o},_h3ToCenterChild:function(A,e,r){r|=0;var t=0,i=0;if(t=0|Qe(0|(A|=0),0|(e|=0),52),M(),(0|r)<16&(0|(t&=15))<=(0|r)){if((0|t)!=(0|r)&&(A|=i=0|ye(0|r,0,52),e=M()|-15728641&e,(0|t)<(0|r)))do{i=0|ye(7,0,3*(14-t|0)|0),t=t+1|0,A&=~i,e&=~M()}while((0|t)<(0|r))}else e=0,A=0;return k(0|e),0|A},_h3ToChildren:PA,_h3ToGeo:OA,_h3ToGeoBoundary:jA,_h3ToParent:CA,_h3UnidirectionalEdgeIsValid:function(A,e){var r=0;if(!(!0&268435456==(2013265920&(e|=0))))return 0|(r=0);switch(r=0|Qe(0|(A|=0),0|e,56),M(),7&r){case 0:case 7:return 0|(r=0)}return!0&16777216==(117440512&e)&!!(0|UA(A,r=-2130706433&e|134217728))?0|(r=0):0|(r=0|FA(A,r))},_hexAreaKm2:function(A){return+ +n[20496+((A|=0)<<3)>>3]},_hexAreaM2:function(A){return+ +n[20624+((A|=0)<<3)>>3]},_hexRing:function(A,e,r,t){A|=0,e|=0,t|=0;var n,o=0,a=0,f=0,s=0,u=0,l=0,h=0;if(n=I,I=I+16|0,h=n,!(r|=0))return i[(h=t)>>2]=A,i[h+4>>2]=e,I=n,0|(h=0);i[h>>2]=0;A:do{if(0|UA(A,e))A=1;else{if(a=(0|r)>0){o=0,l=A;do{if(!(0|(l=0|U(l,e,4,h)))&!(0|(e=0|M()))){A=2;break A}if(o=o+1|0,0|UA(l,e)){A=1;break A}}while((0|o)<(0|r));if(i[(u=t)>>2]=l,i[u+4>>2]=e,u=r+-1|0,a){a=0,f=1,o=l,A=e;do{if(!(0|(o=0|U(o,A,2,h)))&!(0|(A=0|M()))){A=2;break A}if(i[(s=t+(f<<3)|0)>>2]=o,i[s+4>>2]=A,f=f+1|0,0|UA(o,A)){A=1;break A}a=a+1|0}while((0|a)<(0|r));s=0,a=f;do{if(!(0|(o=0|U(o,A,3,h)))&!(0|(A=0|M()))){A=2;break A}if(i[(f=t+(a<<3)|0)>>2]=o,i[f+4>>2]=A,a=a+1|0,0|UA(o,A)){A=1;break A}s=s+1|0}while((0|s)<(0|r));f=0;do{if(!(0|(o=0|U(o,A,1,h)))&!(0|(A=0|M()))){A=2;break A}if(i[(s=t+(a<<3)|0)>>2]=o,i[s+4>>2]=A,a=a+1|0,0|UA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|r));f=0;do{if(!(0|(o=0|U(o,A,5,h)))&!(0|(A=0|M()))){A=2;break A}if(i[(s=t+(a<<3)|0)>>2]=o,i[s+4>>2]=A,a=a+1|0,0|UA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|r));f=0;do{if(!(0|(o=0|U(o,A,4,h)))&!(0|(A=0|M()))){A=2;break A}if(i[(s=t+(a<<3)|0)>>2]=o,i[s+4>>2]=A,a=a+1|0,0|UA(o,A)){A=1;break A}f=f+1|0}while((0|f)<(0|r));for(f=0;;){if(!(0|(o=0|U(o,A,6,h)))&!(0|(A=0|M()))){A=2;break A}if((0|f)!=(0|u)){if(i[(s=t+(a<<3)|0)>>2]=o,i[s+4>>2]=A,0|UA(o,A)){A=1;break A}a=a+1|0}if((0|(f=f+1|0))>=(0|r)){f=l,a=e;break}}}else f=l,o=l,a=e,A=e}else i[(f=t)>>2]=A,i[f+4>>2]=e,f=A,o=A,a=e,A=e;A=1&((0|f)!=(0|o)|(0|a)!=(0|A))}}while(0);return I=n,0|(h=A)},_i64Subtract:me,_kRing:F,_kRingDistances:function(A,e,r,t,i){var n;if(0|C(A|=0,e|=0,r|=0,t|=0,i|=0)){if(De(0|t,0,(n=1+(0|b(3*r|0,r+1|0))|0)<<3),0|i)return De(0|i,0,n<<2),void P(A,e,r,t,i,n,0);(i=0|be(n,4))&&(P(A,e,r,t,i,n,0),Be(i))}},_llvm_minnum_f64:Ee,_llvm_round_f64:xe,_malloc:pe,_maxFaceCount:function(A,e){var r=0,t=0;if(t=0|Qe(0|(A|=0),0|(e|=0),45),M(),!(0|S(127&t)))return 0|(t=2);if(t=0|Qe(0|A,0|e,52),M(),!(t&=15))return 0|(t=5);for(r=1;;){if(!(!((0|ye(7,0,3*(15-r|0)|0))&A|0)&!((0|M())&e))){r=2,A=6;break}if(!(r>>>0>>0)){r=5,A=6;break}r=r+1|0}return 6==(0|A)?0|r:0},_maxH3ToChildrenSize:function(A,e,r){return r|=0,A=0|Qe(0|(A|=0),0|(e|=0),52),M(),(0|r)<16&(0|(A&=15))<=(0|r)?0|(r=0|ee(7,r-A|0)):0|(r=0)},_maxKringSize:function(A){return 1+(0|b(3*(A|=0)|0,A+1|0))|0},_maxPolyfillSize:function(A,e){e|=0;var r,t=0,n=0,o=0,a=0,f=0;if(r=I,I=I+48|0,o=r+8|0,n=r,a=0|i[(f=A|=0)+4>>2],i[(t=n)>>2]=i[f>>2],i[t+4>>2]=a,te(n,o),o=0|j(o,e),e=0|i[n>>2],(0|(n=0|i[A+8>>2]))<=0)return I=r,0|(f=(f=(a=(0|o)<(0|(f=e)))?f:o)+12|0);t=0|i[A+12>>2],A=0;do{e=(0|i[t+(A<<3)>>2])+e|0,A=A+1|0}while((0|A)<(0|n));return I=r,0|(f=(f=(f=(0|o)<(0|e))?e:o)+12|0)},_maxUncompactSize:function(A,e,r){A|=0,r|=0;var t=0,n=0,o=0,a=0;if((0|(e|=0))<=0)return 0|(r=0);if((0|r)>=16){for(t=0;;){if(!(!(0|i[(a=A+(t<<3)|0)>>2])&!(0|i[a+4>>2]))){t=-1,n=13;break}if((0|(t=t+1|0))>=(0|e)){t=0,n=13;break}}if(13==(0|n))return 0|t}t=0,a=0;A:for(;;){o=0|i[(n=A+(a<<3)|0)>>2],n=0|i[n+4>>2];do{if(!(!(0|o)&!(0|n))){if(n=0|Qe(0|o,0|n,52),M(),(0|(n&=15))>(0|r)){t=-1,n=13;break A}if((0|n)==(0|r)){t=t+1|0;break}t=(0|ee(7,r-n|0))+t|0;break}}while(0);if((0|(a=a+1|0))>=(0|e)){n=13;break}}return 13==(0|n)?0|t:0},_memcpy:_e,_memset:De,_numHexagons:function(A){var e;return A=0|i[(e=21008+((A|=0)<<3)|0)>>2],k(0|i[e+4>>2]),0|A},_pentagonIndexCount:function(){return 12},_pointDistKm:_A,_pointDistM:function(A,e){A|=0;var r,t,i,o=0;return t=+n[(e|=0)>>3],r=+n[A>>3],o=(i=+h(.5*(t-r)))*i+(o=+h(.5*(+n[e+8>>3]-+n[A+8>>3])))*(+l(+t)*+l(+r)*o),2*+p(+ +s(+o),+ +s(+(1-o)))*6371.007180918475*1e3},_pointDistRads:function(A,e){A|=0;var r,t,i,o=0;return t=+n[(e|=0)>>3],r=+n[A>>3],o=(i=+h(.5*(t-r)))*i+(o=+h(.5*(+n[e+8>>3]-+n[A+8>>3])))*(+l(+t)*+l(+r)*o),2*+p(+ +s(+o),+ +s(+(1-o)))},_polyfill:function(A,e,r){var t,n=0,o=0,a=0,f=0,s=0;if(t=I,I=I+48|0,n=t+8|0,o=t,0|function(A,e,r){A|=0,e|=0,r|=0;var t=0,n=0,o=0,a=0,f=0,s=0,u=0,l=0,h=0,c=0,d=0,g=0,w=0,p=0,B=0,b=0,m=0,v=0,k=0,y=0,E=0,x=0,_=0,D=0,F=0,U=0,S=0,T=0,V=0,H=0;H=I,I=I+112|0,U=H+80|0,s=H+72|0,S=H,T=H+56|0,u=A+8|0,V=0|pe(32+(i[u>>2]<<5)|0),V||Q(22848,22448,800,22456);if(ie(A,V),o=A,t=0|i[o+4>>2],f=s,i[f>>2]=i[o>>2],i[f+4>>2]=t,te(s,U),f=0|j(U,e),t=0|i[s>>2],o=0|i[u>>2],(0|o)>0){a=0|i[A+12>>2],n=0;do{t=(0|i[a+(n<<3)>>2])+t|0,n=n+1|0}while((0|n)!=(0|o))}if(f=(0|f)<(0|t)?t:f,F=f+12|0,n=0|be(F,8),l=0|be(F,8),i[U>>2]=0,_=A,D=0|i[_+4>>2],t=s,i[t>>2]=i[_>>2],i[t+4>>2]=D,t=0|G(s,F,e,U,n,l),0|t)return Be(n),Be(l),Be(V),I=H,0|(V=t);A:do{if((0|i[u>>2])>0){for(o=A+12|0,t=0;a=0|G((0|i[o>>2])+(t<<3)|0,F,e,U,n,l),t=t+1|0,!(0|a);)if((0|t)>=(0|i[u>>2]))break A;return Be(n),Be(l),Be(V),I=H,0|(V=a)}}while(0);(0|f)>-12&&De(0|l,0,((0|F)>1?F:1)<<3);A:do{if((0|i[U>>2])>0){D=((0|F)<0)<<31>>31,v=n,k=l,y=n,E=n,x=l,_=n,t=n,p=n,B=l,b=l,m=l,n=l;e:for(;;){for(w=0|i[U>>2],d=0,g=0,o=0;;){f=(a=S)+56|0;do{i[a>>2]=0,a=a+4|0}while((0|a)<(0|f));if(0|C(s=0|i[(e=v+(d<<3)|0)>>2],e=0|i[e+4>>2],1,S,0)){f=(a=S)+56|0;do{i[a>>2]=0,a=a+4|0}while((0|a)<(0|f));0|(a=0|be(7,4))&&(P(s,e,1,S,a,7,0),Be(a))}c=0;do{l=0|i[(h=S+(c<<3)|0)>>2],h=0|i[h+4>>2];r:do{if(!(!(0|l)&!(0|h))){if(s=0|Me(0|l,0|h,0|F,0|D),M(),!(!(0|(e=0|i[(f=a=r+(s<<3)|0)>>2]))&!(0|(f=0|i[f+4>>2]))))for(u=0;;){if((0|u)>(0|F))break e;if((0|e)==(0|l)&(0|f)==(0|h))break r;if(!(0|(e=0|i[(f=a=r+((s=(s+1|0)%(0|F)|0)<<3)|0)>>2]))&!(0|(f=0|i[f+4>>2])))break;u=u+1|0}!(0|l)&!(0|h)||(OA(l,h,T),0|ne(A,V,T)&&(i[(u=a)>>2]=l,i[u+4>>2]=h,i[(u=k+(o<<3)|0)>>2]=l,i[u+4>>2]=h,o=o+1|0))}}while(0);c=c+1|0}while(c>>>0<7);if((0|(g=g+1|0))>=(0|w))break;d=d+1|0}if((0|w)>0&&De(0|y,0,w<<3),i[U>>2]=o,!((0|o)>0))break A;l=n,h=m,c=_,d=b,g=B,w=k,n=p,m=t,b=E,B=y,p=l,t=h,_=x,x=c,E=d,y=g,k=v,v=w}return Be(E),Be(x),Be(V),I=H,0|(V=-1)}t=l}while(0);return Be(V),Be(n),Be(t),V=0,I=H,0|V}(A|=0,e|=0,r|=0)){if(a=0|i[(s=A)+4>>2],i[(f=o)>>2]=i[s>>2],i[f+4>>2]=a,te(o,n),f=0|j(n,e),e=0|i[o>>2],(0|(a=0|i[A+8>>2]))>0){o=0|i[A+12>>2],n=0;do{e=(0|i[o+(n<<3)>>2])+e|0,n=n+1|0}while((0|n)!=(0|a))}(0|(e=(0|f)<(0|e)?e:f))<=-12||De(0|r,0,8+(((0|(s=e+11|0))>0?s:0)<<3)|0),I=t}else I=t},_res0IndexCount:function(){return 122},_round:Ie,_sbrk:Fe,_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(A,e,r,t,n){A|=0,r|=0,t|=0,n|=0;var o=0,a=0,f=0,s=0,u=0,l=0;if((0|(e|=0))<=0)return 0|(n=0);if((0|n)>=16){for(o=0;;){if(!(!(0|i[(l=A+(o<<3)|0)>>2])&!(0|i[l+4>>2]))){o=14;break}if((0|(o=o+1|0))>=(0|e)){a=0,o=16;break}}if(14==(0|o))return 0|((0|t)>0?-2:-1);if(16==(0|o))return 0|a}o=0,l=0;A:for(;;){a=0|i[(f=u=A+(l<<3)|0)>>2],f=0|i[f+4>>2];do{if(!(!(0|a)&!(0|f))){if((0|o)>=(0|t)){a=-1,o=16;break A}if(s=0|Qe(0|a,0|f,52),M(),(0|(s&=15))>(0|n)){a=-2,o=16;break A}if((0|s)==(0|n)){i[(u=r+(o<<3)|0)>>2]=a,i[u+4>>2]=f,o=o+1|0;break}if((0|(a=(0|ee(7,n-s|0))+o|0))>(0|t)){a=-1,o=16;break A}PA(0|i[u>>2],0|i[u+4>>2],n,r+(o<<3)|0),o=a}}while(0);if((0|(l=l+1|0))>=(0|e)){a=0,o=16;break}}return 16==(0|o)?0|a:0},establishStackSpace:function(A,e){I=A|=0},stackAlloc:function(A){var e;return e=I,I=(I=I+(A|=0)|0)+15&-16,0|e},stackRestore:function(A){I=A|=0},stackSave:function(){return 0|I}}}({Math:Math,Int8Array:Int8Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Float32Array:Float32Array,Float64Array:Float64Array},{a:uA,b:function(A){s=A},c:u,d:function(A,e,r,t){uA("Assertion failed: "+g(A)+", at: "+[e?g(e):"unknown filename",r,t?g(t):"unknown function"])},e:function(A){return r.___errno_location&&(m[r.___errno_location()>>2]=A),A},f:W,g:function(A,e,r){B.set(B.subarray(e,e+r),A)},h:function(A){var e=W(),r=16777216,t=2130706432;if(A>t)return!1;for(var i=Math.max(e,16777216);i>1]=e;break;case"i32":m[A>>2]=e;break;case"i64":L=[e>>>0,(R=e,+P(R)>=1?R>0?(0|S(+G(R/4294967296),4294967295))>>>0:~~+U((R-+(~~R>>>0))/4294967296)>>>0:0)],m[A>>2]=L[0],m[A+4>>2]=L[1];break;case"float":v[A>>2]=e;break;case"double":k[A>>3]=e;break;default:uA("invalid type for setValue: "+r)}},r.getValue=function(A,e,r){switch("*"===(e=e||"i8").charAt(e.length-1)&&(e="i32"),e){case"i1":case"i8":return p[A|0];case"i16":return b[A>>1];case"i32":case"i64":return m[A>>2];case"float":return v[A>>2];case"double":return k[A>>3];default:uA("invalid type for getValue: "+e)}return null},r.getTempRet0=u,z){O(z)||(q=z,z=r.locateFile?r.locateFile(q,o):o+q),T++,r.monitorRunDependencies&&r.monitorRunDependencies(T);var nA=function(A){A.byteLength&&(A=new Uint8Array(A)),B.set(A,8),r.memoryInitializerRequest&&delete r.memoryInitializerRequest.response,function(){if(T--,r.monitorRunDependencies&&r.monitorRunDependencies(T),0==T&&(null!==V&&(clearInterval(V),V=null),H)){var A=H;H=null,A()}}()},oA=function(){i(z,nA,function(){throw"could not load memory initializer "+z})},aA=X(z);if(aA)nA(aA.buffer);else if(r.memoryInitializerRequest){var fA=function(){var A=r.memoryInitializerRequest,e=A.response;if(200!==A.status&&0!==A.status){var t=X(r.memoryInitializerRequestURL);if(!t)return console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+A.status+", retrying "+z),void oA();e=t.buffer}nA(e)};r.memoryInitializerRequest.response?setTimeout(fA,0):r.memoryInitializerRequest.addEventListener("load",fA)}else oA()}function sA(A){function e(){$||($=!0,l||(E(_),E(D),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)C(r.postRun.shift());E(I)}()))}A=A||n,T>0||(!function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)F(r.preRun.shift());E(x)}(),T>0||(r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),e()},1)):e()))}function uA(A){throw r.onAbort&&r.onAbort(A),a(A+=""),f(A),l=!0,"abort("+A+"). Build with -s ASSERTIONS=1 for more info."}if(H=function A(){$||sA(),$||(H=A)},r.run=sA,r.abort=uA,r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return sA(),A}("object"==typeof t?t:{}),i="number",n={};[["sizeOfH3Index",i],["sizeOfGeoCoord",i],["sizeOfGeoBoundary",i],["sizeOfGeoPolygon",i],["sizeOfGeofence",i],["sizeOfLinkedGeoPolygon",i],["sizeOfCoordIJ",i],["h3IsValid",i,[i,i]],["geoToH3",i,[i,i,i]],["h3ToGeo",null,[i,i,i]],["h3ToGeoBoundary",null,[i,i,i]],["maxKringSize",i,[i]],["kRing",null,[i,i,i,i]],["kRingDistances",null,[i,i,i,i,i]],["hexRing",null,[i,i,i,i]],["maxPolyfillSize",i,[i,i]],["polyfill",null,[i,i,i]],["h3SetToLinkedGeo",null,[i,i,i]],["destroyLinkedPolygon",null,[i]],["compact",i,[i,i,i]],["uncompact",i,[i,i,i,i,i]],["maxUncompactSize",i,[i,i,i]],["h3IsPentagon",i,[i,i]],["h3IsResClassIII",i,[i,i]],["h3GetBaseCell",i,[i,i]],["h3GetResolution",i,[i,i]],["maxFaceCount",i,[i,i]],["h3GetFaces",null,[i,i,i]],["h3ToParent",i,[i,i,i]],["h3ToChildren",null,[i,i,i,i]],["h3ToCenterChild",i,[i,i,i]],["maxH3ToChildrenSize",i,[i,i,i]],["h3IndexesAreNeighbors",i,[i,i,i,i]],["getH3UnidirectionalEdge",i,[i,i,i,i]],["getOriginH3IndexFromUnidirectionalEdge",i,[i,i]],["getDestinationH3IndexFromUnidirectionalEdge",i,[i,i]],["h3UnidirectionalEdgeIsValid",i,[i,i]],["getH3IndexesFromUnidirectionalEdge",null,[i,i,i]],["getH3UnidirectionalEdgesFromHexagon",null,[i,i,i]],["getH3UnidirectionalEdgeBoundary",null,[i,i,i]],["h3Distance",i,[i,i,i,i]],["h3Line",i,[i,i,i,i,i]],["h3LineSize",i,[i,i,i,i]],["experimentalH3ToLocalIj",i,[i,i,i,i,i]],["experimentalLocalIjToH3",i,[i,i,i,i]],["hexAreaM2",i,[i]],["hexAreaKm2",i,[i]],["edgeLengthM",i,[i]],["edgeLengthKm",i,[i]],["pointDistM",i,[i,i]],["pointDistKm",i,[i,i]],["pointDistRads",i,[i,i]],["cellAreaM2",i,[i,i]],["cellAreaKm2",i,[i,i]],["cellAreaRads2",i,[i,i]],["exactEdgeLengthM",i,[i,i]],["exactEdgeLengthKm",i,[i,i]],["exactEdgeLengthRads",i,[i,i]],["numHexagons",i,[i]],["getRes0Indexes",null,[i]],["res0IndexCount",i],["getPentagonIndexes",null,[i,i]],["pentagonIndexCount",i]].forEach(function(A){n[A[0]]=t.cwrap.apply(t,A)});var o=16,a=n.sizeOfH3Index(),f=n.sizeOfGeoCoord(),s=n.sizeOfGeoBoundary(),u=n.sizeOfGeoPolygon(),l=n.sizeOfGeofence(),h=n.sizeOfLinkedGeoPolygon(),c=n.sizeOfCoordIJ(),d={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function g(A){if("number"!=typeof A||A<0||A>15||Math.floor(A)!==A)throw new Error("Invalid resolution: "+A)}var w=/[^0-9a-fA-F]/;function p(A){if(Array.isArray(A)&&2===A.length&&Number.isInteger(A[0])&&Number.isInteger(A[1]))return A;if("string"!=typeof A||w.test(A))return[0,0];var e=parseInt(A.substring(0,A.length-8),o);return[parseInt(A.substring(A.length-8),o),e]}function B(A){if(A>=0)return A.toString(o);var e=m(8,(A&=2147483647).toString(o));return e=(parseInt(e[0],o)+8).toString(o)+e.substring(1)}function b(A,e){return B(e)+m(8,B(A))}function m(A,e){for(var r=A-e.length,t="",i=0;i=0&&r.push(n)}return r}(a,o);return t._free(a),f},r.h3GetResolution=function(A){var e=p(A),r=e[0],t=e[1];return n.h3IsValid(r,t)?n.h3GetResolution(r,t):-1},r.geoToH3=function(A,e,r){var i=t._malloc(f);t.HEAPF64.set([A,e].map(U),i/8);var o=M(n.geoToH3(i,r));return t._free(i),o},r.h3ToGeo=function(A){var e=t._malloc(f),r=p(A),i=r[0],o=r[1];n.h3ToGeo(i,o,e);var a=I(e);return t._free(e),a},r.h3ToGeoBoundary=function(A,e){var r=t._malloc(s),i=p(A),o=i[0],a=i[1];n.h3ToGeoBoundary(o,a,r);var f=C(r,e,e);return t._free(r),f},r.h3ToParent=function(A,e){var r=p(A),t=r[0],i=r[1];return M(n.h3ToParent(t,i,e))},r.h3ToChildren=function(A,e){if(!P(A))return[];var r=p(A),i=r[0],o=r[1],f=n.maxH3ToChildrenSize(i,o,e),s=t._calloc(f,a);n.h3ToChildren(i,o,e,s);var u=E(s,f);return t._free(s),u},r.h3ToCenterChild=function(A,e){var r=p(A),t=r[0],i=r[1];return M(n.h3ToCenterChild(t,i,e))},r.kRing=function(A,e){var r=p(A),i=r[0],o=r[1],f=n.maxKringSize(e),s=t._calloc(f,a);n.kRing(i,o,e,s);var u=E(s,f);return t._free(s),u},r.kRingDistances=function(A,e){var r=p(A),i=r[0],o=r[1],f=n.maxKringSize(e),s=t._calloc(f,a),u=t._calloc(f,4);n.kRingDistances(i,o,e,s,u);for(var l=[],h=0;h0){r=t._calloc(i,l);for(var f=0;f0){for(var n=t.getValue(A+r,"i32"),o=0;o */ -r.read=function(A,e,r,t,i){var n,o,a=8*i-t-1,f=(1<>1,u=-7,l=r?i-1:0,h=r?-1:1,c=A[e+l];for(l+=h,n=c&(1<<-u)-1,c>>=-u,u+=a;u>0;n=256*n+A[e+l],l+=h,u-=8);for(o=n&(1<<-u)-1,n>>=-u,u+=t;u>0;o=256*o+A[e+l],l+=h,u-=8);if(0===n)n=1-s;else{if(n===f)return o?NaN:1/0*(c?-1:1);o+=Math.pow(2,t),n-=s}return(c?-1:1)*o*Math.pow(2,n-t)},r.write=function(A,e,r,t,i,n){var o,a,f,s=8*n-i-1,u=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,c=t?0:n-1,d=t?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(f=Math.pow(2,-o))<1&&(o--,f*=2),(e+=o+l>=1?h/f:h*Math.pow(2,1-l))*f>=2&&(o++,f/=2),o+l>=u?(a=0,o=u):o+l>=1?(a=(e*f-1)*Math.pow(2,i),o+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),o=0));i>=8;A[r+c]=255&a,c+=d,a/=256,i-=8);for(o=o<0;A[r+c]=255&o,c+=d,o/=256,s-=8);A[r+c-d]|=128*g}},{}],9:[function(A,e,r){"use strict";e.exports=i;var t=A("ieee754");function i(A){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(A)?A:new Uint8Array(A||0),this.pos=0,this.type=0,this.length=this.buf.length}i.Varint=0,i.Fixed64=1,i.Bytes=2,i.Fixed32=5;var n=4294967296,o=1/n,a="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function f(A){return A.type===i.Bytes?A.readVarint()+A.pos:A.pos+1}function s(A,e,r){return r?4294967296*e+(A>>>0):4294967296*(e>>>0)+(A>>>0)}function u(A,e,r){var t=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(t);for(var i=r.pos-1;i>=A;i--)r.buf[i+t]=r.buf[i]}function l(A,e){for(var r=0;r>>8,A[r+2]=e>>>16,A[r+3]=e>>>24}function k(A,e){return(A[e]|A[e+1]<<8|A[e+2]<<16)+(A[e+3]<<24)}i.prototype={destroy:function(){this.buf=null},readFields:function(A,e,r){for(r=r||this.length;this.pos>3,n=this.pos;this.type=7&t,A(i,e,this),this.pos===n&&this.skip(t)}return e},readMessage:function(A,e){return this.readFields(A,e,this.readVarint()+this.pos)},readFixed32:function(){var A=v(this.buf,this.pos);return this.pos+=4,A},readSFixed32:function(){var A=k(this.buf,this.pos);return this.pos+=4,A},readFixed64:function(){var A=v(this.buf,this.pos)+v(this.buf,this.pos+4)*n;return this.pos+=8,A},readSFixed64:function(){var A=v(this.buf,this.pos)+k(this.buf,this.pos+4)*n;return this.pos+=8,A},readFloat:function(){var A=t.read(this.buf,this.pos,!0,23,4);return this.pos+=4,A},readDouble:function(){var A=t.read(this.buf,this.pos,!0,52,8);return this.pos+=8,A},readVarint:function(A){var e,r,t=this.buf;return e=127&(r=t[this.pos++]),r<128?e:(e|=(127&(r=t[this.pos++]))<<7,r<128?e:(e|=(127&(r=t[this.pos++]))<<14,r<128?e:(e|=(127&(r=t[this.pos++]))<<21,r<128?e:function(A,e,r){var t,i,n=r.buf;if(i=n[r.pos++],t=(112&i)>>4,i<128)return s(A,t,e);if(i=n[r.pos++],t|=(127&i)<<3,i<128)return s(A,t,e);if(i=n[r.pos++],t|=(127&i)<<10,i<128)return s(A,t,e);if(i=n[r.pos++],t|=(127&i)<<17,i<128)return s(A,t,e);if(i=n[r.pos++],t|=(127&i)<<24,i<128)return s(A,t,e);if(i=n[r.pos++],t|=(1&i)<<31,i<128)return s(A,t,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=t[this.pos]))<<28,A,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var A=this.readVarint();return A%2==1?(A+1)/-2:A/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var A=this.readVarint()+this.pos,e=this.pos;return this.pos=A,A-e>=12&&a?function(A,e,r){return a.decode(A.subarray(e,r))}(this.buf,e,A):function(A,e,r){var t="",i=e;for(;i239?4:f>223?3:f>191?2:1;if(i+u>r)break;1===u?f<128&&(s=f):2===u?128==(192&(n=A[i+1]))&&(s=(31&f)<<6|63&n)<=127&&(s=null):3===u?(n=A[i+1],o=A[i+2],128==(192&n)&&128==(192&o)&&((s=(15&f)<<12|(63&n)<<6|63&o)<=2047||s>=55296&&s<=57343)&&(s=null)):4===u&&(n=A[i+1],o=A[i+2],a=A[i+3],128==(192&n)&&128==(192&o)&&128==(192&a)&&((s=(15&f)<<18|(63&n)<<12|(63&o)<<6|63&a)<=65535||s>=1114112)&&(s=null)),null===s?(s=65533,u=1):s>65535&&(s-=65536,t+=String.fromCharCode(s>>>10&1023|55296),s=56320|1023&s),t+=String.fromCharCode(s),i+=u}return t}(this.buf,e,A)},readBytes:function(){var A=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,A);return this.pos=A,e},readPackedVarint:function(A,e){if(this.type!==i.Bytes)return A.push(this.readVarint(e));var r=f(this);for(A=A||[];this.pos127;);else if(e===i.Bytes)this.pos=this.readVarint()+this.pos;else if(e===i.Fixed32)this.pos+=4;else{if(e!==i.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(A,e){this.writeVarint(A<<3|e)},realloc:function(A){for(var e=this.length||16;e268435455||A<0?function(A,e){var r,t;A>=0?(r=A%4294967296|0,t=A/4294967296|0):(t=~(-A/4294967296),4294967295^(r=~(-A%4294967296))?r=r+1|0:(r=0,t=t+1|0));if(A>=0x10000000000000000||A<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(A,e,r){r.buf[r.pos++]=127&A|128,A>>>=7,r.buf[r.pos++]=127&A|128,A>>>=7,r.buf[r.pos++]=127&A|128,A>>>=7,r.buf[r.pos++]=127&A|128,A>>>=7,r.buf[r.pos]=127&A}(r,0,e),function(A,e){var r=(7&A)<<4;if(e.buf[e.pos++]|=r|((A>>>=3)?128:0),!A)return;if(e.buf[e.pos++]=127&A|((A>>>=7)?128:0),!A)return;if(e.buf[e.pos++]=127&A|((A>>>=7)?128:0),!A)return;if(e.buf[e.pos++]=127&A|((A>>>=7)?128:0),!A)return;if(e.buf[e.pos++]=127&A|((A>>>=7)?128:0),!A)return;e.buf[e.pos++]=127&A}(t,e)}(A,this):(this.realloc(4),this.buf[this.pos++]=127&A|(A>127?128:0),A<=127||(this.buf[this.pos++]=127&(A>>>=7)|(A>127?128:0),A<=127||(this.buf[this.pos++]=127&(A>>>=7)|(A>127?128:0),A<=127||(this.buf[this.pos++]=A>>>7&127))))},writeSVarint:function(A){this.writeVarint(A<0?2*-A-1:2*A)},writeBoolean:function(A){this.writeVarint(Boolean(A))},writeString:function(A){A=String(A),this.realloc(4*A.length),this.pos++;var e=this.pos;this.pos=function(A,e,r){for(var t,i,n=0;n55295&&t<57344){if(!i){t>56319||n+1===e.length?(A[r++]=239,A[r++]=191,A[r++]=189):i=t;continue}if(t<56320){A[r++]=239,A[r++]=191,A[r++]=189,i=t;continue}t=i-55296<<10|t-56320|65536,i=null}else i&&(A[r++]=239,A[r++]=191,A[r++]=189,i=null);t<128?A[r++]=t:(t<2048?A[r++]=t>>6|192:(t<65536?A[r++]=t>>12|224:(A[r++]=t>>18|240,A[r++]=t>>12&63|128),A[r++]=t>>6&63|128),A[r++]=63&t|128)}return r}(this.buf,A,this.pos);var r=this.pos-e;r>=128&&u(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(A){this.realloc(4),t.write(this.buf,A,this.pos,!0,23,4),this.pos+=4},writeDouble:function(A){this.realloc(8),t.write(this.buf,A,this.pos,!0,52,8),this.pos+=8},writeBytes:function(A){var e=A.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&u(r,t,this),this.pos=r-1,this.writeVarint(t),this.pos+=t},writeMessage:function(A,e,r){this.writeTag(A,i.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(A,e){e.length&&this.writeMessage(A,l,e)},writePackedSVarint:function(A,e){e.length&&this.writeMessage(A,h,e)},writePackedBoolean:function(A,e){e.length&&this.writeMessage(A,g,e)},writePackedFloat:function(A,e){e.length&&this.writeMessage(A,c,e)},writePackedDouble:function(A,e){e.length&&this.writeMessage(A,d,e)},writePackedFixed32:function(A,e){e.length&&this.writeMessage(A,w,e)},writePackedSFixed32:function(A,e){e.length&&this.writeMessage(A,p,e)},writePackedFixed64:function(A,e){e.length&&this.writeMessage(A,B,e)},writePackedSFixed64:function(A,e){e.length&&this.writeMessage(A,b,e)},writeBytesField:function(A,e){this.writeTag(A,i.Bytes),this.writeBytes(e)},writeFixed32Field:function(A,e){this.writeTag(A,i.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(A,e){this.writeTag(A,i.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(A,e){this.writeTag(A,i.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(A,e){this.writeTag(A,i.Fixed64),this.writeSFixed64(e)},writeVarintField:function(A,e){this.writeTag(A,i.Varint),this.writeVarint(e)},writeSVarintField:function(A,e){this.writeTag(A,i.Varint),this.writeSVarint(e)},writeStringField:function(A,e){this.writeTag(A,i.Bytes),this.writeString(e)},writeFloatField:function(A,e){this.writeTag(A,i.Fixed32),this.writeFloat(e)},writeDoubleField:function(A,e){this.writeTag(A,i.Fixed64),this.writeDouble(e)},writeBooleanField:function(A,e){this.writeVarintField(A,Boolean(e))}}},{ieee754:8}],10:[function(A,e,r){var t=A("pbf"),i=A("./lib/geojson_wrapper");function n(A){var e=new t;return function(A,e){for(var r in A.layers)e.writeMessage(3,o,A.layers[r])}(A,e),e.finish()}function o(A,e){var r;e.writeVarintField(15,A.version||1),e.writeStringField(1,A.name||""),e.writeVarintField(5,A.extent||4096);var t={keys:[],values:[],keycache:{},valuecache:{}};for(r=0;r>31}function l(A,e){for(var r=A.loadGeometry(),t=A.type,i=0,n=0,o=r.length,a=0;anew Promise(((r,t)=>{var i;r((i=e,{type:"FeatureCollection",features:A.cells.map((A=>{const e={properties:A,geometry:{type:i.geometry_type,coordinates:i.generate(A.h3id)}};return i.promoteID||(e.id=parseInt(A.h3id,16)),e}))}))})),a=A=>{const e=["type","data","maxzoom","attribution","buffer","filter","tolerance","cluster","clusterRadius","clusterMaxZoom","clusterMinPoints","clusterProperties","lineMetrics","generateId","promoteId"];return f(A,((A,r)=>e.includes(A)))},f=(A,e)=>Object.fromEntries(Object.entries(A).filter((([A,r])=>e(A,r))));t.Map.prototype.addH3TSource=function(A,e){const r=Object.assign({},n,e,{type:"vector",format:"pbf"});r.generate=A=>"Polygon"===r.geometry_type?[i.h3.h3ToGeoBoundary(A,!0)]:i.h3.h3ToGeo(A).reverse(),r.promoteId&&(r.promoteId="h3id"),t.addProtocol("h3tiles",((A,e)=>{const t=`http${!1===r.https?"":"s"}://${A.url.split("://")[1]}`,n=A.url.split(/\/|\./i),a=n.length,f=n.slice(a-4,a-1).map((A=>1*A)),s=new AbortController,u=s.signal;let l;r.timeout>0&&setTimeout((()=>s.abort()),r.timeout),fetch(t,{signal:u}).then((A=>{if(A.ok)return l=performance.now(),A.json();throw new Error(A.statusText)})).then((A=>o(A,r))).then((A=>{const t=i.tovt(A).getTile(...f),n={};n[r.sourcelayer]=t;const o=i.topbf.fromGeojsonVt(n,{version:2});r.debug&&console.log(`${f}: ${A.features.length} features, ${(performance.now()-l).toFixed(0)} ms`),e(null,o,null,null)})).catch((A=>{"AbortError"===A.name&&(A.message=`Timeout: Tile .../${f.join("/")}.h3t is taking too long to fetch`),e(new Error(A))}))})),this.addSource(A,(A=>{const e=["type","url","tiles","bounds","scheme","minzoom","maxzoom","attribution","promoteId","volatile"];return f(A,((A,r)=>e.includes(A)))})(r))};t.Map.prototype.addH3JSource=function(A,e){const r=new AbortController,t=r.signal,f=Object.assign({},n,e,{type:"geojson"});let s;if(f.generate=A=>"Polygon"===f.geometry_type?[i.h3.h3ToGeoBoundary(A,!0)]:i.h3.h3ToGeo(A).reverse(),f.promoteId&&(f.promoteId="h3id"),f.timeout>0&&setTimeout((()=>r.abort()),f.timeout),"string"==typeof f.data)return f.timeout>0&&setTimeout((()=>r.abort()),f.timeout),new Promise(((e,r)=>{fetch(f.data,{signal:t}).then((A=>{if(A.ok)return s=performance.now(),A.json();throw new Error(A.statusText)})).then((A=>o(A,f))).then((r=>{f.data=r,this.addSource(A,a(f)),f.debug&&console.log(`${r.features.length} features, ${(performance.now()-s).toFixed(0)} ms`),e(this)})).catch((A=>{"AbortError"===A.name&&(A.message=`Timeout: Source file ${f.data} is taking too long to fetch`),console.error(A.message)}))}));o(f.data,f).then((e=>(f.data=e,this.addSource(A,a(f)),new Promise(((A,e)=>A(this))))))};t.Map.prototype.setH3JData=function(A,e,r){const t=Object.assign({},n,r);t.generate=A=>"Polygon"===t.geometry_type?[i.h3.h3ToGeoBoundary(A,!0)]:i.h3.h3ToGeo(A).reverse(),t.promoteId&&(t.promoteId="h3id");const a=new AbortController,f=a.signal,s=this.getSource(A);let u;"string"==typeof e?(t.timeout>0&&setTimeout((()=>a.abort()),t.timeout),fetch(e,{signal:f}).then((A=>{if(A.ok)return u=performance.now(),A.json();throw new Error(A.statusText)})).then((A=>o(A,t))).then((A=>{s.setData(A),t.debug&&console.log(`${A.features.length} features, ${(performance.now()-u).toFixed(0)} ms`)})).catch((A=>{"AbortError"===A.name&&(A.message=`Timeout: Data file ${e} is taking too long to fetch`),console.error(A.message)}))):o(e,t).then((A=>s.setData(A)))}},{"geojson-vt":6,"h3-js":7,"vt-pbf":10}]},{},[12])(12)})); \ No newline at end of file +r.read=function(A,e,r,t,i){var n,o,a=8*i-t-1,f=(1<>1,u=-7,l=r?i-1:0,h=r?-1:1,c=A[e+l];for(l+=h,n=c&(1<<-u)-1,c>>=-u,u+=a;u>0;n=256*n+A[e+l],l+=h,u-=8);for(o=n&(1<<-u)-1,n>>=-u,u+=t;u>0;o=256*o+A[e+l],l+=h,u-=8);if(0===n)n=1-s;else{if(n===f)return o?NaN:1/0*(c?-1:1);o+=Math.pow(2,t),n-=s}return(c?-1:1)*o*Math.pow(2,n-t)},r.write=function(A,e,r,t,i,n){var o,a,f,s=8*n-i-1,u=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,c=t?0:n-1,d=t?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(f=Math.pow(2,-o))<1&&(o--,f*=2),(e+=o+l>=1?h/f:h*Math.pow(2,1-l))*f>=2&&(o++,f/=2),o+l>=u?(a=0,o=u):o+l>=1?(a=(e*f-1)*Math.pow(2,i),o+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),o=0));i>=8;A[r+c]=255&a,c+=d,a/=256,i-=8);for(o=o<0;A[r+c]=255&o,c+=d,o/=256,s-=8);A[r+c-d]|=128*g}},{}],9:[function(A,e,r){"use strict";e.exports=i;var t=A("ieee754");function i(A){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(A)?A:new Uint8Array(A||0),this.pos=0,this.type=0,this.length=this.buf.length}i.Varint=0,i.Fixed64=1,i.Bytes=2,i.Fixed32=5;var n=4294967296,o=1/n,a="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8");function f(A){return A.type===i.Bytes?A.readVarint()+A.pos:A.pos+1}function s(A,e,r){return r?4294967296*e+(A>>>0):4294967296*(e>>>0)+(A>>>0)}function u(A,e,r){var t=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(t);for(var i=r.pos-1;i>=A;i--)r.buf[i+t]=r.buf[i]}function l(A,e){for(var r=0;r>>8,A[r+2]=e>>>16,A[r+3]=e>>>24}function k(A,e){return(A[e]|A[e+1]<<8|A[e+2]<<16)+(A[e+3]<<24)}i.prototype={destroy:function(){this.buf=null},readFields:function(A,e,r){for(r=r||this.length;this.pos>3,n=this.pos;this.type=7&t,A(i,e,this),this.pos===n&&this.skip(t)}return e},readMessage:function(A,e){return this.readFields(A,e,this.readVarint()+this.pos)},readFixed32:function(){var A=m(this.buf,this.pos);return this.pos+=4,A},readSFixed32:function(){var A=k(this.buf,this.pos);return this.pos+=4,A},readFixed64:function(){var A=m(this.buf,this.pos)+m(this.buf,this.pos+4)*n;return this.pos+=8,A},readSFixed64:function(){var A=m(this.buf,this.pos)+k(this.buf,this.pos+4)*n;return this.pos+=8,A},readFloat:function(){var A=t.read(this.buf,this.pos,!0,23,4);return this.pos+=4,A},readDouble:function(){var A=t.read(this.buf,this.pos,!0,52,8);return this.pos+=8,A},readVarint:function(A){var e,r,t=this.buf;return e=127&(r=t[this.pos++]),r<128?e:(e|=(127&(r=t[this.pos++]))<<7,r<128?e:(e|=(127&(r=t[this.pos++]))<<14,r<128?e:(e|=(127&(r=t[this.pos++]))<<21,r<128?e:function(A,e,r){var t,i,n=r.buf;if(i=n[r.pos++],t=(112&i)>>4,i<128)return s(A,t,e);if(i=n[r.pos++],t|=(127&i)<<3,i<128)return s(A,t,e);if(i=n[r.pos++],t|=(127&i)<<10,i<128)return s(A,t,e);if(i=n[r.pos++],t|=(127&i)<<17,i<128)return s(A,t,e);if(i=n[r.pos++],t|=(127&i)<<24,i<128)return s(A,t,e);if(i=n[r.pos++],t|=(1&i)<<31,i<128)return s(A,t,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=t[this.pos]))<<28,A,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var A=this.readVarint();return A%2==1?(A+1)/-2:A/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var A=this.readVarint()+this.pos,e=this.pos;return this.pos=A,A-e>=12&&a?function(A,e,r){return a.decode(A.subarray(e,r))}(this.buf,e,A):function(A,e,r){var t="",i=e;for(;i239?4:f>223?3:f>191?2:1;if(i+u>r)break;1===u?f<128&&(s=f):2===u?128==(192&(n=A[i+1]))&&(s=(31&f)<<6|63&n)<=127&&(s=null):3===u?(n=A[i+1],o=A[i+2],128==(192&n)&&128==(192&o)&&((s=(15&f)<<12|(63&n)<<6|63&o)<=2047||s>=55296&&s<=57343)&&(s=null)):4===u&&(n=A[i+1],o=A[i+2],a=A[i+3],128==(192&n)&&128==(192&o)&&128==(192&a)&&((s=(15&f)<<18|(63&n)<<12|(63&o)<<6|63&a)<=65535||s>=1114112)&&(s=null)),null===s?(s=65533,u=1):s>65535&&(s-=65536,t+=String.fromCharCode(s>>>10&1023|55296),s=56320|1023&s),t+=String.fromCharCode(s),i+=u}return t}(this.buf,e,A)},readBytes:function(){var A=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,A);return this.pos=A,e},readPackedVarint:function(A,e){if(this.type!==i.Bytes)return A.push(this.readVarint(e));var r=f(this);for(A=A||[];this.pos127;);else if(e===i.Bytes)this.pos=this.readVarint()+this.pos;else if(e===i.Fixed32)this.pos+=4;else{if(e!==i.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(A,e){this.writeVarint(A<<3|e)},realloc:function(A){for(var e=this.length||16;e268435455||A<0?function(A,e){var r,t;A>=0?(r=A%4294967296|0,t=A/4294967296|0):(t=~(-A/4294967296),4294967295^(r=~(-A%4294967296))?r=r+1|0:(r=0,t=t+1|0));if(A>=0x10000000000000000||A<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(A,e,r){r.buf[r.pos++]=127&A|128,A>>>=7,r.buf[r.pos++]=127&A|128,A>>>=7,r.buf[r.pos++]=127&A|128,A>>>=7,r.buf[r.pos++]=127&A|128,A>>>=7,r.buf[r.pos]=127&A}(r,0,e),function(A,e){var r=(7&A)<<4;if(e.buf[e.pos++]|=r|((A>>>=3)?128:0),!A)return;if(e.buf[e.pos++]=127&A|((A>>>=7)?128:0),!A)return;if(e.buf[e.pos++]=127&A|((A>>>=7)?128:0),!A)return;if(e.buf[e.pos++]=127&A|((A>>>=7)?128:0),!A)return;if(e.buf[e.pos++]=127&A|((A>>>=7)?128:0),!A)return;e.buf[e.pos++]=127&A}(t,e)}(A,this):(this.realloc(4),this.buf[this.pos++]=127&A|(A>127?128:0),A<=127||(this.buf[this.pos++]=127&(A>>>=7)|(A>127?128:0),A<=127||(this.buf[this.pos++]=127&(A>>>=7)|(A>127?128:0),A<=127||(this.buf[this.pos++]=A>>>7&127))))},writeSVarint:function(A){this.writeVarint(A<0?2*-A-1:2*A)},writeBoolean:function(A){this.writeVarint(Boolean(A))},writeString:function(A){A=String(A),this.realloc(4*A.length),this.pos++;var e=this.pos;this.pos=function(A,e,r){for(var t,i,n=0;n55295&&t<57344){if(!i){t>56319||n+1===e.length?(A[r++]=239,A[r++]=191,A[r++]=189):i=t;continue}if(t<56320){A[r++]=239,A[r++]=191,A[r++]=189,i=t;continue}t=i-55296<<10|t-56320|65536,i=null}else i&&(A[r++]=239,A[r++]=191,A[r++]=189,i=null);t<128?A[r++]=t:(t<2048?A[r++]=t>>6|192:(t<65536?A[r++]=t>>12|224:(A[r++]=t>>18|240,A[r++]=t>>12&63|128),A[r++]=t>>6&63|128),A[r++]=63&t|128)}return r}(this.buf,A,this.pos);var r=this.pos-e;r>=128&&u(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(A){this.realloc(4),t.write(this.buf,A,this.pos,!0,23,4),this.pos+=4},writeDouble:function(A){this.realloc(8),t.write(this.buf,A,this.pos,!0,52,8),this.pos+=8},writeBytes:function(A){var e=A.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&u(r,t,this),this.pos=r-1,this.writeVarint(t),this.pos+=t},writeMessage:function(A,e,r){this.writeTag(A,i.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(A,e){e.length&&this.writeMessage(A,l,e)},writePackedSVarint:function(A,e){e.length&&this.writeMessage(A,h,e)},writePackedBoolean:function(A,e){e.length&&this.writeMessage(A,g,e)},writePackedFloat:function(A,e){e.length&&this.writeMessage(A,c,e)},writePackedDouble:function(A,e){e.length&&this.writeMessage(A,d,e)},writePackedFixed32:function(A,e){e.length&&this.writeMessage(A,w,e)},writePackedSFixed32:function(A,e){e.length&&this.writeMessage(A,p,e)},writePackedFixed64:function(A,e){e.length&&this.writeMessage(A,B,e)},writePackedSFixed64:function(A,e){e.length&&this.writeMessage(A,b,e)},writeBytesField:function(A,e){this.writeTag(A,i.Bytes),this.writeBytes(e)},writeFixed32Field:function(A,e){this.writeTag(A,i.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(A,e){this.writeTag(A,i.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(A,e){this.writeTag(A,i.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(A,e){this.writeTag(A,i.Fixed64),this.writeSFixed64(e)},writeVarintField:function(A,e){this.writeTag(A,i.Varint),this.writeVarint(e)},writeSVarintField:function(A,e){this.writeTag(A,i.Varint),this.writeSVarint(e)},writeStringField:function(A,e){this.writeTag(A,i.Bytes),this.writeString(e)},writeFloatField:function(A,e){this.writeTag(A,i.Fixed32),this.writeFloat(e)},writeDoubleField:function(A,e){this.writeTag(A,i.Fixed64),this.writeDouble(e)},writeBooleanField:function(A,e){this.writeVarintField(A,Boolean(e))}}},{ieee754:8}],10:[function(A,e,r){var t=A("pbf"),i=A("./lib/geojson_wrapper");function n(A){var e=new t;return function(A,e){for(var r in A.layers)e.writeMessage(3,o,A.layers[r])}(A,e),e.finish()}function o(A,e){var r;e.writeVarintField(15,A.version||1),e.writeStringField(1,A.name||""),e.writeVarintField(5,A.extent||4096);var t={keys:[],values:[],keycache:{},valuecache:{}};for(r=0;r>31}function l(A,e){for(var r=A.loadGeometry(),t=A.type,i=0,n=0,o=r.length,a=0;anew Promise((r,t)=>{var i;r((i=e,{type:"FeatureCollection",features:A.cells.map(A=>{const e={properties:A,geometry:{type:i.geometry_type,coordinates:i.generate(A.h3id)}};return i.promoteID||(e.id=parseInt(A.h3id,16)),e})}))}),a=A=>{const e=["type","data","maxzoom","attribution","buffer","filter","tolerance","cluster","clusterRadius","clusterMaxZoom","clusterMinPoints","clusterProperties","lineMetrics","generateId","promoteId"];return f(A,(A,r)=>e.includes(A))},f=(A,e)=>Object.fromEntries(Object.entries(A).filter(([A,r])=>e(A,r)));t.Map.prototype.addH3TSource=function(A,e){const r=Object.assign({},n,e,{type:"vector",format:"pbf"});r.generate=A=>"Polygon"===r.geometry_type?[i.h3.h3ToGeoBoundary(A,!0)]:i.h3.h3ToGeo(A).reverse(),r.promoteId&&(r.promoteId="h3id"),t.__h3tSchemeCounter=(t.__h3tSchemeCounter||0)+1;const a=`h3t${t.__h3tSchemeCounter}`;Array.isArray(r.tiles)&&(r.tiles=r.tiles.map(A=>"string"==typeof A&&A.startsWith("h3tiles://")?a+"://"+A.slice(10):A)),r.debug&&console.log(`[h3t] addSource "${A}" → scheme "${a}", sourcelayer="${r.sourcelayer}"`),t.addProtocol(a,(A,e)=>{const t="function"!=typeof e,n=`http${!1===r.https?"":"s"}://${A.url.split("://")[1]}`,a=A.url.split("?")[0].match(/\/(\d+)\/(\d+)\/(\d+)\.h3t$/);if(!a){const r=new Error(`h3t: cannot parse {z}/{x}/{y} from URL: ${A.url}`);return t?Promise.reject(r):(e(r),{cancel:()=>{}})}const f=[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)],s=t&&e&&e.signal?e:new AbortController,u=s.signal;let l;r.timeout>0&&setTimeout(()=>s.abort(),r.timeout);const h=()=>fetch(n,{signal:u}).then(A=>{if(A.ok)return l=performance.now(),A.json();throw new Error(A.statusText)}).then(A=>o(A,r)).then(A=>{const e=i.tovt(A).getTile(...f);if(!e)return r.debug&&console.log(`[h3t] ${f}: 0 features (empty tile), ${(performance.now()-l).toFixed(0)} ms`),new ArrayBuffer(0);const t={};t[r.sourcelayer]=e;const n=i.topbf.fromGeojsonVt(t,{version:2});return r.debug&&console.log(`[h3t] ${f}: ${A.features.length} feats (g), ${e.features?e.features.length:"?"} feats (tile), sourcelayer=${r.sourcelayer}, ${n.byteLength}B, ${(performance.now()-l).toFixed(0)} ms`),n.buffer?n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength):n});return t?h().then(A=>({data:A})).catch(A=>{throw"AbortError"===A.name&&(A=new Error(`Timeout: Tile .../${f.join("/")}.h3t is taking too long to fetch`)),A}):(h().then(A=>e(null,A,null,null)).catch(A=>{"AbortError"===A.name&&(A.message=`Timeout: Tile .../${f.join("/")}.h3t is taking too long to fetch`),e(A)}),{cancel:()=>s.abort()})}),this.addSource(A,(A=>{const e=["type","url","tiles","bounds","scheme","minzoom","maxzoom","attribution","promoteId","volatile"];return f(A,(A,r)=>e.includes(A))})(r))};t.Map.prototype.addH3JSource=function(A,e){const r=new AbortController,t=r.signal,f=Object.assign({},n,e,{type:"geojson"});let s;if(f.generate=A=>"Polygon"===f.geometry_type?[i.h3.h3ToGeoBoundary(A,!0)]:i.h3.h3ToGeo(A).reverse(),f.promoteId&&(f.promoteId="h3id"),f.timeout>0&&setTimeout(()=>r.abort(),f.timeout),"string"==typeof f.data)return f.timeout>0&&setTimeout(()=>r.abort(),f.timeout),new Promise((e,r)=>{fetch(f.data,{signal:t}).then(A=>{if(A.ok)return s=performance.now(),A.json();throw new Error(A.statusText)}).then(A=>o(A,f)).then(r=>{f.data=r,this.addSource(A,a(f)),f.debug&&console.log(`${r.features.length} features, ${(performance.now()-s).toFixed(0)} ms`),e(this)}).catch(A=>{"AbortError"===A.name&&(A.message=`Timeout: Source file ${f.data} is taking too long to fetch`),console.error(A.message)})});o(f.data,f).then(e=>(f.data=e,this.addSource(A,a(f)),new Promise((A,e)=>A(this))))};t.Map.prototype.setH3JData=function(A,e,r){const t=Object.assign({},n,r);t.generate=A=>"Polygon"===t.geometry_type?[i.h3.h3ToGeoBoundary(A,!0)]:i.h3.h3ToGeo(A).reverse(),t.promoteId&&(t.promoteId="h3id");const a=new AbortController,f=a.signal,s=this.getSource(A);let u;"string"==typeof e?(t.timeout>0&&setTimeout(()=>a.abort(),t.timeout),fetch(e,{signal:f}).then(A=>{if(A.ok)return u=performance.now(),A.json();throw new Error(A.statusText)}).then(A=>o(A,t)).then(A=>{s.setData(A),t.debug&&console.log(`${A.features.length} features, ${(performance.now()-u).toFixed(0)} ms`)}).catch(A=>{"AbortError"===A.name&&(A.message=`Timeout: Data file ${e} is taking too long to fetch`),console.error(A.message)})):o(e,t).then(A=>s.setData(A))}},{"geojson-vt":6,"h3-js":7,"vt-pbf":10}]},{},[12])(12)}); \ No newline at end of file diff --git a/inst/htmlwidgets/maplibregl.js b/inst/htmlwidgets/maplibregl.js index 5b1745c8..0285a406 100644 --- a/inst/htmlwidgets/maplibregl.js +++ b/inst/htmlwidgets/maplibregl.js @@ -1309,6 +1309,22 @@ HTMLWidgets.widget({ } }); } + if (x.h3t_sources) { + x.h3t_sources.forEach(function (source) { + map.addH3TSource(source.id, { + tiles: source.tiles, + sourcelayer: source.sourcelayer, + geometry_type: source.geometry_type, + minzoom: source.minzoom, + maxzoom: source.maxzoom, + promoteId: source.promoteId, + debug: source.debug, + }); + if (x.layers) { + x.layers.forEach((layer) => add_my_layers(layer)); + } + }); + } // Add layers if provided if (x.layers) { @@ -2568,6 +2584,30 @@ if (HTMLWidgets.shinyMode) { map.setFilter(message.layer, message.filter); // Track filter state for layer restoration layerState.filters[message.layer] = message.filter; + } else if (message.type === "add_h3t_sources") { + (message.h3t_sources || []).forEach(function (source) { + try { + map.addH3TSource(source.id, { + tiles: source.tiles, + sourcelayer: source.sourcelayer, + geometry_type: source.geometry_type, + minzoom: source.minzoom, + maxzoom: source.maxzoom, + promoteId: source.promoteId, + debug: source.debug, + }); + } catch (e) { + console.error("addH3TSource failed for", source.id, e); + } + }); + } else if (message.type === "add_h3j_sources") { + (message.h3j_sources || []).forEach(async function (source) { + try { + await map.addH3JSource(source.id, { data: source.url }); + } catch (e) { + console.error("addH3JSource failed for", source.id, e); + } + }); } else if (message.type === "add_source") { if (message.source.type === "vector") { const sourceConfig = { diff --git a/inst/htmlwidgets/maplibregl.yaml b/inst/htmlwidgets/maplibregl.yaml index d4816a7c..f989f01a 100644 --- a/inst/htmlwidgets/maplibregl.yaml +++ b/inst/htmlwidgets/maplibregl.yaml @@ -46,7 +46,7 @@ dependencies: script: - "pmtiles.js" - name: h3j-h3t - version: 0.9.2 + version: 0.9.7 src: "htmlwidgets/lib/h3j-h3t" script: - "h3j_h3t.js" diff --git a/inst/htmlwidgets/maplibregl_compare.js b/inst/htmlwidgets/maplibregl_compare.js index d3fe96de..bf3490a4 100644 --- a/inst/htmlwidgets/maplibregl_compare.js +++ b/inst/htmlwidgets/maplibregl_compare.js @@ -1,3 +1,7 @@ +// build marker for bbest/mapgl feat/add-h3t-source — bump on every JS change +window.__mapgl_h3t_build = "2026-04-22g"; +console.log("[mapgl] maplibregl_compare.js build:", window.__mapgl_h3t_build); + function evaluateExpression(expression, properties) { if (!Array.isArray(expression)) { return expression; @@ -3046,6 +3050,20 @@ HTMLWidgets.widget({ }); }); } + // Process H3T (tiled h3j) sources if provided + if (mapData.h3t_sources) { + mapData.h3t_sources.forEach(function (source) { + map.addH3TSource(source.id, { + tiles: source.tiles, + sourcelayer: source.sourcelayer, + geometry_type: source.geometry_type, + minzoom: source.minzoom, + maxzoom: source.maxzoom, + promoteId: source.promoteId, + debug: source.debug, + }); + }); + } if (mapData.markers) { if (!window.maplibreglMarkers) { @@ -4227,12 +4245,18 @@ HTMLWidgets.widget({ link.setAttribute("data-layer-ids", JSON.stringify(layerIds)); link.setAttribute("data-layer-type", config.type); - // Check if the first layer's visibility is set to "none" initially + // Check if the first layer's visibility is set to "none" initially. + // In a compare widget each side only has its own layers, but a single + // layers_control can reference ids from both sides (e.g. "sp" and "env") + // so the toggle can fire on both maps. If the first id isn't present on + // this map, fall back to "visible". We pre-check with getLayer() because + // getLayoutProperty() on a missing layer fires an error event (not a + // throw), which try/catch cannot silence. const firstLayerId = layerIds[0]; - const initialVisibility = map.getLayoutProperty( - firstLayerId, - "visibility", - ); + let initialVisibility = "visible"; + if (map.getLayer(firstLayerId)) { + initialVisibility = map.getLayoutProperty(firstLayerId, "visibility") || "visible"; + } link.className = initialVisibility === "none" ? "" : "active"; // Show or hide layer(s) when the toggle is clicked @@ -4244,17 +4268,22 @@ HTMLWidgets.widget({ const layerIds = JSON.parse( this.getAttribute("data-layer-ids"), ); + // read visibility from whichever map actually has this layer + // (pre-check with getLayer() — getLayoutProperty fires an error + // event on missing layers and try/catch cannot silence it) const firstLayerId = layerIds[0]; - const visibility = map.getLayoutProperty( - firstLayerId, - "visibility", - ); - - const newVis = visibility === "visible" ? "none" : "visible"; + let visibility; + for (const m of [map, beforeMap, afterMap]) { + if (!m || !m.getLayer(firstLayerId)) continue; + visibility = m.getLayoutProperty(firstLayerId, "visibility"); + if (visibility !== undefined) break; + } + const newVis = (visibility || "visible") === "visible" ? "none" : "visible"; const allMaps = [beforeMap, afterMap]; layerIds.forEach((layerId) => { allMaps.forEach((m) => { - try { m.setLayoutProperty(layerId, "visibility", newVis); } catch(err) {} + if (!m || !m.getLayer(layerId)) return; + m.setLayoutProperty(layerId, "visibility", newVis); }); }); this.className = newVis === "visible" ? "active" : ""; diff --git a/inst/htmlwidgets/maplibregl_compare.yaml b/inst/htmlwidgets/maplibregl_compare.yaml index 1e0da3a3..1dd9c480 100644 --- a/inst/htmlwidgets/maplibregl_compare.yaml +++ b/inst/htmlwidgets/maplibregl_compare.yaml @@ -53,7 +53,7 @@ dependencies: script: - "pmtiles.js" - name: h3j-h3t - version: 0.9.2 + version: 0.9.7 src: "htmlwidgets/lib/h3j-h3t" script: - "h3j_h3t.js" diff --git a/man/add_h3t_source.Rd b/man/add_h3t_source.Rd new file mode 100644 index 00000000..14c2002d --- /dev/null +++ b/man/add_h3t_source.Rd @@ -0,0 +1,71 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/h3j-h3t.R +\name{add_h3t_source} +\alias{add_h3t_source} +\title{Add a tiled hexagon source from the H3 geospatial indexing system.} +\usage{ +add_h3t_source( + map, + id, + tiles, + sourcelayer = id, + geometry_type = c("Polygon", "Point"), + minzoom = 0, + maxzoom = 14, + promote_id = TRUE, + debug = FALSE +) +} +\arguments{ +\item{map}{A map object created by \code{maplibre()} or a \code{maplibre_proxy}.} + +\item{id}{Unique source ID.} + +\item{tiles}{A character vector of tile URL templates, each using the +\verb{h3tiles://} scheme. The tokens \code{{z}}, \code{{x}}, \code{{y}} are substituted by +MapLibre on each tile request. Example: +\code{"h3tiles://h3t.example.com/{z}/{x}/{y}.h3t?q=..."}.} + +\item{sourcelayer}{Name of the source layer that downstream \code{add_fill_layer()} +(or similar) calls reference via \code{source_layer}. Defaults to \code{id}.} + +\item{geometry_type}{Either \code{"Polygon"} (hex boundaries) or \code{"Point"} (cell +centroids). Defaults to \code{"Polygon"}.} + +\item{minzoom, maxzoom}{Zoom bounds for the source (MapLibre semantics).} + +\item{promote_id}{Whether to promote the \code{h3id} property to the feature ID.} + +\item{debug}{If \code{TRUE}, the protocol handler logs per-tile timing to the +browser console.} +} +\description{ +Wraps the \href{https://github.com/INSPIDE/h3j-h3t}{h3t} tile protocol, which +registers a \verb{h3tiles://} MapLibre protocol and fetches H3J-formatted JSON +tiles from a \code{{z}/{x}/{y}} endpoint. Unlike \code{\link[=add_h3j_source]{add_h3j_source()}}, which pulls +a single H3J file, this source lets the map request only the cells visible +in the current viewport — on pan/zoom the protocol handler fires a fresh +request per tile. +} +\examples{ +\dontshow{if (interactive()) withAutoprint(\{ # examplesIf} +maplibre(center = c(-119, 34), zoom = 5) |> + add_h3t_source( + id = "sardine", + tiles = "h3tiles://h3t.example.com/{z}/{x}/{y}.h3t?q=" + ) |> + add_fill_layer( + id = "sardine", + source = "sardine", + source_layer = "sardine", + fill_color = interpolate( + column = "value", values = c(0, 100), + stops = c("#ffffcc", "#e31a1c") + ), + fill_opacity = 0.7 + ) +\dontshow{\}) # examplesIf} +} +\references{ +https://github.com/INSPIDE/h3j-h3t +}