@eyepop.ai/eyepop 3.14.2 → 3.14.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/mime-db/db.json","../../../node_modules/mime-db/index.js","../../../node_modules/mime-types/index.js","../types.ts","../streaming.ts","../worker/worker_types.ts","../worker/webrtc_whip.ts","../worker/webrtc_base.ts","../worker/jobs.ts","../shims/local_file.ts","../shims/http_client.ts","../semaphore.ts","../endpoint.ts","../shims/browser_session.ts","../worker/worker_options.ts","../worker/worker_endpoint.ts","../shims/websockets.ts","../../../node_modules/url-join/lib/url-join.js","../data/data_types.ts","../data/jobs.ts","../data/data_endpoint.ts","../worker/webrtc_whep.ts","../index.ts"],"sourcesContent":["{\n \"application/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"application/3gpdash-qoe-report+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/3gpp-ims+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphalforms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/a2l\": {\n \"source\": \"iana\"\n },\n \"application/ace+cbor\": {\n \"source\": \"iana\"\n },\n \"application/activemessage\": {\n \"source\": \"iana\"\n },\n \"application/activity+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-directory+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcost+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcostparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointprop+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointpropparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-error+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamcontrol+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/aml\": {\n \"source\": \"iana\"\n },\n \"application/andrew-inset\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez\"]\n },\n \"application/applefile\": {\n \"source\": \"iana\"\n },\n \"application/applixware\": {\n \"source\": \"apache\",\n \"extensions\": [\"aw\"]\n },\n \"application/at+jwt\": {\n \"source\": \"iana\"\n },\n \"application/atf\": {\n \"source\": \"iana\"\n },\n \"application/atfx\": {\n \"source\": \"iana\"\n },\n \"application/atom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atom\"]\n },\n \"application/atomcat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomcat\"]\n },\n \"application/atomdeleted+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomdeleted\"]\n },\n \"application/atomicmail\": {\n \"source\": \"iana\"\n },\n \"application/atomsvc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomsvc\"]\n },\n \"application/atsc-dwd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dwd\"]\n },\n \"application/atsc-dynamic-event-message\": {\n \"source\": \"iana\"\n },\n \"application/atsc-held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"held\"]\n },\n \"application/atsc-rdt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/atsc-rsat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsat\"]\n },\n \"application/atxml\": {\n \"source\": \"iana\"\n },\n \"application/auth-policy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/bacnet-xdd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/batch-smtp\": {\n \"source\": \"iana\"\n },\n \"application/bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/beep+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/calendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/calendar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xcs\"]\n },\n \"application/call-completion\": {\n \"source\": \"iana\"\n },\n \"application/cals-1840\": {\n \"source\": \"iana\"\n },\n \"application/captive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cbor\": {\n \"source\": \"iana\"\n },\n \"application/cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/cccex\": {\n \"source\": \"iana\"\n },\n \"application/ccmp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ccxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ccxml\"]\n },\n \"application/cdfx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdfx\"]\n },\n \"application/cdmi-capability\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmia\"]\n },\n \"application/cdmi-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmic\"]\n },\n \"application/cdmi-domain\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmid\"]\n },\n \"application/cdmi-object\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmio\"]\n },\n \"application/cdmi-queue\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmiq\"]\n },\n \"application/cdni\": {\n \"source\": \"iana\"\n },\n \"application/cea\": {\n \"source\": \"iana\"\n },\n \"application/cea-2018+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cellml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cfw\": {\n \"source\": \"iana\"\n },\n \"application/city+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clr\": {\n \"source\": \"iana\"\n },\n \"application/clue+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clue_info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cms\": {\n \"source\": \"iana\"\n },\n \"application/cnrp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-group+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-payload\": {\n \"source\": \"iana\"\n },\n \"application/commonground\": {\n \"source\": \"iana\"\n },\n \"application/conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cose\": {\n \"source\": \"iana\"\n },\n \"application/cose-key\": {\n \"source\": \"iana\"\n },\n \"application/cose-key-set\": {\n \"source\": \"iana\"\n },\n \"application/cpl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cpl\"]\n },\n \"application/csrattrs\": {\n \"source\": \"iana\"\n },\n \"application/csta+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cstadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/csvm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cu-seeme\": {\n \"source\": \"apache\",\n \"extensions\": [\"cu\"]\n },\n \"application/cwt\": {\n \"source\": \"iana\"\n },\n \"application/cybercash\": {\n \"source\": \"iana\"\n },\n \"application/dart\": {\n \"compressible\": true\n },\n \"application/dash+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpd\"]\n },\n \"application/dash-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpp\"]\n },\n \"application/dashdelta\": {\n \"source\": \"iana\"\n },\n \"application/davmount+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"davmount\"]\n },\n \"application/dca-rft\": {\n \"source\": \"iana\"\n },\n \"application/dcd\": {\n \"source\": \"iana\"\n },\n \"application/dec-dx\": {\n \"source\": \"iana\"\n },\n \"application/dialog-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom\": {\n \"source\": \"iana\"\n },\n \"application/dicom+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dii\": {\n \"source\": \"iana\"\n },\n \"application/dit\": {\n \"source\": \"iana\"\n },\n \"application/dns\": {\n \"source\": \"iana\"\n },\n \"application/dns+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dns-message\": {\n \"source\": \"iana\"\n },\n \"application/docbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dbk\"]\n },\n \"application/dots+cbor\": {\n \"source\": \"iana\"\n },\n \"application/dskpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dssc+der\": {\n \"source\": \"iana\",\n \"extensions\": [\"dssc\"]\n },\n \"application/dssc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdssc\"]\n },\n \"application/dvcs\": {\n \"source\": \"iana\"\n },\n \"application/ecmascript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es\",\"ecma\"]\n },\n \"application/edi-consent\": {\n \"source\": \"iana\"\n },\n \"application/edi-x12\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/edifact\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/efi\": {\n \"source\": \"iana\"\n },\n \"application/elm+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/elm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.cap+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/emergencycalldata.comment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.deviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.ecall.msd\": {\n \"source\": \"iana\"\n },\n \"application/emergencycalldata.providerinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.serviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.subscriberinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.veds+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emma+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emma\"]\n },\n \"application/emotionml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emotionml\"]\n },\n \"application/encaprtp\": {\n \"source\": \"iana\"\n },\n \"application/epp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/epub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"epub\"]\n },\n \"application/eshop\": {\n \"source\": \"iana\"\n },\n \"application/exi\": {\n \"source\": \"iana\",\n \"extensions\": [\"exi\"]\n },\n \"application/expect-ct-report+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/express\": {\n \"source\": \"iana\",\n \"extensions\": [\"exp\"]\n },\n \"application/fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/fastsoap\": {\n \"source\": \"iana\"\n },\n \"application/fdt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fdt\"]\n },\n \"application/fhir+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fhir+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fido.trusted-apps+json\": {\n \"compressible\": true\n },\n \"application/fits\": {\n \"source\": \"iana\"\n },\n \"application/flexfec\": {\n \"source\": \"iana\"\n },\n \"application/font-sfnt\": {\n \"source\": \"iana\"\n },\n \"application/font-tdpfr\": {\n \"source\": \"iana\",\n \"extensions\": [\"pfr\"]\n },\n \"application/font-woff\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/framework-attributes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"geojson\"]\n },\n \"application/geo+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/geopackage+sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/geoxacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/gltf-buffer\": {\n \"source\": \"iana\"\n },\n \"application/gml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gml\"]\n },\n \"application/gpx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"gpx\"]\n },\n \"application/gxf\": {\n \"source\": \"apache\",\n \"extensions\": [\"gxf\"]\n },\n \"application/gzip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gz\"]\n },\n \"application/h224\": {\n \"source\": \"iana\"\n },\n \"application/held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/hjson\": {\n \"extensions\": [\"hjson\"]\n },\n \"application/http\": {\n \"source\": \"iana\"\n },\n \"application/hyperstudio\": {\n \"source\": \"iana\",\n \"extensions\": [\"stk\"]\n },\n \"application/ibe-key-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pkg-reply+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pp-data\": {\n \"source\": \"iana\"\n },\n \"application/iges\": {\n \"source\": \"iana\"\n },\n \"application/im-iscomposing+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/index\": {\n \"source\": \"iana\"\n },\n \"application/index.cmd\": {\n \"source\": \"iana\"\n },\n \"application/index.obj\": {\n \"source\": \"iana\"\n },\n \"application/index.response\": {\n \"source\": \"iana\"\n },\n \"application/index.vnd\": {\n \"source\": \"iana\"\n },\n \"application/inkml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ink\",\"inkml\"]\n },\n \"application/iotp\": {\n \"source\": \"iana\"\n },\n \"application/ipfix\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipfix\"]\n },\n \"application/ipp\": {\n \"source\": \"iana\"\n },\n \"application/isup\": {\n \"source\": \"iana\"\n },\n \"application/its+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"its\"]\n },\n \"application/java-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jar\",\"war\",\"ear\"]\n },\n \"application/java-serialized-object\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"ser\"]\n },\n \"application/java-vm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"class\"]\n },\n \"application/javascript\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"js\",\"mjs\"]\n },\n \"application/jf2feed+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jose\": {\n \"source\": \"iana\"\n },\n \"application/jose+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jrd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jscalendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"json\",\"map\"]\n },\n \"application/json-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json-seq\": {\n \"source\": \"iana\"\n },\n \"application/json5\": {\n \"extensions\": [\"json5\"]\n },\n \"application/jsonml+json\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"jsonml\"]\n },\n \"application/jwk+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwk-set+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwt\": {\n \"source\": \"iana\"\n },\n \"application/kpml-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/kpml-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ld+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"jsonld\"]\n },\n \"application/lgr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lgr\"]\n },\n \"application/link-format\": {\n \"source\": \"iana\"\n },\n \"application/load-control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lost+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lostxml\"]\n },\n \"application/lostsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lpf+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/lxf\": {\n \"source\": \"iana\"\n },\n \"application/mac-binhex40\": {\n \"source\": \"iana\",\n \"extensions\": [\"hqx\"]\n },\n \"application/mac-compactpro\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpt\"]\n },\n \"application/macwriteii\": {\n \"source\": \"iana\"\n },\n \"application/mads+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mads\"]\n },\n \"application/manifest+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"webmanifest\"]\n },\n \"application/marc\": {\n \"source\": \"iana\",\n \"extensions\": [\"mrc\"]\n },\n \"application/marcxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mrcx\"]\n },\n \"application/mathematica\": {\n \"source\": \"iana\",\n \"extensions\": [\"ma\",\"nb\",\"mb\"]\n },\n \"application/mathml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mathml\"]\n },\n \"application/mathml-content+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mathml-presentation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-associated-procedure-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-deregister+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-envelope+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-protection-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-reception-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-schedule+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-user-service-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbox\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbox\"]\n },\n \"application/media-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpf\"]\n },\n \"application/media_control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mediaservercontrol+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mscml\"]\n },\n \"application/merge-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/metalink+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"metalink\"]\n },\n \"application/metalink4+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"meta4\"]\n },\n \"application/mets+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mets\"]\n },\n \"application/mf4\": {\n \"source\": \"iana\"\n },\n \"application/mikey\": {\n \"source\": \"iana\"\n },\n \"application/mipc\": {\n \"source\": \"iana\"\n },\n \"application/missing-blocks+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/mmt-aei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"maei\"]\n },\n \"application/mmt-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musd\"]\n },\n \"application/mods+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mods\"]\n },\n \"application/moss-keys\": {\n \"source\": \"iana\"\n },\n \"application/moss-signature\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-data\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-request\": {\n \"source\": \"iana\"\n },\n \"application/mp21\": {\n \"source\": \"iana\",\n \"extensions\": [\"m21\",\"mp21\"]\n },\n \"application/mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"mp4s\",\"m4p\"]\n },\n \"application/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod-xmt\": {\n \"source\": \"iana\"\n },\n \"application/mrb-consumer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mrb-publish+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/msc-ivr+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msc-mixer+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msword\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"doc\",\"dot\"]\n },\n \"application/mud+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/multipart-core\": {\n \"source\": \"iana\"\n },\n \"application/mxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxf\"]\n },\n \"application/n-quads\": {\n \"source\": \"iana\",\n \"extensions\": [\"nq\"]\n },\n \"application/n-triples\": {\n \"source\": \"iana\",\n \"extensions\": [\"nt\"]\n },\n \"application/nasdata\": {\n \"source\": \"iana\"\n },\n \"application/news-checkgroups\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-groupinfo\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-transmission\": {\n \"source\": \"iana\"\n },\n \"application/nlsml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/node\": {\n \"source\": \"iana\",\n \"extensions\": [\"cjs\"]\n },\n \"application/nss\": {\n \"source\": \"iana\"\n },\n \"application/oauth-authz-req+jwt\": {\n \"source\": \"iana\"\n },\n \"application/oblivious-dns-message\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-request\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-response\": {\n \"source\": \"iana\"\n },\n \"application/octet-stream\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n },\n \"application/oda\": {\n \"source\": \"iana\",\n \"extensions\": [\"oda\"]\n },\n \"application/odm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/odx\": {\n \"source\": \"iana\"\n },\n \"application/oebps-package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"opf\"]\n },\n \"application/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogx\"]\n },\n \"application/omdoc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"omdoc\"]\n },\n \"application/onenote\": {\n \"source\": \"apache\",\n \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]\n },\n \"application/opc-nodeset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/oscore\": {\n \"source\": \"iana\"\n },\n \"application/oxps\": {\n \"source\": \"iana\",\n \"extensions\": [\"oxps\"]\n },\n \"application/p21\": {\n \"source\": \"iana\"\n },\n \"application/p21+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/p2p-overlay+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"relo\"]\n },\n \"application/parityfec\": {\n \"source\": \"iana\"\n },\n \"application/passport\": {\n \"source\": \"iana\"\n },\n \"application/patch-ops-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xer\"]\n },\n \"application/pdf\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pdf\"]\n },\n \"application/pdx\": {\n \"source\": \"iana\"\n },\n \"application/pem-certificate-chain\": {\n \"source\": \"iana\"\n },\n \"application/pgp-encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pgp\"]\n },\n \"application/pgp-keys\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\"]\n },\n \"application/pgp-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\",\"sig\"]\n },\n \"application/pics-rules\": {\n \"source\": \"apache\",\n \"extensions\": [\"prf\"]\n },\n \"application/pidf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pidf-diff+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pkcs10\": {\n \"source\": \"iana\",\n \"extensions\": [\"p10\"]\n },\n \"application/pkcs12\": {\n \"source\": \"iana\"\n },\n \"application/pkcs7-mime\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7m\",\"p7c\"]\n },\n \"application/pkcs7-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7s\"]\n },\n \"application/pkcs8\": {\n \"source\": \"iana\",\n \"extensions\": [\"p8\"]\n },\n \"application/pkcs8-encrypted\": {\n \"source\": \"iana\"\n },\n \"application/pkix-attr-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"ac\"]\n },\n \"application/pkix-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"cer\"]\n },\n \"application/pkix-crl\": {\n \"source\": \"iana\",\n \"extensions\": [\"crl\"]\n },\n \"application/pkix-pkipath\": {\n \"source\": \"iana\",\n \"extensions\": [\"pkipath\"]\n },\n \"application/pkixcmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"pki\"]\n },\n \"application/pls+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pls\"]\n },\n \"application/poc-settings+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/postscript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ai\",\"eps\",\"ps\"]\n },\n \"application/ppsp-tracker+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/provenance+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"provx\"]\n },\n \"application/prs.alvestrand.titrax-sheet\": {\n \"source\": \"iana\"\n },\n \"application/prs.cww\": {\n \"source\": \"iana\",\n \"extensions\": [\"cww\"]\n },\n \"application/prs.cyn\": {\n \"source\": \"iana\",\n \"charset\": \"7-BIT\"\n },\n \"application/prs.hpub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/prs.nprend\": {\n \"source\": \"iana\"\n },\n \"application/prs.plucker\": {\n \"source\": \"iana\"\n },\n \"application/prs.rdf-xml-crypt\": {\n \"source\": \"iana\"\n },\n \"application/prs.xsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/pskc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pskcxml\"]\n },\n \"application/pvd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/qsig\": {\n \"source\": \"iana\"\n },\n \"application/raml+yaml\": {\n \"compressible\": true,\n \"extensions\": [\"raml\"]\n },\n \"application/raptorfec\": {\n \"source\": \"iana\"\n },\n \"application/rdap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rdf\",\"owl\"]\n },\n \"application/reginfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rif\"]\n },\n \"application/relax-ng-compact-syntax\": {\n \"source\": \"iana\",\n \"extensions\": [\"rnc\"]\n },\n \"application/remote-printing\": {\n \"source\": \"iana\"\n },\n \"application/reputon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/resource-lists+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rl\"]\n },\n \"application/resource-lists-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rld\"]\n },\n \"application/rfc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/riscos\": {\n \"source\": \"iana\"\n },\n \"application/rlmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rls-services+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rs\"]\n },\n \"application/route-apd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rapd\"]\n },\n \"application/route-s-tsid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sls\"]\n },\n \"application/route-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rusd\"]\n },\n \"application/rpki-ghostbusters\": {\n \"source\": \"iana\",\n \"extensions\": [\"gbr\"]\n },\n \"application/rpki-manifest\": {\n \"source\": \"iana\",\n \"extensions\": [\"mft\"]\n },\n \"application/rpki-publication\": {\n \"source\": \"iana\"\n },\n \"application/rpki-roa\": {\n \"source\": \"iana\",\n \"extensions\": [\"roa\"]\n },\n \"application/rpki-updown\": {\n \"source\": \"iana\"\n },\n \"application/rsd+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rsd\"]\n },\n \"application/rss+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rss\"]\n },\n \"application/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"application/rtploopback\": {\n \"source\": \"iana\"\n },\n \"application/rtx\": {\n \"source\": \"iana\"\n },\n \"application/samlassertion+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/samlmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif-external-properties+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sbe\": {\n \"source\": \"iana\"\n },\n \"application/sbml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sbml\"]\n },\n \"application/scaip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scim+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scvp-cv-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"scq\"]\n },\n \"application/scvp-cv-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"scs\"]\n },\n \"application/scvp-vp-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"spq\"]\n },\n \"application/scvp-vp-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"spp\"]\n },\n \"application/sdp\": {\n \"source\": \"iana\",\n \"extensions\": [\"sdp\"]\n },\n \"application/secevent+jwt\": {\n \"source\": \"iana\"\n },\n \"application/senml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"senmlx\"]\n },\n \"application/senml-etch+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml-etch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sensml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/sensml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sensml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sensmlx\"]\n },\n \"application/sensml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sep+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sep-exi\": {\n \"source\": \"iana\"\n },\n \"application/session-info\": {\n \"source\": \"iana\"\n },\n \"application/set-payment\": {\n \"source\": \"iana\"\n },\n \"application/set-payment-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setpay\"]\n },\n \"application/set-registration\": {\n \"source\": \"iana\"\n },\n \"application/set-registration-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setreg\"]\n },\n \"application/sgml\": {\n \"source\": \"iana\"\n },\n \"application/sgml-open-catalog\": {\n \"source\": \"iana\"\n },\n \"application/shf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"shf\"]\n },\n \"application/sieve\": {\n \"source\": \"iana\",\n \"extensions\": [\"siv\",\"sieve\"]\n },\n \"application/simple-filter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/simple-message-summary\": {\n \"source\": \"iana\"\n },\n \"application/simplesymbolcontainer\": {\n \"source\": \"iana\"\n },\n \"application/sipc\": {\n \"source\": \"iana\"\n },\n \"application/slate\": {\n \"source\": \"iana\"\n },\n \"application/smil\": {\n \"source\": \"iana\"\n },\n \"application/smil+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"smi\",\"smil\"]\n },\n \"application/smpte336m\": {\n \"source\": \"iana\"\n },\n \"application/soap+fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/soap+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sparql-query\": {\n \"source\": \"iana\",\n \"extensions\": [\"rq\"]\n },\n \"application/sparql-results+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"srx\"]\n },\n \"application/spdx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/spirits-event+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sql\": {\n \"source\": \"iana\"\n },\n \"application/srgs\": {\n \"source\": \"iana\",\n \"extensions\": [\"gram\"]\n },\n \"application/srgs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"grxml\"]\n },\n \"application/sru+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sru\"]\n },\n \"application/ssdl+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ssdl\"]\n },\n \"application/ssml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ssml\"]\n },\n \"application/stix+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/swid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"swidtag\"]\n },\n \"application/tamp-apex-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-apex-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-error\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-query\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-response\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tar\": {\n \"compressible\": true\n },\n \"application/taxii+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/td+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tei\",\"teicorpus\"]\n },\n \"application/tetra_isi\": {\n \"source\": \"iana\"\n },\n \"application/thraud+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tfi\"]\n },\n \"application/timestamp-query\": {\n \"source\": \"iana\"\n },\n \"application/timestamp-reply\": {\n \"source\": \"iana\"\n },\n \"application/timestamped-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"tsd\"]\n },\n \"application/tlsrpt+gzip\": {\n \"source\": \"iana\"\n },\n \"application/tlsrpt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tnauthlist\": {\n \"source\": \"iana\"\n },\n \"application/token-introspection+jwt\": {\n \"source\": \"iana\"\n },\n \"application/toml\": {\n \"compressible\": true,\n \"extensions\": [\"toml\"]\n },\n \"application/trickle-ice-sdpfrag\": {\n \"source\": \"iana\"\n },\n \"application/trig\": {\n \"source\": \"iana\",\n \"extensions\": [\"trig\"]\n },\n \"application/ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttml\"]\n },\n \"application/tve-trigger\": {\n \"source\": \"iana\"\n },\n \"application/tzif\": {\n \"source\": \"iana\"\n },\n \"application/tzif-leap\": {\n \"source\": \"iana\"\n },\n \"application/ubjson\": {\n \"compressible\": false,\n \"extensions\": [\"ubj\"]\n },\n \"application/ulpfec\": {\n \"source\": \"iana\"\n },\n \"application/urc-grpsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/urc-ressheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsheet\"]\n },\n \"application/urc-targetdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"td\"]\n },\n \"application/urc-uisocketdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vemmi\": {\n \"source\": \"iana\"\n },\n \"application/vividence.scriptfile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.1000minds.decision-model+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"1km\"]\n },\n \"application/vnd.3gpp-prose+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3ch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-v2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gnas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.access-transfer-events+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.bsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gmop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gtpc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.interworking-data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.lpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mc-signalling-ear\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-payload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-signalling\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-signed+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mid-call+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ngap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pfcp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pic-bw-large\": {\n \"source\": \"iana\",\n \"extensions\": [\"plb\"]\n },\n \"application/vnd.3gpp.pic-bw-small\": {\n \"source\": \"iana\",\n \"extensions\": [\"psb\"]\n },\n \"application/vnd.3gpp.pic-bw-var\": {\n \"source\": \"iana\",\n \"extensions\": [\"pvb\"]\n },\n \"application/vnd.3gpp.s1ap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-ext+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.state-and-event-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ussd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp2.tcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tcap\"]\n },\n \"application/vnd.3lightssoftware.imagescal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3m.post-it-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"pwn\"]\n },\n \"application/vnd.accpac.simply.aso\": {\n \"source\": \"iana\",\n \"extensions\": [\"aso\"]\n },\n \"application/vnd.accpac.simply.imp\": {\n \"source\": \"iana\",\n \"extensions\": [\"imp\"]\n },\n \"application/vnd.acucobol\": {\n \"source\": \"iana\",\n \"extensions\": [\"acu\"]\n },\n \"application/vnd.acucorp\": {\n \"source\": \"iana\",\n \"extensions\": [\"atc\",\"acutc\"]\n },\n \"application/vnd.adobe.air-application-installer-package+zip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"air\"]\n },\n \"application/vnd.adobe.flash.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.formscentral.fcdt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcdt\"]\n },\n \"application/vnd.adobe.fxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fxp\",\"fxpl\"]\n },\n \"application/vnd.adobe.partial-upload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.xdp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdp\"]\n },\n \"application/vnd.adobe.xfdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdf\"]\n },\n \"application/vnd.aether.imp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata-pagedef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.cmoca-cmresource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-charset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codedfont\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codepage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-cmtable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-formdef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-mediummap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-objectcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-overlay\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-pagesegment\": {\n \"source\": \"iana\"\n },\n \"application/vnd.age\": {\n \"source\": \"iana\",\n \"extensions\": [\"age\"]\n },\n \"application/vnd.ah-barcode\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ahead.space\": {\n \"source\": \"iana\",\n \"extensions\": [\"ahead\"]\n },\n \"application/vnd.airzip.filesecure.azf\": {\n \"source\": \"iana\",\n \"extensions\": [\"azf\"]\n },\n \"application/vnd.airzip.filesecure.azs\": {\n \"source\": \"iana\",\n \"extensions\": [\"azs\"]\n },\n \"application/vnd.amadeus+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.amazon.ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"azw\"]\n },\n \"application/vnd.amazon.mobi8-ebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.americandynamics.acc\": {\n \"source\": \"iana\",\n \"extensions\": [\"acc\"]\n },\n \"application/vnd.amiga.ami\": {\n \"source\": \"iana\",\n \"extensions\": [\"ami\"]\n },\n \"application/vnd.amundsen.maze+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.android.ota\": {\n \"source\": \"iana\"\n },\n \"application/vnd.android.package-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"apk\"]\n },\n \"application/vnd.anki\": {\n \"source\": \"iana\"\n },\n \"application/vnd.anser-web-certificate-issue-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"cii\"]\n },\n \"application/vnd.anser-web-funds-transfer-initiation\": {\n \"source\": \"apache\",\n \"extensions\": [\"fti\"]\n },\n \"application/vnd.antix.game-component\": {\n \"source\": \"iana\",\n \"extensions\": [\"atx\"]\n },\n \"application/vnd.apache.arrow.file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.arrow.stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.compact\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.json\": {\n \"source\": \"iana\"\n },\n \"application/vnd.api+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.aplextor.warrp+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apothekende.reservation+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apple.installer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpkg\"]\n },\n \"application/vnd.apple.keynote\": {\n \"source\": \"iana\",\n \"extensions\": [\"key\"]\n },\n \"application/vnd.apple.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"m3u8\"]\n },\n \"application/vnd.apple.numbers\": {\n \"source\": \"iana\",\n \"extensions\": [\"numbers\"]\n },\n \"application/vnd.apple.pages\": {\n \"source\": \"iana\",\n \"extensions\": [\"pages\"]\n },\n \"application/vnd.apple.pkpass\": {\n \"compressible\": false,\n \"extensions\": [\"pkpass\"]\n },\n \"application/vnd.arastra.swi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.aristanetworks.swi\": {\n \"source\": \"iana\",\n \"extensions\": [\"swi\"]\n },\n \"application/vnd.artisan+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.artsquare\": {\n \"source\": \"iana\"\n },\n \"application/vnd.astraea-software.iota\": {\n \"source\": \"iana\",\n \"extensions\": [\"iota\"]\n },\n \"application/vnd.audiograph\": {\n \"source\": \"iana\",\n \"extensions\": [\"aep\"]\n },\n \"application/vnd.autopackage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.avalon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.avistar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.balsamiq.bmml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmml\"]\n },\n \"application/vnd.balsamiq.bmpr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.banana-accounting\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.error\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bekitzur-stech+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bint.med-content\": {\n \"source\": \"iana\"\n },\n \"application/vnd.biopax.rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.blink-idb-value-wrapper\": {\n \"source\": \"iana\"\n },\n \"application/vnd.blueice.multipass\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpm\"]\n },\n \"application/vnd.bluetooth.ep.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bluetooth.le.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bmi\": {\n \"source\": \"iana\",\n \"extensions\": [\"bmi\"]\n },\n \"application/vnd.bpf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bpf3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.businessobjects\": {\n \"source\": \"iana\",\n \"extensions\": [\"rep\"]\n },\n \"application/vnd.byu.uapi+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cab-jscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-cpdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-lips\": {\n \"source\": \"iana\"\n },\n \"application/vnd.capasystems-pg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cendio.thinlinc.clientconf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.century-systems.tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chemdraw+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdxml\"]\n },\n \"application/vnd.chess-pgn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chipnuts.karaoke-mmd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmd\"]\n },\n \"application/vnd.ciedi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cinderella\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdy\"]\n },\n \"application/vnd.cirpack.isdn-ext\": {\n \"source\": \"iana\"\n },\n \"application/vnd.citationstyles.style+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csl\"]\n },\n \"application/vnd.claymore\": {\n \"source\": \"iana\",\n \"extensions\": [\"cla\"]\n },\n \"application/vnd.cloanto.rp9\": {\n \"source\": \"iana\",\n \"extensions\": [\"rp9\"]\n },\n \"application/vnd.clonk.c4group\": {\n \"source\": \"iana\",\n \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n },\n \"application/vnd.cluetrust.cartomobile-config\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amc\"]\n },\n \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amz\"]\n },\n \"application/vnd.coffeescript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collection+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.doc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.next+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.comicbook+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.comicbook-rar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commerce-battelle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commonspace\": {\n \"source\": \"iana\",\n \"extensions\": [\"csp\"]\n },\n \"application/vnd.contact.cmsg\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdbcmsg\"]\n },\n \"application/vnd.coreos.ignition+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cosmocaller\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmc\"]\n },\n \"application/vnd.crick.clicker\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkx\"]\n },\n \"application/vnd.crick.clicker.keyboard\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkk\"]\n },\n \"application/vnd.crick.clicker.palette\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkp\"]\n },\n \"application/vnd.crick.clicker.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkt\"]\n },\n \"application/vnd.crick.clicker.wordbank\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkw\"]\n },\n \"application/vnd.criticaltools.wbs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wbs\"]\n },\n \"application/vnd.cryptii.pipe+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.crypto-shade-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.vault\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ctc-posml\": {\n \"source\": \"iana\",\n \"extensions\": [\"pml\"]\n },\n \"application/vnd.ctct.ws+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cups-pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-postscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-ppd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppd\"]\n },\n \"application/vnd.cups-raster\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-raw\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl.car\": {\n \"source\": \"apache\",\n \"extensions\": [\"car\"]\n },\n \"application/vnd.curl.pcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcurl\"]\n },\n \"application/vnd.cyan.dean.root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cybank\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cyclonedx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cyclonedx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.d2l.coursepackage1p0+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.d3m-dataset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.d3m-problem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dart\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dart\"]\n },\n \"application/vnd.data-vision.rdz\": {\n \"source\": \"iana\",\n \"extensions\": [\"rdz\"]\n },\n \"application/vnd.datapackage+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dataresource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dbf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dbf\"]\n },\n \"application/vnd.debian.binary-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dece.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n },\n \"application/vnd.dece.ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uvt\",\"uvvt\"]\n },\n \"application/vnd.dece.unspecified\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvx\",\"uvvx\"]\n },\n \"application/vnd.dece.zip\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvz\",\"uvvz\"]\n },\n \"application/vnd.denovo.fcselayout-link\": {\n \"source\": \"iana\",\n \"extensions\": [\"fe_launch\"]\n },\n \"application/vnd.desmume.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dm.delegation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dna\": {\n \"source\": \"iana\",\n \"extensions\": [\"dna\"]\n },\n \"application/vnd.document+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dolby.mlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"mlp\"]\n },\n \"application/vnd.dolby.mobile.1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dolby.mobile.2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.doremir.scorecloud-binary-document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dpgraph\": {\n \"source\": \"iana\",\n \"extensions\": [\"dpg\"]\n },\n \"application/vnd.dreamfactory\": {\n \"source\": \"iana\",\n \"extensions\": [\"dfac\"]\n },\n \"application/vnd.drive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ds-keypoint\": {\n \"source\": \"apache\",\n \"extensions\": [\"kpxx\"]\n },\n \"application/vnd.dtg.local\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.flash\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ait\": {\n \"source\": \"iana\",\n \"extensions\": [\"ait\"]\n },\n \"application/vnd.dvb.dvbisl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.dvbj\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.esgcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcdftnotifaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgpdd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcroaming\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-base\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-enhancement\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.notif-aggregate-root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-container+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-generic+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-msglist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-init+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.pfr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.service\": {\n \"source\": \"iana\",\n \"extensions\": [\"svc\"]\n },\n \"application/vnd.dxr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dynageo\": {\n \"source\": \"iana\",\n \"extensions\": [\"geo\"]\n },\n \"application/vnd.dzr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.easykaraoke.cdgdownload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecdis-update\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecip.rlp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eclipse.ditto+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ecowin.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"mag\"]\n },\n \"application/vnd.ecowin.filerequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.fileupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.series\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesrequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.img\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.iso\": {\n \"source\": \"iana\"\n },\n \"application/vnd.emclient.accessrequest+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.enliven\": {\n \"source\": \"iana\",\n \"extensions\": [\"nml\"]\n },\n \"application/vnd.enphase.envoy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eprints.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.epson.esf\": {\n \"source\": \"iana\",\n \"extensions\": [\"esf\"]\n },\n \"application/vnd.epson.msf\": {\n \"source\": \"iana\",\n \"extensions\": [\"msf\"]\n },\n \"application/vnd.epson.quickanime\": {\n \"source\": \"iana\",\n \"extensions\": [\"qam\"]\n },\n \"application/vnd.epson.salt\": {\n \"source\": \"iana\",\n \"extensions\": [\"slt\"]\n },\n \"application/vnd.epson.ssf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ssf\"]\n },\n \"application/vnd.ericsson.quickcall\": {\n \"source\": \"iana\"\n },\n \"application/vnd.espass-espass+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.eszigno3+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es3\",\"et3\"]\n },\n \"application/vnd.etsi.aoc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.asic-e+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.asic-s+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.cug+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvcommand+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-bc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-cod+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-npvr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvservice+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mcid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mheg5\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.pstn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.sci+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.simservs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.timestamp-token\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.tsl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.tsl.der\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eu.kasparian.car+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.eudora.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.profile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.settings\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.theme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.exstream-empower+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.exstream-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ezpix-album\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez2\"]\n },\n \"application/vnd.ezpix-package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez3\"]\n },\n \"application/vnd.f-secure.mobile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.familysearch.gedcom+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.fastcopy-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"fdf\"]\n },\n \"application/vnd.fdsn.mseed\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseed\"]\n },\n \"application/vnd.fdsn.seed\": {\n \"source\": \"iana\",\n \"extensions\": [\"seed\",\"dataless\"]\n },\n \"application/vnd.ffsns\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ficlab.flb+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.filmit.zfc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fints\": {\n \"source\": \"iana\"\n },\n \"application/vnd.firemonkeys.cloudcell\": {\n \"source\": \"iana\"\n },\n \"application/vnd.flographit\": {\n \"source\": \"iana\",\n \"extensions\": [\"gph\"]\n },\n \"application/vnd.fluxtime.clip\": {\n \"source\": \"iana\",\n \"extensions\": [\"ftc\"]\n },\n \"application/vnd.font-fontforge-sfd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.framemaker\": {\n \"source\": \"iana\",\n \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n },\n \"application/vnd.frogans.fnc\": {\n \"source\": \"iana\",\n \"extensions\": [\"fnc\"]\n },\n \"application/vnd.frogans.ltf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ltf\"]\n },\n \"application/vnd.fsc.weblaunch\": {\n \"source\": \"iana\",\n \"extensions\": [\"fsc\"]\n },\n \"application/vnd.fujifilm.fb.docuworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.binder\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.jfi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fujitsu.oasys\": {\n \"source\": \"iana\",\n \"extensions\": [\"oas\"]\n },\n \"application/vnd.fujitsu.oasys2\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa2\"]\n },\n \"application/vnd.fujitsu.oasys3\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa3\"]\n },\n \"application/vnd.fujitsu.oasysgp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fg5\"]\n },\n \"application/vnd.fujitsu.oasysprs\": {\n \"source\": \"iana\",\n \"extensions\": [\"bh2\"]\n },\n \"application/vnd.fujixerox.art-ex\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.art4\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.ddd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ddd\"]\n },\n \"application/vnd.fujixerox.docuworks\": {\n \"source\": \"iana\",\n \"extensions\": [\"xdw\"]\n },\n \"application/vnd.fujixerox.docuworks.binder\": {\n \"source\": \"iana\",\n \"extensions\": [\"xbd\"]\n },\n \"application/vnd.fujixerox.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.hbpl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fut-misnet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fuzzysheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fzs\"]\n },\n \"application/vnd.genomatix.tuxedo\": {\n \"source\": \"iana\",\n \"extensions\": [\"txd\"]\n },\n \"application/vnd.gentics.grd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geocube+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geogebra.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggb\"]\n },\n \"application/vnd.geogebra.slides\": {\n \"source\": \"iana\"\n },\n \"application/vnd.geogebra.tool\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggt\"]\n },\n \"application/vnd.geometry-explorer\": {\n \"source\": \"iana\",\n \"extensions\": [\"gex\",\"gre\"]\n },\n \"application/vnd.geonext\": {\n \"source\": \"iana\",\n \"extensions\": [\"gxt\"]\n },\n \"application/vnd.geoplan\": {\n \"source\": \"iana\",\n \"extensions\": [\"g2w\"]\n },\n \"application/vnd.geospace\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3w\"]\n },\n \"application/vnd.gerber\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gmx\": {\n \"source\": \"iana\",\n \"extensions\": [\"gmx\"]\n },\n \"application/vnd.google-apps.document\": {\n \"compressible\": false,\n \"extensions\": [\"gdoc\"]\n },\n \"application/vnd.google-apps.presentation\": {\n \"compressible\": false,\n \"extensions\": [\"gslides\"]\n },\n \"application/vnd.google-apps.spreadsheet\": {\n \"compressible\": false,\n \"extensions\": [\"gsheet\"]\n },\n \"application/vnd.google-earth.kml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"kml\"]\n },\n \"application/vnd.google-earth.kmz\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"kmz\"]\n },\n \"application/vnd.gov.sk.e-form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gov.sk.e-form+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.grafeq\": {\n \"source\": \"iana\",\n \"extensions\": [\"gqf\",\"gqs\"]\n },\n \"application/vnd.gridmp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.groove-account\": {\n \"source\": \"iana\",\n \"extensions\": [\"gac\"]\n },\n \"application/vnd.groove-help\": {\n \"source\": \"iana\",\n \"extensions\": [\"ghf\"]\n },\n \"application/vnd.groove-identity-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gim\"]\n },\n \"application/vnd.groove-injector\": {\n \"source\": \"iana\",\n \"extensions\": [\"grv\"]\n },\n \"application/vnd.groove-tool-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtm\"]\n },\n \"application/vnd.groove-tool-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpl\"]\n },\n \"application/vnd.groove-vcard\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcg\"]\n },\n \"application/vnd.hal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"hal\"]\n },\n \"application/vnd.handheld-entertainment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zmm\"]\n },\n \"application/vnd.hbci\": {\n \"source\": \"iana\",\n \"extensions\": [\"hbci\"]\n },\n \"application/vnd.hc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hcl-bireports\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hdt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.heroku+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hhe.lesson-player\": {\n \"source\": \"iana\",\n \"extensions\": [\"les\"]\n },\n \"application/vnd.hl7cda+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hl7v2+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hp-hpgl\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpgl\"]\n },\n \"application/vnd.hp-hpid\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpid\"]\n },\n \"application/vnd.hp-hps\": {\n \"source\": \"iana\",\n \"extensions\": [\"hps\"]\n },\n \"application/vnd.hp-jlyt\": {\n \"source\": \"iana\",\n \"extensions\": [\"jlt\"]\n },\n \"application/vnd.hp-pcl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcl\"]\n },\n \"application/vnd.hp-pclxl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pclxl\"]\n },\n \"application/vnd.httphone\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hydrostatix.sof-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfd-hdstx\"]\n },\n \"application/vnd.hyper+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyper-item+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyperdrive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hzn-3d-crossword\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.electronic-media\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.minipay\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpy\"]\n },\n \"application/vnd.ibm.modcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n },\n \"application/vnd.ibm.rights-management\": {\n \"source\": \"iana\",\n \"extensions\": [\"irm\"]\n },\n \"application/vnd.ibm.secure-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"sc\"]\n },\n \"application/vnd.iccprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"icc\",\"icm\"]\n },\n \"application/vnd.ieee.1905\": {\n \"source\": \"iana\"\n },\n \"application/vnd.igloader\": {\n \"source\": \"iana\",\n \"extensions\": [\"igl\"]\n },\n \"application/vnd.imagemeter.folder+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.imagemeter.image+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.immervision-ivp\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivp\"]\n },\n \"application/vnd.immervision-ivu\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivu\"]\n },\n \"application/vnd.ims.imsccv1p1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.lis.v2.result+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informedcontrol.rms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informix-visionary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.innopath.wamp.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.insors.igm\": {\n \"source\": \"iana\",\n \"extensions\": [\"igm\"]\n },\n \"application/vnd.intercon.formnet\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpw\",\"xpx\"]\n },\n \"application/vnd.intergeo\": {\n \"source\": \"iana\",\n \"extensions\": [\"i2g\"]\n },\n \"application/vnd.intertrust.digibox\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intertrust.nncp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intu.qbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"qbo\"]\n },\n \"application/vnd.intu.qfx\": {\n \"source\": \"iana\",\n \"extensions\": [\"qfx\"]\n },\n \"application/vnd.iptc.g2.catalogitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.conceptitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.packageitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.planningitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ipunplugged.rcprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"rcprofile\"]\n },\n \"application/vnd.irepository.package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"irp\"]\n },\n \"application/vnd.is-xpr\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpr\"]\n },\n \"application/vnd.isac.fcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcs\"]\n },\n \"application/vnd.iso11783-10+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.jam\": {\n \"source\": \"iana\",\n \"extensions\": [\"jam\"]\n },\n \"application/vnd.japannet-directory-service\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-jpnstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-payment-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-setstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.jcp.javame.midlet-rms\": {\n \"source\": \"iana\",\n \"extensions\": [\"rms\"]\n },\n \"application/vnd.jisp\": {\n \"source\": \"iana\",\n \"extensions\": [\"jisp\"]\n },\n \"application/vnd.joost.joda-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"joda\"]\n },\n \"application/vnd.jsk.isdn-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kahootz\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktz\",\"ktr\"]\n },\n \"application/vnd.kde.karbon\": {\n \"source\": \"iana\",\n \"extensions\": [\"karbon\"]\n },\n \"application/vnd.kde.kchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"chrt\"]\n },\n \"application/vnd.kde.kformula\": {\n \"source\": \"iana\",\n \"extensions\": [\"kfo\"]\n },\n \"application/vnd.kde.kivio\": {\n \"source\": \"iana\",\n \"extensions\": [\"flw\"]\n },\n \"application/vnd.kde.kontour\": {\n \"source\": \"iana\",\n \"extensions\": [\"kon\"]\n },\n \"application/vnd.kde.kpresenter\": {\n \"source\": \"iana\",\n \"extensions\": [\"kpr\",\"kpt\"]\n },\n \"application/vnd.kde.kspread\": {\n \"source\": \"iana\",\n \"extensions\": [\"ksp\"]\n },\n \"application/vnd.kde.kword\": {\n \"source\": \"iana\",\n \"extensions\": [\"kwd\",\"kwt\"]\n },\n \"application/vnd.kenameaapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"htke\"]\n },\n \"application/vnd.kidspiration\": {\n \"source\": \"iana\",\n \"extensions\": [\"kia\"]\n },\n \"application/vnd.kinar\": {\n \"source\": \"iana\",\n \"extensions\": [\"kne\",\"knp\"]\n },\n \"application/vnd.koan\": {\n \"source\": \"iana\",\n \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n },\n \"application/vnd.kodak-descriptor\": {\n \"source\": \"iana\",\n \"extensions\": [\"sse\"]\n },\n \"application/vnd.las\": {\n \"source\": \"iana\"\n },\n \"application/vnd.las.las+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.las.las+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lasxml\"]\n },\n \"application/vnd.laszip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.leap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.liberty-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.llamagraphics.life-balance.desktop\": {\n \"source\": \"iana\",\n \"extensions\": [\"lbd\"]\n },\n \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lbe\"]\n },\n \"application/vnd.logipipe.circuit+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.loom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.lotus-1-2-3\": {\n \"source\": \"iana\",\n \"extensions\": [\"123\"]\n },\n \"application/vnd.lotus-approach\": {\n \"source\": \"iana\",\n \"extensions\": [\"apr\"]\n },\n \"application/vnd.lotus-freelance\": {\n \"source\": \"iana\",\n \"extensions\": [\"pre\"]\n },\n \"application/vnd.lotus-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"nsf\"]\n },\n \"application/vnd.lotus-organizer\": {\n \"source\": \"iana\",\n \"extensions\": [\"org\"]\n },\n \"application/vnd.lotus-screencam\": {\n \"source\": \"iana\",\n \"extensions\": [\"scm\"]\n },\n \"application/vnd.lotus-wordpro\": {\n \"source\": \"iana\",\n \"extensions\": [\"lwp\"]\n },\n \"application/vnd.macports.portpkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"portpkg\"]\n },\n \"application/vnd.mapbox-vector-tile\": {\n \"source\": \"iana\",\n \"extensions\": [\"mvt\"]\n },\n \"application/vnd.marlin.drm.actiontoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.conftoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.license+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.mdcf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mason+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.maxar.archive.3tz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.maxmind.maxmind-db\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mcd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mcd\"]\n },\n \"application/vnd.medcalcdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"mc1\"]\n },\n \"application/vnd.mediastation.cdkey\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdkey\"]\n },\n \"application/vnd.meridian-slingshot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mfer\": {\n \"source\": \"iana\",\n \"extensions\": [\"mwf\"]\n },\n \"application/vnd.mfmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"mfm\"]\n },\n \"application/vnd.micro+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.micrografx.flo\": {\n \"source\": \"iana\",\n \"extensions\": [\"flo\"]\n },\n \"application/vnd.micrografx.igx\": {\n \"source\": \"iana\",\n \"extensions\": [\"igx\"]\n },\n \"application/vnd.microsoft.portable-executable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.microsoft.windows.thumbnail-cache\": {\n \"source\": \"iana\"\n },\n \"application/vnd.miele+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.mif\": {\n \"source\": \"iana\",\n \"extensions\": [\"mif\"]\n },\n \"application/vnd.minisoft-hp3000-save\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mobius.daf\": {\n \"source\": \"iana\",\n \"extensions\": [\"daf\"]\n },\n \"application/vnd.mobius.dis\": {\n \"source\": \"iana\",\n \"extensions\": [\"dis\"]\n },\n \"application/vnd.mobius.mbk\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbk\"]\n },\n \"application/vnd.mobius.mqy\": {\n \"source\": \"iana\",\n \"extensions\": [\"mqy\"]\n },\n \"application/vnd.mobius.msl\": {\n \"source\": \"iana\",\n \"extensions\": [\"msl\"]\n },\n \"application/vnd.mobius.plc\": {\n \"source\": \"iana\",\n \"extensions\": [\"plc\"]\n },\n \"application/vnd.mobius.txf\": {\n \"source\": \"iana\",\n \"extensions\": [\"txf\"]\n },\n \"application/vnd.mophun.application\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpn\"]\n },\n \"application/vnd.mophun.certificate\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpc\"]\n },\n \"application/vnd.motorola.flexsuite\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.adsi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.fis\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.gotap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.kmr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.ttc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.wem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.iprm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mozilla.xul+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xul\"]\n },\n \"application/vnd.ms-3mfdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-artgalry\": {\n \"source\": \"iana\",\n \"extensions\": [\"cil\"]\n },\n \"application/vnd.ms-asf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-cab-compressed\": {\n \"source\": \"iana\",\n \"extensions\": [\"cab\"]\n },\n \"application/vnd.ms-color.iccprofile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-excel\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n },\n \"application/vnd.ms-excel.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlam\"]\n },\n \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsb\"]\n },\n \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsm\"]\n },\n \"application/vnd.ms-excel.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltm\"]\n },\n \"application/vnd.ms-fontobject\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eot\"]\n },\n \"application/vnd.ms-htmlhelp\": {\n \"source\": \"iana\",\n \"extensions\": [\"chm\"]\n },\n \"application/vnd.ms-ims\": {\n \"source\": \"iana\",\n \"extensions\": [\"ims\"]\n },\n \"application/vnd.ms-lrm\": {\n \"source\": \"iana\",\n \"extensions\": [\"lrm\"]\n },\n \"application/vnd.ms-office.activex+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-officetheme\": {\n \"source\": \"iana\",\n \"extensions\": [\"thmx\"]\n },\n \"application/vnd.ms-opentype\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-outlook\": {\n \"compressible\": false,\n \"extensions\": [\"msg\"]\n },\n \"application/vnd.ms-package.obfuscated-opentype\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-pki.seccat\": {\n \"source\": \"apache\",\n \"extensions\": [\"cat\"]\n },\n \"application/vnd.ms-pki.stl\": {\n \"source\": \"apache\",\n \"extensions\": [\"stl\"]\n },\n \"application/vnd.ms-playready.initiator+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-powerpoint\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n },\n \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppam\"]\n },\n \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"pptm\"]\n },\n \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldm\"]\n },\n \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsm\"]\n },\n \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"potm\"]\n },\n \"application/vnd.ms-printdevicecapabilities+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-printing.printticket+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-printschematicket+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-project\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpp\",\"mpt\"]\n },\n \"application/vnd.ms-tnef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.nwprinting.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.printerpairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.wsd.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-word.document.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"docm\"]\n },\n \"application/vnd.ms-word.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotm\"]\n },\n \"application/vnd.ms-works\": {\n \"source\": \"iana\",\n \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n },\n \"application/vnd.ms-wpl\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpl\"]\n },\n \"application/vnd.ms-xpsdocument\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xps\"]\n },\n \"application/vnd.msa-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mseq\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseq\"]\n },\n \"application/vnd.msign\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator.cif\": {\n \"source\": \"iana\"\n },\n \"application/vnd.music-niff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.musician\": {\n \"source\": \"iana\",\n \"extensions\": [\"mus\"]\n },\n \"application/vnd.muvee.style\": {\n \"source\": \"iana\",\n \"extensions\": [\"msty\"]\n },\n \"application/vnd.mynfc\": {\n \"source\": \"iana\",\n \"extensions\": [\"taglet\"]\n },\n \"application/vnd.nacamar.ybrid+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ncd.control\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ncd.reference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nearst.inv+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nebumind.line\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nervana\": {\n \"source\": \"iana\"\n },\n \"application/vnd.netfpx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.neurolanguage.nlu\": {\n \"source\": \"iana\",\n \"extensions\": [\"nlu\"]\n },\n \"application/vnd.nimn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.nitro.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.snes.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nitf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ntf\",\"nitf\"]\n },\n \"application/vnd.noblenet-directory\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnd\"]\n },\n \"application/vnd.noblenet-sealer\": {\n \"source\": \"iana\",\n \"extensions\": [\"nns\"]\n },\n \"application/vnd.noblenet-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnw\"]\n },\n \"application/vnd.nokia.catalogs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.iptv.config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.isds-radio-presets\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.landmarkcollection+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.n-gage.ac+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ac\"]\n },\n \"application/vnd.nokia.n-gage.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"ngdat\"]\n },\n \"application/vnd.nokia.n-gage.symbian.install\": {\n \"source\": \"iana\",\n \"extensions\": [\"n-gage\"]\n },\n \"application/vnd.nokia.ncd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.radio-preset\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpst\"]\n },\n \"application/vnd.nokia.radio-presets\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpss\"]\n },\n \"application/vnd.novadigm.edm\": {\n \"source\": \"iana\",\n \"extensions\": [\"edm\"]\n },\n \"application/vnd.novadigm.edx\": {\n \"source\": \"iana\",\n \"extensions\": [\"edx\"]\n },\n \"application/vnd.novadigm.ext\": {\n \"source\": \"iana\",\n \"extensions\": [\"ext\"]\n },\n \"application/vnd.ntt-local.content-share\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.file-transfer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.ogw_remote-access\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_remote\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"odc\"]\n },\n \"application/vnd.oasis.opendocument.chart-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otc\"]\n },\n \"application/vnd.oasis.opendocument.database\": {\n \"source\": \"iana\",\n \"extensions\": [\"odb\"]\n },\n \"application/vnd.oasis.opendocument.formula\": {\n \"source\": \"iana\",\n \"extensions\": [\"odf\"]\n },\n \"application/vnd.oasis.opendocument.formula-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"odft\"]\n },\n \"application/vnd.oasis.opendocument.graphics\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odg\"]\n },\n \"application/vnd.oasis.opendocument.graphics-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otg\"]\n },\n \"application/vnd.oasis.opendocument.image\": {\n \"source\": \"iana\",\n \"extensions\": [\"odi\"]\n },\n \"application/vnd.oasis.opendocument.image-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"oti\"]\n },\n \"application/vnd.oasis.opendocument.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odp\"]\n },\n \"application/vnd.oasis.opendocument.presentation-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otp\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ods\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ots\"]\n },\n \"application/vnd.oasis.opendocument.text\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odt\"]\n },\n \"application/vnd.oasis.opendocument.text-master\": {\n \"source\": \"iana\",\n \"extensions\": [\"odm\"]\n },\n \"application/vnd.oasis.opendocument.text-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ott\"]\n },\n \"application/vnd.oasis.opendocument.text-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"oth\"]\n },\n \"application/vnd.obn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ocf+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oci.image.manifest.v1+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oftn.l10n+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessdownload+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessstreaming+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.cspg-hexbinary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.dae.svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.dae.xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.pae.gem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.spdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.spdlist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.ueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.userprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.olpc-sugar\": {\n \"source\": \"iana\",\n \"extensions\": [\"xo\"]\n },\n \"application/vnd.oma-scws-config\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-request\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.drm-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.imd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.ltkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.notification+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.provisioningtrigger\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgboot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgdd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sgdu\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.simple-symbol-container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sprov+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.stkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.cab-address-book+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-feature-handler+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-pcc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-subs-invite+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-user-prefs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.dcd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dcdc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dd2+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dd2\"]\n },\n \"application/vnd.oma.drm.risd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.group-usage-list+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.lwm2m+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+tlv\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.pal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.final-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.groups+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.push\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.scidm.messages+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.xcap-directory+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.omads-email+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-file+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-folder+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omaloc-supl-init\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepager\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertat\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openblox.game+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"obgx\"]\n },\n \"application/vnd.openblox.game-binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openeye.oeb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openofficeorg.extension\": {\n \"source\": \"apache\",\n \"extensions\": [\"oxt\"]\n },\n \"application/vnd.openstreetmap.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osm\"]\n },\n \"application/vnd.opentimestamps.ots\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pptx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"potx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xlsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"docx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.core-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.relationships+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oracle.resource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.orange.indata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osa.netdeploy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgeo.mapguide.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgp\"]\n },\n \"application/vnd.osgi.bundle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgi.dp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dp\"]\n },\n \"application/vnd.osgi.subsystem\": {\n \"source\": \"iana\",\n \"extensions\": [\"esa\"]\n },\n \"application/vnd.otps.ct-kip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oxli.countgraph\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pagerduty+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.palm\": {\n \"source\": \"iana\",\n \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n },\n \"application/vnd.panoply\": {\n \"source\": \"iana\"\n },\n \"application/vnd.paos.xml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patentdive\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patientecommsdoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pawaafile\": {\n \"source\": \"iana\",\n \"extensions\": [\"paw\"]\n },\n \"application/vnd.pcos\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pg.format\": {\n \"source\": \"iana\",\n \"extensions\": [\"str\"]\n },\n \"application/vnd.pg.osasli\": {\n \"source\": \"iana\",\n \"extensions\": [\"ei6\"]\n },\n \"application/vnd.piaccess.application-licence\": {\n \"source\": \"iana\"\n },\n \"application/vnd.picsel\": {\n \"source\": \"iana\",\n \"extensions\": [\"efif\"]\n },\n \"application/vnd.pmi.widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wg\"]\n },\n \"application/vnd.poc.group-advertisement+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.pocketlearn\": {\n \"source\": \"iana\",\n \"extensions\": [\"plf\"]\n },\n \"application/vnd.powerbuilder6\": {\n \"source\": \"iana\",\n \"extensions\": [\"pbd\"]\n },\n \"application/vnd.powerbuilder6-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.preminet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.previewsystems.box\": {\n \"source\": \"iana\",\n \"extensions\": [\"box\"]\n },\n \"application/vnd.proteus.magazine\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgz\"]\n },\n \"application/vnd.psfs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.publishare-delta-tree\": {\n \"source\": \"iana\",\n \"extensions\": [\"qps\"]\n },\n \"application/vnd.pvi.ptid1\": {\n \"source\": \"iana\",\n \"extensions\": [\"ptid\"]\n },\n \"application/vnd.pwg-multiplexed\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pwg-xhtml-print+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.qualcomm.brew-app-res\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quarantainenet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quark.quarkxpress\": {\n \"source\": \"iana\",\n \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n },\n \"application/vnd.quobject-quoxdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.radisys.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-stream+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-base+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-group+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-speech+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-transform+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rainstor.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rapid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rar\": {\n \"source\": \"iana\",\n \"extensions\": [\"rar\"]\n },\n \"application/vnd.realvnc.bed\": {\n \"source\": \"iana\",\n \"extensions\": [\"bed\"]\n },\n \"application/vnd.recordare.musicxml\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxl\"]\n },\n \"application/vnd.recordare.musicxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musicxml\"]\n },\n \"application/vnd.renlearn.rlprint\": {\n \"source\": \"iana\"\n },\n \"application/vnd.resilient.logic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.restful+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rig.cryptonote\": {\n \"source\": \"iana\",\n \"extensions\": [\"cryptonote\"]\n },\n \"application/vnd.rim.cod\": {\n \"source\": \"apache\",\n \"extensions\": [\"cod\"]\n },\n \"application/vnd.rn-realmedia\": {\n \"source\": \"apache\",\n \"extensions\": [\"rm\"]\n },\n \"application/vnd.rn-realmedia-vbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmvb\"]\n },\n \"application/vnd.route66.link66+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"link66\"]\n },\n \"application/vnd.rs-274x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ruckus.download\": {\n \"source\": \"iana\"\n },\n \"application/vnd.s3sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sailingtracker.track\": {\n \"source\": \"iana\",\n \"extensions\": [\"st\"]\n },\n \"application/vnd.sar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.cid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.mid2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.scribus\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.3df\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.csf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.doc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.eml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.mht\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.net\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.ppt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.tiff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.xls\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.seemail\": {\n \"source\": \"iana\",\n \"extensions\": [\"see\"]\n },\n \"application/vnd.seis+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.sema\": {\n \"source\": \"iana\",\n \"extensions\": [\"sema\"]\n },\n \"application/vnd.semd\": {\n \"source\": \"iana\",\n \"extensions\": [\"semd\"]\n },\n \"application/vnd.semf\": {\n \"source\": \"iana\",\n \"extensions\": [\"semf\"]\n },\n \"application/vnd.shade-save-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shana.informed.formdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"ifm\"]\n },\n \"application/vnd.shana.informed.formtemplate\": {\n \"source\": \"iana\",\n \"extensions\": [\"itp\"]\n },\n \"application/vnd.shana.informed.interchange\": {\n \"source\": \"iana\",\n \"extensions\": [\"iif\"]\n },\n \"application/vnd.shana.informed.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipk\"]\n },\n \"application/vnd.shootproof+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shopkick+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sigrok.session\": {\n \"source\": \"iana\"\n },\n \"application/vnd.simtech-mindmapper\": {\n \"source\": \"iana\",\n \"extensions\": [\"twd\",\"twds\"]\n },\n \"application/vnd.siren+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.smaf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmf\"]\n },\n \"application/vnd.smart.notebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.smart.teacher\": {\n \"source\": \"iana\",\n \"extensions\": [\"teacher\"]\n },\n \"application/vnd.snesdev-page-table\": {\n \"source\": \"iana\"\n },\n \"application/vnd.software602.filler.form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fo\"]\n },\n \"application/vnd.software602.filler.form-xml-zip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.solent.sdkm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sdkm\",\"sdkd\"]\n },\n \"application/vnd.spotfire.dxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxp\"]\n },\n \"application/vnd.spotfire.sfs\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfs\"]\n },\n \"application/vnd.sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-cod\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-dtf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-ntf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.stardivision.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdc\"]\n },\n \"application/vnd.stardivision.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sda\"]\n },\n \"application/vnd.stardivision.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdd\"]\n },\n \"application/vnd.stardivision.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"smf\"]\n },\n \"application/vnd.stardivision.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdw\",\"vor\"]\n },\n \"application/vnd.stardivision.writer-global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgl\"]\n },\n \"application/vnd.stepmania.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"smzip\"]\n },\n \"application/vnd.stepmania.stepchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"sm\"]\n },\n \"application/vnd.street-stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sun.wadl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wadl\"]\n },\n \"application/vnd.sun.xml.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxc\"]\n },\n \"application/vnd.sun.xml.calc.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stc\"]\n },\n \"application/vnd.sun.xml.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxd\"]\n },\n \"application/vnd.sun.xml.draw.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"std\"]\n },\n \"application/vnd.sun.xml.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxi\"]\n },\n \"application/vnd.sun.xml.impress.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"sti\"]\n },\n \"application/vnd.sun.xml.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxm\"]\n },\n \"application/vnd.sun.xml.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxw\"]\n },\n \"application/vnd.sun.xml.writer.global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxg\"]\n },\n \"application/vnd.sun.xml.writer.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stw\"]\n },\n \"application/vnd.sus-calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"sus\",\"susp\"]\n },\n \"application/vnd.svd\": {\n \"source\": \"iana\",\n \"extensions\": [\"svd\"]\n },\n \"application/vnd.swiftview-ics\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sycle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.syft+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.symbian.install\": {\n \"source\": \"apache\",\n \"extensions\": [\"sis\",\"sisx\"]\n },\n \"application/vnd.syncml+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xsm\"]\n },\n \"application/vnd.syncml.dm+wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"bdm\"]\n },\n \"application/vnd.syncml.dm+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xdm\"]\n },\n \"application/vnd.syncml.dm.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"ddf\"]\n },\n \"application/vnd.syncml.dmtnds+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmtnds+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.syncml.ds.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tableschema+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tao.intent-module-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"tao\"]\n },\n \"application/vnd.tcpdump.pcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n },\n \"application/vnd.think-cell.ppttc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tmd.mediaflex.api+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tmobile-livetv\": {\n \"source\": \"iana\",\n \"extensions\": [\"tmo\"]\n },\n \"application/vnd.tri.onesource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.trid.tpt\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpt\"]\n },\n \"application/vnd.triscape.mxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxs\"]\n },\n \"application/vnd.trueapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"tra\"]\n },\n \"application/vnd.truedoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ubisoft.webplayer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ufdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"ufd\",\"ufdl\"]\n },\n \"application/vnd.uiq.theme\": {\n \"source\": \"iana\",\n \"extensions\": [\"utz\"]\n },\n \"application/vnd.umajin\": {\n \"source\": \"iana\",\n \"extensions\": [\"umj\"]\n },\n \"application/vnd.unity\": {\n \"source\": \"iana\",\n \"extensions\": [\"unityweb\"]\n },\n \"application/vnd.uoml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uoml\"]\n },\n \"application/vnd.uplanet.alert\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.alert-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.signal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uri-map\": {\n \"source\": \"iana\"\n },\n \"application/vnd.valve.source.material\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcx\"]\n },\n \"application/vnd.vd-study\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vectorworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vel+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.verimatrix.vcas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.veritone.aion+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.veryant.thin\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ves.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vidsoft.vidconference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.visio\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\"]\n },\n \"application/vnd.visionary\": {\n \"source\": \"iana\",\n \"extensions\": [\"vis\"]\n },\n \"application/vnd.vividence.scriptfile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vsf\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsf\"]\n },\n \"application/vnd.wap.sic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.slc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"wbxml\"]\n },\n \"application/vnd.wap.wmlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlc\"]\n },\n \"application/vnd.wap.wmlscriptc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlsc\"]\n },\n \"application/vnd.webturbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"wtb\"]\n },\n \"application/vnd.wfa.dpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.p2p\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.wsc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmf.bootstrap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica.package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.player\": {\n \"source\": \"iana\",\n \"extensions\": [\"nbp\"]\n },\n \"application/vnd.wordperfect\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpd\"]\n },\n \"application/vnd.wqd\": {\n \"source\": \"iana\",\n \"extensions\": [\"wqd\"]\n },\n \"application/vnd.wrq-hp3000-labelled\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wt.stf\": {\n \"source\": \"iana\",\n \"extensions\": [\"stf\"]\n },\n \"application/vnd.wv.csp+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wv.csp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.wv.ssp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xacml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xara\": {\n \"source\": \"iana\",\n \"extensions\": [\"xar\"]\n },\n \"application/vnd.xfdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdl\"]\n },\n \"application/vnd.xfdl.webform\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xmpie.cpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.dpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.plan\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.ppkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.xlim\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.hv-dic\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvd\"]\n },\n \"application/vnd.yamaha.hv-script\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvs\"]\n },\n \"application/vnd.yamaha.hv-voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvp\"]\n },\n \"application/vnd.yamaha.openscoreformat\": {\n \"source\": \"iana\",\n \"extensions\": [\"osf\"]\n },\n \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osfpvg\"]\n },\n \"application/vnd.yamaha.remote-setup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.smaf-audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"saf\"]\n },\n \"application/vnd.yamaha.smaf-phrase\": {\n \"source\": \"iana\",\n \"extensions\": [\"spf\"]\n },\n \"application/vnd.yamaha.through-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.tunnel-udpencap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yaoweme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yellowriver-custom-menu\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmp\"]\n },\n \"application/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.zul\": {\n \"source\": \"iana\",\n \"extensions\": [\"zir\",\"zirz\"]\n },\n \"application/vnd.zzazz.deck+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zaz\"]\n },\n \"application/voicexml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vxml\"]\n },\n \"application/voucher-cms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vq-rtcpxr\": {\n \"source\": \"iana\"\n },\n \"application/wasm\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wasm\"]\n },\n \"application/watcherinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wif\"]\n },\n \"application/webpush-options+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/whoispp-query\": {\n \"source\": \"iana\"\n },\n \"application/whoispp-response\": {\n \"source\": \"iana\"\n },\n \"application/widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wgt\"]\n },\n \"application/winhlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"hlp\"]\n },\n \"application/wita\": {\n \"source\": \"iana\"\n },\n \"application/wordperfect5.1\": {\n \"source\": \"iana\"\n },\n \"application/wsdl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wsdl\"]\n },\n \"application/wspolicy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wspolicy\"]\n },\n \"application/x-7z-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"7z\"]\n },\n \"application/x-abiword\": {\n \"source\": \"apache\",\n \"extensions\": [\"abw\"]\n },\n \"application/x-ace-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"ace\"]\n },\n \"application/x-amf\": {\n \"source\": \"apache\"\n },\n \"application/x-apple-diskimage\": {\n \"source\": \"apache\",\n \"extensions\": [\"dmg\"]\n },\n \"application/x-arj\": {\n \"compressible\": false,\n \"extensions\": [\"arj\"]\n },\n \"application/x-authorware-bin\": {\n \"source\": \"apache\",\n \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n },\n \"application/x-authorware-map\": {\n \"source\": \"apache\",\n \"extensions\": [\"aam\"]\n },\n \"application/x-authorware-seg\": {\n \"source\": \"apache\",\n \"extensions\": [\"aas\"]\n },\n \"application/x-bcpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"bcpio\"]\n },\n \"application/x-bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/x-bittorrent\": {\n \"source\": \"apache\",\n \"extensions\": [\"torrent\"]\n },\n \"application/x-blorb\": {\n \"source\": \"apache\",\n \"extensions\": [\"blb\",\"blorb\"]\n },\n \"application/x-bzip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz\"]\n },\n \"application/x-bzip2\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz2\",\"boz\"]\n },\n \"application/x-cbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n },\n \"application/x-cdlink\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcd\"]\n },\n \"application/x-cfs-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"cfs\"]\n },\n \"application/x-chat\": {\n \"source\": \"apache\",\n \"extensions\": [\"chat\"]\n },\n \"application/x-chess-pgn\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgn\"]\n },\n \"application/x-chrome-extension\": {\n \"extensions\": [\"crx\"]\n },\n \"application/x-cocoa\": {\n \"source\": \"nginx\",\n \"extensions\": [\"cco\"]\n },\n \"application/x-compress\": {\n \"source\": \"apache\"\n },\n \"application/x-conference\": {\n \"source\": \"apache\",\n \"extensions\": [\"nsc\"]\n },\n \"application/x-cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpio\"]\n },\n \"application/x-csh\": {\n \"source\": \"apache\",\n \"extensions\": [\"csh\"]\n },\n \"application/x-deb\": {\n \"compressible\": false\n },\n \"application/x-debian-package\": {\n \"source\": \"apache\",\n \"extensions\": [\"deb\",\"udeb\"]\n },\n \"application/x-dgc-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"dgc\"]\n },\n \"application/x-director\": {\n \"source\": \"apache\",\n \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n },\n \"application/x-doom\": {\n \"source\": \"apache\",\n \"extensions\": [\"wad\"]\n },\n \"application/x-dtbncx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ncx\"]\n },\n \"application/x-dtbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dtb\"]\n },\n \"application/x-dtbresource+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"res\"]\n },\n \"application/x-dvi\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"dvi\"]\n },\n \"application/x-envoy\": {\n \"source\": \"apache\",\n \"extensions\": [\"evy\"]\n },\n \"application/x-eva\": {\n \"source\": \"apache\",\n \"extensions\": [\"eva\"]\n },\n \"application/x-font-bdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"bdf\"]\n },\n \"application/x-font-dos\": {\n \"source\": \"apache\"\n },\n \"application/x-font-framemaker\": {\n \"source\": \"apache\"\n },\n \"application/x-font-ghostscript\": {\n \"source\": \"apache\",\n \"extensions\": [\"gsf\"]\n },\n \"application/x-font-libgrx\": {\n \"source\": \"apache\"\n },\n \"application/x-font-linux-psf\": {\n \"source\": \"apache\",\n \"extensions\": [\"psf\"]\n },\n \"application/x-font-pcf\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcf\"]\n },\n \"application/x-font-snf\": {\n \"source\": \"apache\",\n \"extensions\": [\"snf\"]\n },\n \"application/x-font-speedo\": {\n \"source\": \"apache\"\n },\n \"application/x-font-sunos-news\": {\n \"source\": \"apache\"\n },\n \"application/x-font-type1\": {\n \"source\": \"apache\",\n \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n },\n \"application/x-font-vfont\": {\n \"source\": \"apache\"\n },\n \"application/x-freearc\": {\n \"source\": \"apache\",\n \"extensions\": [\"arc\"]\n },\n \"application/x-futuresplash\": {\n \"source\": \"apache\",\n \"extensions\": [\"spl\"]\n },\n \"application/x-gca-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"gca\"]\n },\n \"application/x-glulx\": {\n \"source\": \"apache\",\n \"extensions\": [\"ulx\"]\n },\n \"application/x-gnumeric\": {\n \"source\": \"apache\",\n \"extensions\": [\"gnumeric\"]\n },\n \"application/x-gramps-xml\": {\n \"source\": \"apache\",\n \"extensions\": [\"gramps\"]\n },\n \"application/x-gtar\": {\n \"source\": \"apache\",\n \"extensions\": [\"gtar\"]\n },\n \"application/x-gzip\": {\n \"source\": \"apache\"\n },\n \"application/x-hdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"hdf\"]\n },\n \"application/x-httpd-php\": {\n \"compressible\": true,\n \"extensions\": [\"php\"]\n },\n \"application/x-install-instructions\": {\n \"source\": \"apache\",\n \"extensions\": [\"install\"]\n },\n \"application/x-iso9660-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"iso\"]\n },\n \"application/x-iwork-keynote-sffkey\": {\n \"extensions\": [\"key\"]\n },\n \"application/x-iwork-numbers-sffnumbers\": {\n \"extensions\": [\"numbers\"]\n },\n \"application/x-iwork-pages-sffpages\": {\n \"extensions\": [\"pages\"]\n },\n \"application/x-java-archive-diff\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jardiff\"]\n },\n \"application/x-java-jnlp-file\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jnlp\"]\n },\n \"application/x-javascript\": {\n \"compressible\": true\n },\n \"application/x-keepass2\": {\n \"extensions\": [\"kdbx\"]\n },\n \"application/x-latex\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"latex\"]\n },\n \"application/x-lua-bytecode\": {\n \"extensions\": [\"luac\"]\n },\n \"application/x-lzh-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"lzh\",\"lha\"]\n },\n \"application/x-makeself\": {\n \"source\": \"nginx\",\n \"extensions\": [\"run\"]\n },\n \"application/x-mie\": {\n \"source\": \"apache\",\n \"extensions\": [\"mie\"]\n },\n \"application/x-mobipocket-ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"prc\",\"mobi\"]\n },\n \"application/x-mpegurl\": {\n \"compressible\": false\n },\n \"application/x-ms-application\": {\n \"source\": \"apache\",\n \"extensions\": [\"application\"]\n },\n \"application/x-ms-shortcut\": {\n \"source\": \"apache\",\n \"extensions\": [\"lnk\"]\n },\n \"application/x-ms-wmd\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmd\"]\n },\n \"application/x-ms-wmz\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmz\"]\n },\n \"application/x-ms-xbap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbap\"]\n },\n \"application/x-msaccess\": {\n \"source\": \"apache\",\n \"extensions\": [\"mdb\"]\n },\n \"application/x-msbinder\": {\n \"source\": \"apache\",\n \"extensions\": [\"obd\"]\n },\n \"application/x-mscardfile\": {\n \"source\": \"apache\",\n \"extensions\": [\"crd\"]\n },\n \"application/x-msclip\": {\n \"source\": \"apache\",\n \"extensions\": [\"clp\"]\n },\n \"application/x-msdos-program\": {\n \"extensions\": [\"exe\"]\n },\n \"application/x-msdownload\": {\n \"source\": \"apache\",\n \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n },\n \"application/x-msmediaview\": {\n \"source\": \"apache\",\n \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n },\n \"application/x-msmetafile\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n },\n \"application/x-msmoney\": {\n \"source\": \"apache\",\n \"extensions\": [\"mny\"]\n },\n \"application/x-mspublisher\": {\n \"source\": \"apache\",\n \"extensions\": [\"pub\"]\n },\n \"application/x-msschedule\": {\n \"source\": \"apache\",\n \"extensions\": [\"scd\"]\n },\n \"application/x-msterminal\": {\n \"source\": \"apache\",\n \"extensions\": [\"trm\"]\n },\n \"application/x-mswrite\": {\n \"source\": \"apache\",\n \"extensions\": [\"wri\"]\n },\n \"application/x-netcdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"nc\",\"cdf\"]\n },\n \"application/x-ns-proxy-autoconfig\": {\n \"compressible\": true,\n \"extensions\": [\"pac\"]\n },\n \"application/x-nzb\": {\n \"source\": \"apache\",\n \"extensions\": [\"nzb\"]\n },\n \"application/x-perl\": {\n \"source\": \"nginx\",\n \"extensions\": [\"pl\",\"pm\"]\n },\n \"application/x-pilot\": {\n \"source\": \"nginx\",\n \"extensions\": [\"prc\",\"pdb\"]\n },\n \"application/x-pkcs12\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"p12\",\"pfx\"]\n },\n \"application/x-pkcs7-certificates\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7b\",\"spc\"]\n },\n \"application/x-pkcs7-certreqresp\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7r\"]\n },\n \"application/x-pki-message\": {\n \"source\": \"iana\"\n },\n \"application/x-rar-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"rar\"]\n },\n \"application/x-redhat-package-manager\": {\n \"source\": \"nginx\",\n \"extensions\": [\"rpm\"]\n },\n \"application/x-research-info-systems\": {\n \"source\": \"apache\",\n \"extensions\": [\"ris\"]\n },\n \"application/x-sea\": {\n \"source\": \"nginx\",\n \"extensions\": [\"sea\"]\n },\n \"application/x-sh\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"sh\"]\n },\n \"application/x-shar\": {\n \"source\": \"apache\",\n \"extensions\": [\"shar\"]\n },\n \"application/x-shockwave-flash\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"swf\"]\n },\n \"application/x-silverlight-app\": {\n \"source\": \"apache\",\n \"extensions\": [\"xap\"]\n },\n \"application/x-sql\": {\n \"source\": \"apache\",\n \"extensions\": [\"sql\"]\n },\n \"application/x-stuffit\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"sit\"]\n },\n \"application/x-stuffitx\": {\n \"source\": \"apache\",\n \"extensions\": [\"sitx\"]\n },\n \"application/x-subrip\": {\n \"source\": \"apache\",\n \"extensions\": [\"srt\"]\n },\n \"application/x-sv4cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4cpio\"]\n },\n \"application/x-sv4crc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4crc\"]\n },\n \"application/x-t3vm-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"t3\"]\n },\n \"application/x-tads\": {\n \"source\": \"apache\",\n \"extensions\": [\"gam\"]\n },\n \"application/x-tar\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"tar\"]\n },\n \"application/x-tcl\": {\n \"source\": \"apache\",\n \"extensions\": [\"tcl\",\"tk\"]\n },\n \"application/x-tex\": {\n \"source\": \"apache\",\n \"extensions\": [\"tex\"]\n },\n \"application/x-tex-tfm\": {\n \"source\": \"apache\",\n \"extensions\": [\"tfm\"]\n },\n \"application/x-texinfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"texinfo\",\"texi\"]\n },\n \"application/x-tgif\": {\n \"source\": \"apache\",\n \"extensions\": [\"obj\"]\n },\n \"application/x-ustar\": {\n \"source\": \"apache\",\n \"extensions\": [\"ustar\"]\n },\n \"application/x-virtualbox-hdd\": {\n \"compressible\": true,\n \"extensions\": [\"hdd\"]\n },\n \"application/x-virtualbox-ova\": {\n \"compressible\": true,\n \"extensions\": [\"ova\"]\n },\n \"application/x-virtualbox-ovf\": {\n \"compressible\": true,\n \"extensions\": [\"ovf\"]\n },\n \"application/x-virtualbox-vbox\": {\n \"compressible\": true,\n \"extensions\": [\"vbox\"]\n },\n \"application/x-virtualbox-vbox-extpack\": {\n \"compressible\": false,\n \"extensions\": [\"vbox-extpack\"]\n },\n \"application/x-virtualbox-vdi\": {\n \"compressible\": true,\n \"extensions\": [\"vdi\"]\n },\n \"application/x-virtualbox-vhd\": {\n \"compressible\": true,\n \"extensions\": [\"vhd\"]\n },\n \"application/x-virtualbox-vmdk\": {\n \"compressible\": true,\n \"extensions\": [\"vmdk\"]\n },\n \"application/x-wais-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"src\"]\n },\n \"application/x-web-app-manifest+json\": {\n \"compressible\": true,\n \"extensions\": [\"webapp\"]\n },\n \"application/x-www-form-urlencoded\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/x-x509-ca-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"der\",\"crt\",\"pem\"]\n },\n \"application/x-x509-ca-ra-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-x509-next-ca-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-xfig\": {\n \"source\": \"apache\",\n \"extensions\": [\"fig\"]\n },\n \"application/x-xliff+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/x-xpinstall\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"xpi\"]\n },\n \"application/x-xz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xz\"]\n },\n \"application/x-zmachine\": {\n \"source\": \"apache\",\n \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n },\n \"application/x400-bp\": {\n \"source\": \"iana\"\n },\n \"application/xacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xaml+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xaml\"]\n },\n \"application/xcap-att+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xav\"]\n },\n \"application/xcap-caps+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xca\"]\n },\n \"application/xcap-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdf\"]\n },\n \"application/xcap-el+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xel\"]\n },\n \"application/xcap-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcap-ns+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xns\"]\n },\n \"application/xcon-conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcon-conference-info-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xenc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xenc\"]\n },\n \"application/xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xhtml\",\"xht\"]\n },\n \"application/xhtml-voice+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/xliff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n },\n \"application/xml-dtd\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dtd\"]\n },\n \"application/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"application/xml-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xmpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xop\"]\n },\n \"application/xproc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xpl\"]\n },\n \"application/xslt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xsl\",\"xslt\"]\n },\n \"application/xspf+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xspf\"]\n },\n \"application/xv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n },\n \"application/yang\": {\n \"source\": \"iana\",\n \"extensions\": [\"yang\"]\n },\n \"application/yang-data+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yin+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"yin\"]\n },\n \"application/zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"zip\"]\n },\n \"application/zlib\": {\n \"source\": \"iana\"\n },\n \"application/zstd\": {\n \"source\": \"iana\"\n },\n \"audio/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/3gpp\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"3gpp\"]\n },\n \"audio/3gpp2\": {\n \"source\": \"iana\"\n },\n \"audio/aac\": {\n \"source\": \"iana\"\n },\n \"audio/ac3\": {\n \"source\": \"iana\"\n },\n \"audio/adpcm\": {\n \"source\": \"apache\",\n \"extensions\": [\"adp\"]\n },\n \"audio/amr\": {\n \"source\": \"iana\",\n \"extensions\": [\"amr\"]\n },\n \"audio/amr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/amr-wb+\": {\n \"source\": \"iana\"\n },\n \"audio/aptx\": {\n \"source\": \"iana\"\n },\n \"audio/asc\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-advanced-lossless\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-x\": {\n \"source\": \"iana\"\n },\n \"audio/atrac3\": {\n \"source\": \"iana\"\n },\n \"audio/basic\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"au\",\"snd\"]\n },\n \"audio/bv16\": {\n \"source\": \"iana\"\n },\n \"audio/bv32\": {\n \"source\": \"iana\"\n },\n \"audio/clearmode\": {\n \"source\": \"iana\"\n },\n \"audio/cn\": {\n \"source\": \"iana\"\n },\n \"audio/dat12\": {\n \"source\": \"iana\"\n },\n \"audio/dls\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es201108\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202050\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202211\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202212\": {\n \"source\": \"iana\"\n },\n \"audio/dv\": {\n \"source\": \"iana\"\n },\n \"audio/dvi4\": {\n \"source\": \"iana\"\n },\n \"audio/eac3\": {\n \"source\": \"iana\"\n },\n \"audio/encaprtp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc\": {\n \"source\": \"iana\"\n },\n \"audio/evrc-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc0\": {\n \"source\": \"iana\"\n },\n \"audio/evrc1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb1\": {\n \"source\": \"iana\"\n },\n \"audio/evs\": {\n \"source\": \"iana\"\n },\n \"audio/flexfec\": {\n \"source\": \"iana\"\n },\n \"audio/fwdred\": {\n \"source\": \"iana\"\n },\n \"audio/g711-0\": {\n \"source\": \"iana\"\n },\n \"audio/g719\": {\n \"source\": \"iana\"\n },\n \"audio/g722\": {\n \"source\": \"iana\"\n },\n \"audio/g7221\": {\n \"source\": \"iana\"\n },\n \"audio/g723\": {\n \"source\": \"iana\"\n },\n \"audio/g726-16\": {\n \"source\": \"iana\"\n },\n \"audio/g726-24\": {\n \"source\": \"iana\"\n },\n \"audio/g726-32\": {\n \"source\": \"iana\"\n },\n \"audio/g726-40\": {\n \"source\": \"iana\"\n },\n \"audio/g728\": {\n \"source\": \"iana\"\n },\n \"audio/g729\": {\n \"source\": \"iana\"\n },\n \"audio/g7291\": {\n \"source\": \"iana\"\n },\n \"audio/g729d\": {\n \"source\": \"iana\"\n },\n \"audio/g729e\": {\n \"source\": \"iana\"\n },\n \"audio/gsm\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-efr\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-hr-08\": {\n \"source\": \"iana\"\n },\n \"audio/ilbc\": {\n \"source\": \"iana\"\n },\n \"audio/ip-mr_v2.5\": {\n \"source\": \"iana\"\n },\n \"audio/isac\": {\n \"source\": \"apache\"\n },\n \"audio/l16\": {\n \"source\": \"iana\"\n },\n \"audio/l20\": {\n \"source\": \"iana\"\n },\n \"audio/l24\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/l8\": {\n \"source\": \"iana\"\n },\n \"audio/lpc\": {\n \"source\": \"iana\"\n },\n \"audio/melp\": {\n \"source\": \"iana\"\n },\n \"audio/melp1200\": {\n \"source\": \"iana\"\n },\n \"audio/melp2400\": {\n \"source\": \"iana\"\n },\n \"audio/melp600\": {\n \"source\": \"iana\"\n },\n \"audio/mhas\": {\n \"source\": \"iana\"\n },\n \"audio/midi\": {\n \"source\": \"apache\",\n \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n },\n \"audio/mobile-xmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxmf\"]\n },\n \"audio/mp3\": {\n \"compressible\": false,\n \"extensions\": [\"mp3\"]\n },\n \"audio/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"m4a\",\"mp4a\"]\n },\n \"audio/mp4a-latm\": {\n \"source\": \"iana\"\n },\n \"audio/mpa\": {\n \"source\": \"iana\"\n },\n \"audio/mpa-robust\": {\n \"source\": \"iana\"\n },\n \"audio/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n },\n \"audio/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"audio/musepack\": {\n \"source\": \"apache\"\n },\n \"audio/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n },\n \"audio/opus\": {\n \"source\": \"iana\"\n },\n \"audio/parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/pcma\": {\n \"source\": \"iana\"\n },\n \"audio/pcma-wb\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu-wb\": {\n \"source\": \"iana\"\n },\n \"audio/prs.sid\": {\n \"source\": \"iana\"\n },\n \"audio/qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/raptorfec\": {\n \"source\": \"iana\"\n },\n \"audio/red\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/rtploopback\": {\n \"source\": \"iana\"\n },\n \"audio/rtx\": {\n \"source\": \"iana\"\n },\n \"audio/s3m\": {\n \"source\": \"apache\",\n \"extensions\": [\"s3m\"]\n },\n \"audio/scip\": {\n \"source\": \"iana\"\n },\n \"audio/silk\": {\n \"source\": \"apache\",\n \"extensions\": [\"sil\"]\n },\n \"audio/smv\": {\n \"source\": \"iana\"\n },\n \"audio/smv-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/smv0\": {\n \"source\": \"iana\"\n },\n \"audio/sofa\": {\n \"source\": \"iana\"\n },\n \"audio/sp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/speex\": {\n \"source\": \"iana\"\n },\n \"audio/t140c\": {\n \"source\": \"iana\"\n },\n \"audio/t38\": {\n \"source\": \"iana\"\n },\n \"audio/telephone-event\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp_bb\": {\n \"source\": \"iana\"\n },\n \"audio/tone\": {\n \"source\": \"iana\"\n },\n \"audio/tsvcis\": {\n \"source\": \"iana\"\n },\n \"audio/uemclip\": {\n \"source\": \"iana\"\n },\n \"audio/ulpfec\": {\n \"source\": \"iana\"\n },\n \"audio/usac\": {\n \"source\": \"iana\"\n },\n \"audio/vdvi\": {\n \"source\": \"iana\"\n },\n \"audio/vmr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.3gpp.iufp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.4sb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.audiokoz\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.celp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cisco.nse\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cmles.radio-events\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.anp1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.inf1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dece.audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"uva\",\"uvva\"]\n },\n \"audio/vnd.digital-winds\": {\n \"source\": \"iana\",\n \"extensions\": [\"eol\"]\n },\n \"audio/vnd.dlna.adts\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mlp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mps\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2x\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2z\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pulse.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dra\": {\n \"source\": \"iana\",\n \"extensions\": [\"dra\"]\n },\n \"audio/vnd.dts\": {\n \"source\": \"iana\",\n \"extensions\": [\"dts\"]\n },\n \"audio/vnd.dts.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"dtshd\"]\n },\n \"audio/vnd.dts.uhd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dvb.file\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.everad.plj\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.hns.audio\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.lucent.voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"lvp\"]\n },\n \"audio/vnd.ms-playready.media.pya\": {\n \"source\": \"iana\",\n \"extensions\": [\"pya\"]\n },\n \"audio/vnd.nokia.mobile-xmf\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nortel.vbk\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nuera.ecelp4800\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp4800\"]\n },\n \"audio/vnd.nuera.ecelp7470\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp7470\"]\n },\n \"audio/vnd.nuera.ecelp9600\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp9600\"]\n },\n \"audio/vnd.octel.sbc\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.presonus.multitrack\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rhetorex.32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rip\": {\n \"source\": \"iana\",\n \"extensions\": [\"rip\"]\n },\n \"audio/vnd.rn-realaudio\": {\n \"compressible\": false\n },\n \"audio/vnd.sealedmedia.softseal.mpeg\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.vmx.cvsd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.wave\": {\n \"compressible\": false\n },\n \"audio/vorbis\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/vorbis-config\": {\n \"source\": \"iana\"\n },\n \"audio/wav\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/wave\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"weba\"]\n },\n \"audio/x-aac\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"aac\"]\n },\n \"audio/x-aiff\": {\n \"source\": \"apache\",\n \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n },\n \"audio/x-caf\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"caf\"]\n },\n \"audio/x-flac\": {\n \"source\": \"apache\",\n \"extensions\": [\"flac\"]\n },\n \"audio/x-m4a\": {\n \"source\": \"nginx\",\n \"extensions\": [\"m4a\"]\n },\n \"audio/x-matroska\": {\n \"source\": \"apache\",\n \"extensions\": [\"mka\"]\n },\n \"audio/x-mpegurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"m3u\"]\n },\n \"audio/x-ms-wax\": {\n \"source\": \"apache\",\n \"extensions\": [\"wax\"]\n },\n \"audio/x-ms-wma\": {\n \"source\": \"apache\",\n \"extensions\": [\"wma\"]\n },\n \"audio/x-pn-realaudio\": {\n \"source\": \"apache\",\n \"extensions\": [\"ram\",\"ra\"]\n },\n \"audio/x-pn-realaudio-plugin\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmp\"]\n },\n \"audio/x-realaudio\": {\n \"source\": \"nginx\",\n \"extensions\": [\"ra\"]\n },\n \"audio/x-tta\": {\n \"source\": \"apache\"\n },\n \"audio/x-wav\": {\n \"source\": \"apache\",\n \"extensions\": [\"wav\"]\n },\n \"audio/xm\": {\n \"source\": \"apache\",\n \"extensions\": [\"xm\"]\n },\n \"chemical/x-cdx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cdx\"]\n },\n \"chemical/x-cif\": {\n \"source\": \"apache\",\n \"extensions\": [\"cif\"]\n },\n \"chemical/x-cmdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmdf\"]\n },\n \"chemical/x-cml\": {\n \"source\": \"apache\",\n \"extensions\": [\"cml\"]\n },\n \"chemical/x-csml\": {\n \"source\": \"apache\",\n \"extensions\": [\"csml\"]\n },\n \"chemical/x-pdb\": {\n \"source\": \"apache\"\n },\n \"chemical/x-xyz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xyz\"]\n },\n \"font/collection\": {\n \"source\": \"iana\",\n \"extensions\": [\"ttc\"]\n },\n \"font/otf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"otf\"]\n },\n \"font/sfnt\": {\n \"source\": \"iana\"\n },\n \"font/ttf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttf\"]\n },\n \"font/woff\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff\"]\n },\n \"font/woff2\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff2\"]\n },\n \"image/aces\": {\n \"source\": \"iana\",\n \"extensions\": [\"exr\"]\n },\n \"image/apng\": {\n \"compressible\": false,\n \"extensions\": [\"apng\"]\n },\n \"image/avci\": {\n \"source\": \"iana\",\n \"extensions\": [\"avci\"]\n },\n \"image/avcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"avcs\"]\n },\n \"image/avif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"avif\"]\n },\n \"image/bmp\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/cgm\": {\n \"source\": \"iana\",\n \"extensions\": [\"cgm\"]\n },\n \"image/dicom-rle\": {\n \"source\": \"iana\",\n \"extensions\": [\"drle\"]\n },\n \"image/emf\": {\n \"source\": \"iana\",\n \"extensions\": [\"emf\"]\n },\n \"image/fits\": {\n \"source\": \"iana\",\n \"extensions\": [\"fits\"]\n },\n \"image/g3fax\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3\"]\n },\n \"image/gif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gif\"]\n },\n \"image/heic\": {\n \"source\": \"iana\",\n \"extensions\": [\"heic\"]\n },\n \"image/heic-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heics\"]\n },\n \"image/heif\": {\n \"source\": \"iana\",\n \"extensions\": [\"heif\"]\n },\n \"image/heif-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heifs\"]\n },\n \"image/hej2k\": {\n \"source\": \"iana\",\n \"extensions\": [\"hej2\"]\n },\n \"image/hsj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"hsj2\"]\n },\n \"image/ief\": {\n \"source\": \"iana\",\n \"extensions\": [\"ief\"]\n },\n \"image/jls\": {\n \"source\": \"iana\",\n \"extensions\": [\"jls\"]\n },\n \"image/jp2\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jp2\",\"jpg2\"]\n },\n \"image/jpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpeg\",\"jpg\",\"jpe\"]\n },\n \"image/jph\": {\n \"source\": \"iana\",\n \"extensions\": [\"jph\"]\n },\n \"image/jphc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jhc\"]\n },\n \"image/jpm\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpm\"]\n },\n \"image/jpx\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpx\",\"jpf\"]\n },\n \"image/jxr\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxr\"]\n },\n \"image/jxra\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxra\"]\n },\n \"image/jxrs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxrs\"]\n },\n \"image/jxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxs\"]\n },\n \"image/jxsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsc\"]\n },\n \"image/jxsi\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsi\"]\n },\n \"image/jxss\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxss\"]\n },\n \"image/ktx\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx\"]\n },\n \"image/ktx2\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx2\"]\n },\n \"image/naplps\": {\n \"source\": \"iana\"\n },\n \"image/pjpeg\": {\n \"compressible\": false\n },\n \"image/png\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"png\"]\n },\n \"image/prs.btif\": {\n \"source\": \"iana\",\n \"extensions\": [\"btif\"]\n },\n \"image/prs.pti\": {\n \"source\": \"iana\",\n \"extensions\": [\"pti\"]\n },\n \"image/pwg-raster\": {\n \"source\": \"iana\"\n },\n \"image/sgi\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgi\"]\n },\n \"image/svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"svg\",\"svgz\"]\n },\n \"image/t38\": {\n \"source\": \"iana\",\n \"extensions\": [\"t38\"]\n },\n \"image/tiff\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"tif\",\"tiff\"]\n },\n \"image/tiff-fx\": {\n \"source\": \"iana\",\n \"extensions\": [\"tfx\"]\n },\n \"image/vnd.adobe.photoshop\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"psd\"]\n },\n \"image/vnd.airzip.accelerator.azv\": {\n \"source\": \"iana\",\n \"extensions\": [\"azv\"]\n },\n \"image/vnd.cns.inf2\": {\n \"source\": \"iana\"\n },\n \"image/vnd.dece.graphic\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n },\n \"image/vnd.djvu\": {\n \"source\": \"iana\",\n \"extensions\": [\"djvu\",\"djv\"]\n },\n \"image/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"image/vnd.dwg\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwg\"]\n },\n \"image/vnd.dxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxf\"]\n },\n \"image/vnd.fastbidsheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fbs\"]\n },\n \"image/vnd.fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"fpx\"]\n },\n \"image/vnd.fst\": {\n \"source\": \"iana\",\n \"extensions\": [\"fst\"]\n },\n \"image/vnd.fujixerox.edmics-mmr\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmr\"]\n },\n \"image/vnd.fujixerox.edmics-rlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"rlc\"]\n },\n \"image/vnd.globalgraphics.pgb\": {\n \"source\": \"iana\"\n },\n \"image/vnd.microsoft.icon\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/vnd.mix\": {\n \"source\": \"iana\"\n },\n \"image/vnd.mozilla.apng\": {\n \"source\": \"iana\"\n },\n \"image/vnd.ms-dds\": {\n \"compressible\": true,\n \"extensions\": [\"dds\"]\n },\n \"image/vnd.ms-modi\": {\n \"source\": \"iana\",\n \"extensions\": [\"mdi\"]\n },\n \"image/vnd.ms-photo\": {\n \"source\": \"apache\",\n \"extensions\": [\"wdp\"]\n },\n \"image/vnd.net-fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"npx\"]\n },\n \"image/vnd.pco.b16\": {\n \"source\": \"iana\",\n \"extensions\": [\"b16\"]\n },\n \"image/vnd.radiance\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealed.png\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.gif\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.jpg\": {\n \"source\": \"iana\"\n },\n \"image/vnd.svf\": {\n \"source\": \"iana\"\n },\n \"image/vnd.tencent.tap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tap\"]\n },\n \"image/vnd.valve.source.texture\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtf\"]\n },\n \"image/vnd.wap.wbmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"wbmp\"]\n },\n \"image/vnd.xiff\": {\n \"source\": \"iana\",\n \"extensions\": [\"xif\"]\n },\n \"image/vnd.zbrush.pcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcx\"]\n },\n \"image/webp\": {\n \"source\": \"apache\",\n \"extensions\": [\"webp\"]\n },\n \"image/wmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmf\"]\n },\n \"image/x-3ds\": {\n \"source\": \"apache\",\n \"extensions\": [\"3ds\"]\n },\n \"image/x-cmu-raster\": {\n \"source\": \"apache\",\n \"extensions\": [\"ras\"]\n },\n \"image/x-cmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmx\"]\n },\n \"image/x-freehand\": {\n \"source\": \"apache\",\n \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n },\n \"image/x-icon\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/x-jng\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jng\"]\n },\n \"image/x-mrsid-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"sid\"]\n },\n \"image/x-ms-bmp\": {\n \"source\": \"nginx\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/x-pcx\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcx\"]\n },\n \"image/x-pict\": {\n \"source\": \"apache\",\n \"extensions\": [\"pic\",\"pct\"]\n },\n \"image/x-portable-anymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pnm\"]\n },\n \"image/x-portable-bitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pbm\"]\n },\n \"image/x-portable-graymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgm\"]\n },\n \"image/x-portable-pixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"ppm\"]\n },\n \"image/x-rgb\": {\n \"source\": \"apache\",\n \"extensions\": [\"rgb\"]\n },\n \"image/x-tga\": {\n \"source\": \"apache\",\n \"extensions\": [\"tga\"]\n },\n \"image/x-xbitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbm\"]\n },\n \"image/x-xcf\": {\n \"compressible\": false\n },\n \"image/x-xpixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xpm\"]\n },\n \"image/x-xwindowdump\": {\n \"source\": \"apache\",\n \"extensions\": [\"xwd\"]\n },\n \"message/cpim\": {\n \"source\": \"iana\"\n },\n \"message/delivery-status\": {\n \"source\": \"iana\"\n },\n \"message/disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\n \"disposition-notification\"\n ]\n },\n \"message/external-body\": {\n \"source\": \"iana\"\n },\n \"message/feedback-report\": {\n \"source\": \"iana\"\n },\n \"message/global\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8msg\"]\n },\n \"message/global-delivery-status\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8dsn\"]\n },\n \"message/global-disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8mdn\"]\n },\n \"message/global-headers\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8hdr\"]\n },\n \"message/http\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/imdn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"message/news\": {\n \"source\": \"iana\"\n },\n \"message/partial\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/rfc822\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eml\",\"mime\"]\n },\n \"message/s-http\": {\n \"source\": \"iana\"\n },\n \"message/sip\": {\n \"source\": \"iana\"\n },\n \"message/sipfrag\": {\n \"source\": \"iana\"\n },\n \"message/tracking-status\": {\n \"source\": \"iana\"\n },\n \"message/vnd.si.simp\": {\n \"source\": \"iana\"\n },\n \"message/vnd.wfa.wsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wsc\"]\n },\n \"model/3mf\": {\n \"source\": \"iana\",\n \"extensions\": [\"3mf\"]\n },\n \"model/e57\": {\n \"source\": \"iana\"\n },\n \"model/gltf+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gltf\"]\n },\n \"model/gltf-binary\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"glb\"]\n },\n \"model/iges\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"igs\",\"iges\"]\n },\n \"model/mesh\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n },\n \"model/mtl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mtl\"]\n },\n \"model/obj\": {\n \"source\": \"iana\",\n \"extensions\": [\"obj\"]\n },\n \"model/step\": {\n \"source\": \"iana\"\n },\n \"model/step+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"stpx\"]\n },\n \"model/step+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpz\"]\n },\n \"model/step-xml+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpxz\"]\n },\n \"model/stl\": {\n \"source\": \"iana\",\n \"extensions\": [\"stl\"]\n },\n \"model/vnd.collada+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dae\"]\n },\n \"model/vnd.dwf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwf\"]\n },\n \"model/vnd.flatland.3dml\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"gdl\"]\n },\n \"model/vnd.gs-gdl\": {\n \"source\": \"apache\"\n },\n \"model/vnd.gs.gdl\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gtw\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtw\"]\n },\n \"model/vnd.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"model/vnd.mts\": {\n \"source\": \"iana\",\n \"extensions\": [\"mts\"]\n },\n \"model/vnd.opengex\": {\n \"source\": \"iana\",\n \"extensions\": [\"ogex\"]\n },\n \"model/vnd.parasolid.transmit.binary\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_b\"]\n },\n \"model/vnd.parasolid.transmit.text\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_t\"]\n },\n \"model/vnd.pytha.pyox\": {\n \"source\": \"iana\"\n },\n \"model/vnd.rosette.annotated-data-model\": {\n \"source\": \"iana\"\n },\n \"model/vnd.sap.vds\": {\n \"source\": \"iana\",\n \"extensions\": [\"vds\"]\n },\n \"model/vnd.usdz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"usdz\"]\n },\n \"model/vnd.valve.source.compiled-map\": {\n \"source\": \"iana\",\n \"extensions\": [\"bsp\"]\n },\n \"model/vnd.vtu\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtu\"]\n },\n \"model/vrml\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"wrl\",\"vrml\"]\n },\n \"model/x3d+binary\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3db\",\"x3dbz\"]\n },\n \"model/x3d+fastinfoset\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3db\"]\n },\n \"model/x3d+vrml\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3dv\",\"x3dvz\"]\n },\n \"model/x3d+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"x3d\",\"x3dz\"]\n },\n \"model/x3d-vrml\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3dv\"]\n },\n \"multipart/alternative\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/appledouble\": {\n \"source\": \"iana\"\n },\n \"multipart/byteranges\": {\n \"source\": \"iana\"\n },\n \"multipart/digest\": {\n \"source\": \"iana\"\n },\n \"multipart/encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/form-data\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/header-set\": {\n \"source\": \"iana\"\n },\n \"multipart/mixed\": {\n \"source\": \"iana\"\n },\n \"multipart/multilingual\": {\n \"source\": \"iana\"\n },\n \"multipart/parallel\": {\n \"source\": \"iana\"\n },\n \"multipart/related\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/report\": {\n \"source\": \"iana\"\n },\n \"multipart/signed\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/vnd.bint.med-plus\": {\n \"source\": \"iana\"\n },\n \"multipart/voice-message\": {\n \"source\": \"iana\"\n },\n \"multipart/x-mixed-replace\": {\n \"source\": \"iana\"\n },\n \"text/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"text/cache-manifest\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"appcache\",\"manifest\"]\n },\n \"text/calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"ics\",\"ifb\"]\n },\n \"text/calender\": {\n \"compressible\": true\n },\n \"text/cmd\": {\n \"compressible\": true\n },\n \"text/coffeescript\": {\n \"extensions\": [\"coffee\",\"litcoffee\"]\n },\n \"text/cql\": {\n \"source\": \"iana\"\n },\n \"text/cql-expression\": {\n \"source\": \"iana\"\n },\n \"text/cql-identifier\": {\n \"source\": \"iana\"\n },\n \"text/css\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"css\"]\n },\n \"text/csv\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csv\"]\n },\n \"text/csv-schema\": {\n \"source\": \"iana\"\n },\n \"text/directory\": {\n \"source\": \"iana\"\n },\n \"text/dns\": {\n \"source\": \"iana\"\n },\n \"text/ecmascript\": {\n \"source\": \"iana\"\n },\n \"text/encaprtp\": {\n \"source\": \"iana\"\n },\n \"text/enriched\": {\n \"source\": \"iana\"\n },\n \"text/fhirpath\": {\n \"source\": \"iana\"\n },\n \"text/flexfec\": {\n \"source\": \"iana\"\n },\n \"text/fwdred\": {\n \"source\": \"iana\"\n },\n \"text/gff3\": {\n \"source\": \"iana\"\n },\n \"text/grammar-ref-list\": {\n \"source\": \"iana\"\n },\n \"text/html\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"html\",\"htm\",\"shtml\"]\n },\n \"text/jade\": {\n \"extensions\": [\"jade\"]\n },\n \"text/javascript\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"text/jcr-cnd\": {\n \"source\": \"iana\"\n },\n \"text/jsx\": {\n \"compressible\": true,\n \"extensions\": [\"jsx\"]\n },\n \"text/less\": {\n \"compressible\": true,\n \"extensions\": [\"less\"]\n },\n \"text/markdown\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"markdown\",\"md\"]\n },\n \"text/mathml\": {\n \"source\": \"nginx\",\n \"extensions\": [\"mml\"]\n },\n \"text/mdx\": {\n \"compressible\": true,\n \"extensions\": [\"mdx\"]\n },\n \"text/mizar\": {\n \"source\": \"iana\"\n },\n \"text/n3\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"n3\"]\n },\n \"text/parameters\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/parityfec\": {\n \"source\": \"iana\"\n },\n \"text/plain\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n },\n \"text/provenance-notation\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/prs.fallenstein.rst\": {\n \"source\": \"iana\"\n },\n \"text/prs.lines.tag\": {\n \"source\": \"iana\",\n \"extensions\": [\"dsc\"]\n },\n \"text/prs.prop.logic\": {\n \"source\": \"iana\"\n },\n \"text/raptorfec\": {\n \"source\": \"iana\"\n },\n \"text/red\": {\n \"source\": \"iana\"\n },\n \"text/rfc822-headers\": {\n \"source\": \"iana\"\n },\n \"text/richtext\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtx\"]\n },\n \"text/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"text/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"text/rtploopback\": {\n \"source\": \"iana\"\n },\n \"text/rtx\": {\n \"source\": \"iana\"\n },\n \"text/sgml\": {\n \"source\": \"iana\",\n \"extensions\": [\"sgml\",\"sgm\"]\n },\n \"text/shaclc\": {\n \"source\": \"iana\"\n },\n \"text/shex\": {\n \"source\": \"iana\",\n \"extensions\": [\"shex\"]\n },\n \"text/slim\": {\n \"extensions\": [\"slim\",\"slm\"]\n },\n \"text/spdx\": {\n \"source\": \"iana\",\n \"extensions\": [\"spdx\"]\n },\n \"text/strings\": {\n \"source\": \"iana\"\n },\n \"text/stylus\": {\n \"extensions\": [\"stylus\",\"styl\"]\n },\n \"text/t140\": {\n \"source\": \"iana\"\n },\n \"text/tab-separated-values\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tsv\"]\n },\n \"text/troff\": {\n \"source\": \"iana\",\n \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n },\n \"text/turtle\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"ttl\"]\n },\n \"text/ulpfec\": {\n \"source\": \"iana\"\n },\n \"text/uri-list\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uri\",\"uris\",\"urls\"]\n },\n \"text/vcard\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vcard\"]\n },\n \"text/vnd.a\": {\n \"source\": \"iana\"\n },\n \"text/vnd.abc\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ascii-art\": {\n \"source\": \"iana\"\n },\n \"text/vnd.curl\": {\n \"source\": \"iana\",\n \"extensions\": [\"curl\"]\n },\n \"text/vnd.curl.dcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"dcurl\"]\n },\n \"text/vnd.curl.mcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"mcurl\"]\n },\n \"text/vnd.curl.scurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"scurl\"]\n },\n \"text/vnd.debian.copyright\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.dmclientscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"text/vnd.esmertec.theme-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.familysearch.gedcom\": {\n \"source\": \"iana\",\n \"extensions\": [\"ged\"]\n },\n \"text/vnd.ficlab.flt\": {\n \"source\": \"iana\"\n },\n \"text/vnd.fly\": {\n \"source\": \"iana\",\n \"extensions\": [\"fly\"]\n },\n \"text/vnd.fmi.flexstor\": {\n \"source\": \"iana\",\n \"extensions\": [\"flx\"]\n },\n \"text/vnd.gml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.graphviz\": {\n \"source\": \"iana\",\n \"extensions\": [\"gv\"]\n },\n \"text/vnd.hans\": {\n \"source\": \"iana\"\n },\n \"text/vnd.hgl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.in3d.3dml\": {\n \"source\": \"iana\",\n \"extensions\": [\"3dml\"]\n },\n \"text/vnd.in3d.spot\": {\n \"source\": \"iana\",\n \"extensions\": [\"spot\"]\n },\n \"text/vnd.iptc.newsml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.iptc.nitf\": {\n \"source\": \"iana\"\n },\n \"text/vnd.latex-z\": {\n \"source\": \"iana\"\n },\n \"text/vnd.motorola.reflex\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ms-mediapackage\": {\n \"source\": \"iana\"\n },\n \"text/vnd.net2phone.commcenter.command\": {\n \"source\": \"iana\"\n },\n \"text/vnd.radisys.msml-basic-layout\": {\n \"source\": \"iana\"\n },\n \"text/vnd.senx.warpscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.si.uricatalogue\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sosi\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sun.j2me.app-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"jad\"]\n },\n \"text/vnd.trolltech.linguist\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.wap.si\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.sl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.wml\": {\n \"source\": \"iana\",\n \"extensions\": [\"wml\"]\n },\n \"text/vnd.wap.wmlscript\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmls\"]\n },\n \"text/vtt\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"vtt\"]\n },\n \"text/x-asm\": {\n \"source\": \"apache\",\n \"extensions\": [\"s\",\"asm\"]\n },\n \"text/x-c\": {\n \"source\": \"apache\",\n \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n },\n \"text/x-component\": {\n \"source\": \"nginx\",\n \"extensions\": [\"htc\"]\n },\n \"text/x-fortran\": {\n \"source\": \"apache\",\n \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n },\n \"text/x-gwt-rpc\": {\n \"compressible\": true\n },\n \"text/x-handlebars-template\": {\n \"extensions\": [\"hbs\"]\n },\n \"text/x-java-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"java\"]\n },\n \"text/x-jquery-tmpl\": {\n \"compressible\": true\n },\n \"text/x-lua\": {\n \"extensions\": [\"lua\"]\n },\n \"text/x-markdown\": {\n \"compressible\": true,\n \"extensions\": [\"mkd\"]\n },\n \"text/x-nfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"nfo\"]\n },\n \"text/x-opml\": {\n \"source\": \"apache\",\n \"extensions\": [\"opml\"]\n },\n \"text/x-org\": {\n \"compressible\": true,\n \"extensions\": [\"org\"]\n },\n \"text/x-pascal\": {\n \"source\": \"apache\",\n \"extensions\": [\"p\",\"pas\"]\n },\n \"text/x-processing\": {\n \"compressible\": true,\n \"extensions\": [\"pde\"]\n },\n \"text/x-sass\": {\n \"extensions\": [\"sass\"]\n },\n \"text/x-scss\": {\n \"extensions\": [\"scss\"]\n },\n \"text/x-setext\": {\n \"source\": \"apache\",\n \"extensions\": [\"etx\"]\n },\n \"text/x-sfv\": {\n \"source\": \"apache\",\n \"extensions\": [\"sfv\"]\n },\n \"text/x-suse-ymp\": {\n \"compressible\": true,\n \"extensions\": [\"ymp\"]\n },\n \"text/x-uuencode\": {\n \"source\": \"apache\",\n \"extensions\": [\"uu\"]\n },\n \"text/x-vcalendar\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcs\"]\n },\n \"text/x-vcard\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcf\"]\n },\n \"text/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\"]\n },\n \"text/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"text/yaml\": {\n \"compressible\": true,\n \"extensions\": [\"yaml\",\"yml\"]\n },\n \"video/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"video/3gpp\": {\n \"source\": \"iana\",\n \"extensions\": [\"3gp\",\"3gpp\"]\n },\n \"video/3gpp-tt\": {\n \"source\": \"iana\"\n },\n \"video/3gpp2\": {\n \"source\": \"iana\",\n \"extensions\": [\"3g2\"]\n },\n \"video/av1\": {\n \"source\": \"iana\"\n },\n \"video/bmpeg\": {\n \"source\": \"iana\"\n },\n \"video/bt656\": {\n \"source\": \"iana\"\n },\n \"video/celb\": {\n \"source\": \"iana\"\n },\n \"video/dv\": {\n \"source\": \"iana\"\n },\n \"video/encaprtp\": {\n \"source\": \"iana\"\n },\n \"video/ffv1\": {\n \"source\": \"iana\"\n },\n \"video/flexfec\": {\n \"source\": \"iana\"\n },\n \"video/h261\": {\n \"source\": \"iana\",\n \"extensions\": [\"h261\"]\n },\n \"video/h263\": {\n \"source\": \"iana\",\n \"extensions\": [\"h263\"]\n },\n \"video/h263-1998\": {\n \"source\": \"iana\"\n },\n \"video/h263-2000\": {\n \"source\": \"iana\"\n },\n \"video/h264\": {\n \"source\": \"iana\",\n \"extensions\": [\"h264\"]\n },\n \"video/h264-rcdo\": {\n \"source\": \"iana\"\n },\n \"video/h264-svc\": {\n \"source\": \"iana\"\n },\n \"video/h265\": {\n \"source\": \"iana\"\n },\n \"video/iso.segment\": {\n \"source\": \"iana\",\n \"extensions\": [\"m4s\"]\n },\n \"video/jpeg\": {\n \"source\": \"iana\",\n \"extensions\": [\"jpgv\"]\n },\n \"video/jpeg2000\": {\n \"source\": \"iana\"\n },\n \"video/jpm\": {\n \"source\": \"apache\",\n \"extensions\": [\"jpm\",\"jpgm\"]\n },\n \"video/jxsv\": {\n \"source\": \"iana\"\n },\n \"video/mj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"mj2\",\"mjp2\"]\n },\n \"video/mp1s\": {\n \"source\": \"iana\"\n },\n \"video/mp2p\": {\n \"source\": \"iana\"\n },\n \"video/mp2t\": {\n \"source\": \"iana\",\n \"extensions\": [\"ts\"]\n },\n \"video/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n },\n \"video/mp4v-es\": {\n \"source\": \"iana\"\n },\n \"video/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n },\n \"video/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"video/mpv\": {\n \"source\": \"iana\"\n },\n \"video/nv\": {\n \"source\": \"iana\"\n },\n \"video/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogv\"]\n },\n \"video/parityfec\": {\n \"source\": \"iana\"\n },\n \"video/pointer\": {\n \"source\": \"iana\"\n },\n \"video/quicktime\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"qt\",\"mov\"]\n },\n \"video/raptorfec\": {\n \"source\": \"iana\"\n },\n \"video/raw\": {\n \"source\": \"iana\"\n },\n \"video/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"video/rtploopback\": {\n \"source\": \"iana\"\n },\n \"video/rtx\": {\n \"source\": \"iana\"\n },\n \"video/scip\": {\n \"source\": \"iana\"\n },\n \"video/smpte291\": {\n \"source\": \"iana\"\n },\n \"video/smpte292m\": {\n \"source\": \"iana\"\n },\n \"video/ulpfec\": {\n \"source\": \"iana\"\n },\n \"video/vc1\": {\n \"source\": \"iana\"\n },\n \"video/vc2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.cctv\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvh\",\"uvvh\"]\n },\n \"video/vnd.dece.mobile\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvm\",\"uvvm\"]\n },\n \"video/vnd.dece.mp4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.pd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvp\",\"uvvp\"]\n },\n \"video/vnd.dece.sd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvs\",\"uvvs\"]\n },\n \"video/vnd.dece.video\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvv\",\"uvvv\"]\n },\n \"video/vnd.directv.mpeg\": {\n \"source\": \"iana\"\n },\n \"video/vnd.directv.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dlna.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dvb.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"dvb\"]\n },\n \"video/vnd.fvt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fvt\"]\n },\n \"video/vnd.hns.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsavc\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsmpeg2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.videop\": {\n \"source\": \"iana\"\n },\n \"video/vnd.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxu\",\"m4u\"]\n },\n \"video/vnd.ms-playready.media.pyv\": {\n \"source\": \"iana\",\n \"extensions\": [\"pyv\"]\n },\n \"video/vnd.nokia.interleaved-multimedia\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.mp4vr\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.videovoip\": {\n \"source\": \"iana\"\n },\n \"video/vnd.objectvideo\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.bink\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.smacker\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg1\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.swf\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealedmedia.softseal.mov\": {\n \"source\": \"iana\"\n },\n \"video/vnd.uvvu.mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvu\",\"uvvu\"]\n },\n \"video/vnd.vivo\": {\n \"source\": \"iana\",\n \"extensions\": [\"viv\"]\n },\n \"video/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"video/vp8\": {\n \"source\": \"iana\"\n },\n \"video/vp9\": {\n \"source\": \"iana\"\n },\n \"video/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"webm\"]\n },\n \"video/x-f4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"f4v\"]\n },\n \"video/x-fli\": {\n \"source\": \"apache\",\n \"extensions\": [\"fli\"]\n },\n \"video/x-flv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"flv\"]\n },\n \"video/x-m4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"m4v\"]\n },\n \"video/x-matroska\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n },\n \"video/x-mng\": {\n \"source\": \"apache\",\n \"extensions\": [\"mng\"]\n },\n \"video/x-ms-asf\": {\n \"source\": \"apache\",\n \"extensions\": [\"asf\",\"asx\"]\n },\n \"video/x-ms-vob\": {\n \"source\": \"apache\",\n \"extensions\": [\"vob\"]\n },\n \"video/x-ms-wm\": {\n \"source\": \"apache\",\n \"extensions\": [\"wm\"]\n },\n \"video/x-ms-wmv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"wmv\"]\n },\n \"video/x-ms-wmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmx\"]\n },\n \"video/x-ms-wvx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wvx\"]\n },\n \"video/x-msvideo\": {\n \"source\": \"apache\",\n \"extensions\": [\"avi\"]\n },\n \"video/x-sgi-movie\": {\n \"source\": \"apache\",\n \"extensions\": [\"movie\"]\n },\n \"video/x-smv\": {\n \"source\": \"apache\",\n \"extensions\": [\"smv\"]\n },\n \"x-conference/x-cooltalk\": {\n \"source\": \"apache\",\n \"extensions\": [\"ice\"]\n },\n \"x-shader/x-fragment\": {\n \"compressible\": true\n },\n \"x-shader/x-vertex\": {\n \"compressible\": true\n }\n}\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","export interface Session {\n readonly eyepopUrl: string\n readonly accessToken: string\n readonly validUntil: number\n}\n\nexport enum EndpointState {\n Idle = 'Idle',\n Busy = 'Busy',\n Authenticating = 'Authenticating',\n FetchConfig = 'FetchConfig',\n Error = 'Error',\n NotAvailable = 'NotAvailable',\n}\n\nexport interface Box {\n readonly topLeft: Point2d\n readonly bottomRight: Point2d\n}\n\nexport interface StreamTime {\n /**\n * Temporal offset of prediction from start of the media (video or audio) in nano seconds.\n */\n timestamp?: number;\n /**\n * Convenience, same vale as 'timestamp' just in seconds.\n */\n seconds?: number;\n /**\n * Temporal length of the chunk that was the source for this prediction in nano seconds.\n */\n duration?: number;\n /**\n * Real time when the media was captured as epoch timestamp in nano seconds.\n *\n * Only provided if source provides this timestamp e.g. as timestamp/x-ntp in RTSP.\n */\n captured_at?: number;\n /**\n * A media specific offset.\n *\n * For video frames, this is the frame number of prediction.\n * For audio samples, this is the offset of the first sample for this prediction.\n */\n offset?: number;\n /**\n * Offset length of the chunk used for this prediction.\n *\n * It has the same format as offset.\n */\n offset_duration?: number;\n}\n\nexport interface Prediction extends StreamTime {\n /**\n * The width of the source coordinate system for all prediction coordinates.\n */\n source_width: number\n /**\n * The height of the source coordinate system for all prediction coordinates.\n */\n source_height: number\n source_id?: string\n objects?: Array<PredictedObject>\n classes?: Array<PredictedClass>\n texts?: Array<PredictedText>\n meshs?: Array<PredictedMesh>\n keyPoints?: Array<PredictedKeyPoints>\n}\n\nexport interface PredictedClass {\n id?: number\n confidence: number\n classLabel: string\n category?: string\n}\n\nexport interface PredictedText {\n id?: number\n confidence: number\n text: string\n category?: string\n}\n\nexport interface Contour {\n points: Array<Point2d>\n cutouts: Array<Array<Point2d>>\n}\n\nexport interface Mask {\n bitmap: string\n width: number\n height: number\n stride: number\n}\n\nexport interface PredictedObject extends PredictedClass {\n trackId: number | undefined\n x: number\n y: number\n width: number\n height: number\n orientation?: number\n outline: Array<Point2d> | undefined\n contours: Array<Contour> | undefined\n mask: Mask | undefined\n objects: Array<PredictedObject> | undefined\n classes: Array<PredictedClass> | undefined\n texts: Array<PredictedText> | undefined\n meshs: Array<PredictedMesh> | undefined\n keyPoints: Array<PredictedKeyPoints> | undefined\n}\n\nexport interface Point2d {\n x: number\n y: number\n}\n\nexport interface PredictedMesh {\n category: string\n id: number\n confidence: number\n points: Array<Point3d>\n}\n\nexport interface Point3d extends Point2d {\n z: number | undefined\n}\n\nexport interface PredictedKeyPoints {\n category: string\n type: string\n points: Array<PredictedKeyPoint>\n}\n\nexport interface PredictedKeyPoint extends Point3d, PredictedClass {\n visible: boolean | undefined\n}\n\nexport interface PredictedMotion {\n begin_timestamp: number\n finished_timestamp: number | undefined\n}","type Bytes = string | ArrayBuffer | Uint8Array | Buffer | null | undefined\n\nexport interface StreamEvent {\n type: string\n source_id?: string\n message?: string\n}\n\nexport class Stream<Prediction> implements AsyncIterable<Prediction> {\n controller: AbortController\n\n constructor(\n private iterator: () => AsyncIterator<Prediction>,\n controller: AbortController,\n ) {\n this.controller = controller\n }\n\n static iterFromReadableStream<Prediction>(\n readableStream: Promise<ReadableStream<Uint8Array>>,\n controller: AbortController,\n eventHandler: (event: StreamEvent) => Promise<void>,\n ): AsyncIterator<Prediction, any, undefined> {\n let consumed = false\n\n async function* iterLines(): AsyncGenerator<string, void, unknown> {\n const lineDecoder = new EyepopLineDecoder()\n const iter = readableStreamAsyncIterable<Bytes>(await readableStream)\n for await (let chunk of iter) {\n for (const line of lineDecoder.decode(chunk)) {\n yield line\n }\n }\n\n for (const line of lineDecoder.flush()) {\n yield line\n }\n }\n\n async function* iterator(): AsyncIterator<Prediction, any, undefined> {\n if (consumed) {\n throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.')\n }\n consumed = true\n let done = false\n try {\n for await (const line of iterLines()) {\n if (done) continue\n if (line) {\n const message = JSON.parse(line)\n const event = message['event']\n if (event !== undefined) {\n await eventHandler(event)\n } else {\n yield message\n }\n }\n }\n done = true\n } catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (e instanceof Error && e.name === 'AbortError') return\n throw e\n } finally {\n // If the user `break`s, abort the ongoing request.\n if (!done) controller.abort()\n }\n }\n\n return iterator()\n }\n\n [Symbol.asyncIterator](): AsyncIterator<Prediction> {\n return this.iterator()\n }\n\n /**\n * Splits the stream into two streams which can be\n * independently read from at different speeds.\n */\n tee(): [Stream<Prediction>, Stream<Prediction>] {\n const left: Array<Promise<IteratorResult<Prediction>>> = []\n const right: Array<Promise<IteratorResult<Prediction>>> = []\n const iterator = this.iterator()\n\n const teeIterator = (queue: Array<Promise<IteratorResult<Prediction>>>): AsyncIterator<Prediction> => {\n return {\n next: () => {\n if (queue.length === 0) {\n const result = iterator.next()\n left.push(result)\n right.push(result)\n }\n return queue.shift()!\n },\n }\n }\n\n return [new Stream(() => teeIterator(left), this.controller), new Stream(() => teeIterator(right), this.controller)]\n }\n}\n\n/**\n * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally\n * reading lines from text.\n *\n * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258\n */\nexport class EyepopLineDecoder {\n // prettier-ignore\n static NEWLINE_CHARS = new Set(['\\n', '\\r', '\\x0b', '\\x0c', '\\x1c', '\\x1d', '\\x1e', '\\x85', '\\u2028', '\\u2029']);\n static NEWLINE_REGEXP = /\\r\\n|[\\n\\r\\x0b\\x0c\\x1c\\x1d\\x1e\\x85\\u2028\\u2029]/g\n\n buffer: string[]\n trailingCR: boolean\n textDecoder: any // TextDecoder found in browsers; not typed to avoid pulling in either \"dom\" or \"node\" types.\n\n constructor() {\n this.buffer = []\n this.trailingCR = false\n }\n\n decode(chunk: Bytes): string[] {\n let text = this.decodeText(chunk)\n\n if (this.trailingCR) {\n text = '\\r' + text\n this.trailingCR = false\n }\n if (text.endsWith('\\r')) {\n this.trailingCR = true\n text = text.slice(0, -1)\n }\n\n if (!text) {\n return []\n }\n\n const trailingNewline = EyepopLineDecoder.NEWLINE_CHARS.has(text[text.length - 1] || '')\n let lines = text.split(EyepopLineDecoder.NEWLINE_REGEXP)\n\n if (lines.length === 1 && !trailingNewline) {\n this.buffer.push(lines[0]!)\n return []\n }\n\n if (this.buffer.length > 0) {\n lines = [this.buffer.join('') + lines[0], ...lines.slice(1)]\n this.buffer = []\n }\n\n if (!trailingNewline) {\n this.buffer = [lines.pop() || '']\n }\n\n return lines\n }\n\n decodeText(bytes: Bytes): string {\n if (bytes == null) return ''\n if (typeof bytes === 'string') return bytes\n\n // Node:\n if (typeof Buffer !== 'undefined') {\n if (bytes instanceof Buffer) {\n return bytes.toString()\n }\n if (bytes instanceof Uint8Array) {\n return Buffer.from(bytes).toString()\n }\n\n throw new Error(\n `Unexpected: received non-Uint8Array (${bytes.constructor.name}) stream chunk in an environment with a global \"Buffer\" defined, which this library assumes to be Node. Please report this error.`,\n )\n }\n\n // Browser\n if (typeof TextDecoder !== 'undefined') {\n if (bytes instanceof Uint8Array || bytes instanceof ArrayBuffer) {\n this.textDecoder ??= new TextDecoder('utf8')\n return this.textDecoder.decode(bytes)\n }\n\n throw new Error(`Unexpected: received non-Uint8Array/ArrayBuffer (${(bytes as any).constructor.name}) in a web platform. Please report this error.`)\n }\n\n throw new Error(`Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.`)\n }\n\n flush(): string[] {\n if (!this.buffer.length && !this.trailingCR) {\n return []\n }\n\n const lines = [this.buffer.join('')]\n this.buffer = []\n this.trailingCR = false\n return lines\n }\n}\n\n/**\n * Most browsers don't yet have async iterable support for ReadableStream,\n * and Node has a very different way of reading bytes from its \"ReadableStream\".\n *\n * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490\n */\nfunction readableStreamAsyncIterable<T>(stream: any): AsyncIterableIterator<T> {\n if (stream[Symbol.asyncIterator]) {\n return stream[Symbol.asyncIterator]()\n }\n\n const reader = stream.getReader()\n\n return {\n async next() {\n try {\n const result = await reader.read()\n if (result?.done) reader.releaseLock() // release lock when stream becomes closed\n return result\n } catch (e) {\n reader.releaseLock() // release lock when stream becomes errored\n throw e\n }\n },\n async return() {\n const cancelPromise = reader.cancel()\n reader.releaseLock()\n await cancelPromise\n return { done: true, value: undefined }\n },\n [Symbol.asyncIterator]() {\n return this\n },\n }\n}\nexport function readableStreamFromString(s: string) : ReadableStream<Uint8Array> {\n return new ReadableStream({\n start(controller) {\n controller.enqueue(Buffer.from(s));\n controller.close();\n }\n });\n}","import { Prediction, Session } from '../types'\nimport { Area } from 'EyePop/data/data_types'\n\nexport enum PredictionVersion {\n V1 = 1,\n V2 = 2,\n}\n\nexport const DEFAULT_PREDICTION_VERSION: PredictionVersion = PredictionVersion.V2\n\nexport interface WorkerSession extends Session {\n readonly popId: string\n readonly baseUrl: string | undefined\n readonly pipelineId: string | undefined\n authenticationHeaders(): any\n}\n\nexport enum VideoMode {\n STREAM = 'stream',\n BUFFER = 'buffer',\n}\n\nexport interface FileSource {\n readonly file: File\n readonly videoMode?: VideoMode | undefined\n}\n\nexport interface StreamSource {\n readonly stream: ReadableStream<Uint8Array> | Blob | BufferSource\n readonly mimeType: string\n readonly size?: number | undefined\n readonly videoMode?: VideoMode | undefined\n}\n\nexport interface PathSource {\n readonly path: string\n readonly mimeType?: string | undefined\n readonly videoMode?: VideoMode | undefined\n}\n\nexport interface MediaStreamSource {\n readonly mediaStream: MediaStream\n}\n\nexport interface UrlSource {\n readonly url: string\n}\n\nexport interface AssetUuidSource {\n readonly assetUuid: string\n}\n\nexport type Source = FileSource | StreamSource | PathSource | UrlSource | AssetUuidSource | MediaStreamSource\n\nexport interface ResultStream extends AsyncIterable<Prediction> {\n cancel(): void\n}\n\n// Pop definition types\n\nexport enum PopComponentType {\n FORWARD = 'forward',\n INFERENCE = 'inference',\n // backward compatibility, for serialized pops < 3.0.0\n TRACING = 'tracing',\n // since 3.0.0\n TRACKING = 'tracking',\n CONTOUR_FINDER = 'contour_finder',\n COMPONENT_FINDER = 'component_finder',\n}\n\nexport enum ForwardOperatorType {\n FULL = 'full',\n CROP = 'crop',\n CROP_WITH_FULL_FALLBACK = 'crop_with_full_fallback',\n}\n\nexport interface PopCrop {\n maxItems?: number\n boxPadding?: number\n orientationTargetAngle?: number\n}\n\nexport interface PopForwardOperator {\n type: ForwardOperatorType\n includeClasses?: string[]\n crop?: PopCrop\n}\n\nexport interface PopForward {\n operator?: PopForwardOperator\n targets: PopComponent[]\n}\nexport interface BaseComponent {\n type: PopComponentType\n id?: number\n forward?: PopForward\n}\n\nexport interface ForwardComponent extends BaseComponent {}\n\nexport enum InferenceType {\n IMAGE_CLASSIFICATION = 'image_classification',\n OBJECT_DETECTION = 'object_detection',\n KEY_POINTS = 'key_points',\n OCR = 'ocr',\n MESH = 'mesh',\n FEATURE_VECTOR = 'feature_vector',\n SEMANTIC_SEGMENTATION = 'semantic_segmentation',\n SEGMENTATION = 'segmentation',\n}\n\nexport interface InferenceComponent extends BaseComponent {\n inferenceTypes?: InferenceType[]\n hidden?: boolean\n modelUuid?: string\n model?: string\n abilityUuid?: string\n ability?: string\n categoryName?: string\n confidenceThreshold?: number\n topK?: number\n topKClasses?: number\n targetFps?: string\n videoChunkLengthSeconds?: number\n videoChunkOverlap?: number\n params?: { [index: string]: any }\n}\n\nexport enum MotionModel {\n RANDOM_WALK = 'random_walk',\n CONSTANT_VELOCITY = 'constant_velocity',\n CONSTANT_ACCELERATION = 'constant_acceleration',\n}\n\nexport interface TrackingComponent extends BaseComponent {\n reidModelUuid?: string\n reidModel?: string\n maxAgeSeconds?: number\n iouThreshold?: number\n simThreshold?: number\n agnostic?: boolean\n processNoisePosition?: number\n processNoiseVelocity?: number\n processNoiseAcceleration?: number\n processNoiseScale?: number\n processNoiseAspectRatio?: number\n measurementNoiseCx?: number\n measurementNoiseCy?: number\n measurementNoiseArea?: number\n measurementNoiseAspectRatio?: number\n motionModel?: MotionModel\n downweightLowConfidenceDetections?: boolean\n classBeta?: number\n classGamma?: number\n classHysteresis?: boolean\n classHysteresisHighThreshold?: number\n classHysteresisLowThreshold?: number\n classHysteresisMinHoldFrames?: number\n classHysteresisAllowedClasses?: string[]\n}\n\nexport enum ContourType {\n ALL_PIXELS = 'all_pixels',\n POLYGON = 'polygon',\n CONVEX_HULL = 'convex_hull',\n HOUGH_CIRCLES = 'hough_circles',\n CIRCLE = 'circle',\n TRIANGLE = 'triangle',\n RECTANGLE = 'rectangle',\n}\n\nexport interface ContourFinderComponent extends BaseComponent {\n contourType: ContourType\n areaThreshold?: number\n}\n\nexport interface ComponentFinderComponent extends BaseComponent {\n dilate?: number\n erode?: number\n keepSource?: boolean\n componentClassLabel?: string\n}\n\nexport type PopComponent = ForwardComponent | InferenceComponent | TrackingComponent | ContourFinderComponent | ComponentFinderComponent\n\nexport interface Pop {\n components: PopComponent[]\n postTransform?: string\n}\n\nexport interface MotionDetectConfig {\n motionDetect: boolean\n motionSensitivity?: number\n motionThreshold?: number\n motionGap?: number\n motionGridX?: number\n motionGridY?: number\n}\n\nexport interface ComponentParams {\n componentId: number\n values: { [index: string]: any }\n}\n\nexport interface ProcessParams {\n componentParams?: ComponentParams[] | undefined\n motionDetect?: MotionDetectConfig | undefined\n roi?: Area | undefined\n}\n\nexport interface ProcessRequest extends ProcessParams {\n source: Source\n}","import { v4 as uuidv4 } from 'uuid'\nimport { Logger } from 'pino'\nimport { WebrtcBase } from './webrtc_base'\nimport { WorkerSession } from '../worker/worker_types'\nimport { HttpClient } from '../options'\n\nexport class WebrtcWhip extends WebrtcBase {\n private _stream: MediaStream | null\n constructor(stream: MediaStream, getSession: () => Promise<WorkerSession>, client: HttpClient, is_pipeline_direct: boolean, requestLogger: Logger) {\n super(getSession, client, uuidv4().toString(), 'liveIngress/whip', is_pipeline_direct, requestLogger)\n this._stream = stream\n }\n public async start(): Promise<WebrtcWhip> {\n const session = await this._getSession()\n\n const ingressUrl = this.gresUrl(session)\n\n /* According to https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html\n this should be a `OPTIONS` request. Unfortunately a lot of CORS middlewares\n hijack the OPTIONS request and only return those headers that are necessary\n for the CORS preflight protocol.\n As workaround, our media endpoint expose a equivalent `GET` request to fake\n the `OPTIONS` request and bypass the CORS preflight trap\n */\n const response = await this._client.fetch(ingressUrl, {\n headers: session.authenticationHeaders(),\n method: 'GET',\n })\n if (response.status >= 300) {\n return Promise.reject(`unknown status code for GET '${ingressUrl}': ${response.status} (${response.statusText})`)\n }\n return await this.onIceServers(response)\n }\n\n public async stream(): Promise<MediaStream> {\n if (this._stream) {\n return Promise.resolve(this._stream)\n } else {\n return Promise.reject('fetching stream failed')\n }\n }\n\n protected async onRemoteAnswer(answer: RTCSessionDescription): Promise<WebrtcBase> {\n if (!this._pc) {\n throw new Error('onLocalOffer no peer connection')\n }\n await this._pc.setRemoteDescription(new RTCSessionDescription(answer))\n\n if (this._queuedCandidates.length !== 0) {\n await this.sendLocalCandidates(this._queuedCandidates)\n this._queuedCandidates = []\n }\n return this\n }\n\n private async onIceServers(response: Response): Promise<WebrtcWhip> {\n if (!this._stream) {\n throw new Error('onIceServers no stream')\n }\n const stream = this._stream\n const pc = new RTCPeerConnection({\n iceServers: WebrtcBase.linkToIceServers(response.headers.get('Link')),\n })\n\n this._pc = pc\n pc.onicecandidate = evt => this.onLocalCandidate(evt)\n\n return new Promise(async (resolve, reject) => {\n pc.oniceconnectionstatechange = () => {\n switch (pc.iceConnectionState) {\n case 'failed':\n case 'disconnected':\n reject(`peer connection: ${pc.iceConnectionState}`)\n break\n case 'connected':\n resolve(this)\n break\n }\n }\n stream.getTracks().forEach(track => {\n this._requestLogger.debug('onIceServers our stream has track: %s', track)\n pc.addTrack(track, stream)\n })\n stream.addEventListener('addtrack', trackEvent => {\n this._requestLogger.debug('onIceServers got lazy track: ', trackEvent.track)\n pc.addTrack(trackEvent.track, stream)\n })\n await this.onLocalOffer(await pc.createOffer())\n })\n }\n\n public override async close(): Promise<void> {\n const stream = this._stream\n this._stream = null\n if (stream) {\n const tracks = stream.getTracks()\n tracks.forEach(track => {\n track.stop()\n })\n }\n return super.close()\n }\n}\n","import { Logger } from 'pino'\nimport { WebrtcWhip } from './webrtc_whip'\nimport path from 'path'\nimport { WorkerSession } from '../worker/worker_types'\nimport { HttpClient } from '../options'\n\ninterface OfferData {\n iceUfrag: string\n icePwd: string\n medias: string[]\n}\nexport abstract class WebrtcBase {\n protected readonly _getSession: () => Promise<WorkerSession>\n protected readonly _client: HttpClient\n protected readonly _requestLogger: Logger\n protected readonly _urlPath: string\n protected readonly _is_pipeline_direct: boolean\n\n private readonly _ingressId: string\n\n private _location: string | null\n\n protected _pc: RTCPeerConnection | null\n protected _eTag: string\n protected _queuedCandidates: RTCIceCandidate[]\n protected _offerData: OfferData | null\n\n protected constructor(getSession: () => Promise<WorkerSession>, client: HttpClient, ingressId: string, urlBasePath: string, is_pipeline_direct: boolean, requestLogger: Logger) {\n this._getSession = getSession\n this._client = client\n this._requestLogger = requestLogger\n this._ingressId = ingressId\n this._urlPath = `${urlBasePath}/${this._ingressId}`\n this._is_pipeline_direct = is_pipeline_direct\n this._pc = null\n this._eTag = ''\n this._location = null\n this._queuedCandidates = []\n this._offerData = null\n }\n\n public async close(): Promise<void> {\n const pc = this._pc\n this._pc = null\n if (pc) {\n return pc.close()\n }\n }\n\n public ingressId(): string {\n return this._ingressId\n }\n\n protected gresUrl(session: WorkerSession, location: string | null = null): URL {\n let urlPath\n if (this._is_pipeline_direct) {\n if (!session.pipelineId) {\n throw new Error('cannot connect with is_pipeline_direct=true but !session.pipelineId')\n }\n urlPath = path.join('pipelines', session.pipelineId, this._urlPath)\n } else {\n urlPath = this._urlPath\n }\n if (location) {\n urlPath = path.join(urlPath, location)\n }\n let baseUrl\n if (session.baseUrl?.endsWith('/')) {\n baseUrl = session.baseUrl\n } else {\n baseUrl = session.baseUrl + '/'\n }\n return new URL(urlPath, baseUrl)\n }\n\n protected async onLocalOffer(offer: RTCSessionDescriptionInit): Promise<WebrtcBase> {\n if (!this._pc) {\n throw new Error('onLocalOffer no peer connection')\n }\n if (!offer.sdp) {\n throw new Error('onLocalOffer no sdp')\n }\n this._offerData = WebrtcBase.parseOffer(offer.sdp)\n await this._pc.setLocalDescription(offer)\n\n const session = await this._getSession()\n const ingressUrl = this.gresUrl(session)\n\n const headers = {\n ...session.authenticationHeaders(),\n 'Content-Type': 'application/sdp',\n }\n const response = await this._client.fetch(ingressUrl, {\n headers: headers,\n method: 'POST',\n body: offer.sdp,\n })\n if (response.status >= 300) {\n return Promise.reject(`unknown status code for POST '${ingressUrl}': ${response.status} (${response.statusText})`)\n }\n this._eTag = response.headers.get('ETag') ?? ''\n this._location = response.headers.get('Location')\n return await this.onRemoteAnswer(new RTCSessionDescription({\n type: 'answer',\n sdp: await response.text()\n }))\n }\n\n protected abstract onRemoteAnswer(answer: RTCSessionDescription): Promise<WebrtcBase>\n\n protected async sendLocalCandidates(candidates: RTCIceCandidate[]): Promise<WebrtcBase> {\n if (!this._offerData) {\n throw new Error('sendLocalCandidates no offerData')\n }\n\n const session = await this._getSession()\n const ingressUrl = this.gresUrl(session, this._location)\n\n const headers = {\n ...session.authenticationHeaders(),\n 'Content-Type': 'application/trickle-ice-sdpfrag',\n 'If-Match': this._eTag,\n }\n const response = await this._client.fetch(ingressUrl, {\n headers: headers,\n method: 'PATCH',\n body: WebrtcBase.generateSdpFragment(this._offerData, candidates),\n })\n if (response.status >= 300) {\n return Promise.reject(`unknown status code for PATCH '${ingressUrl}': ${response.status} (${response.statusText})`)\n }\n return this\n }\n\n protected async onLocalCandidate(evt: RTCPeerConnectionIceEvent): Promise<WebrtcBase> {\n if (evt.candidate !== null) {\n if (this._eTag === '') {\n this._queuedCandidates.push(evt.candidate)\n } else {\n await this.sendLocalCandidates([evt.candidate])\n }\n }\n return this\n }\n\n static linkToIceServers(links: string | null): RTCIceServer[] {\n const servers =\n links !== null\n ? links.split(', ').map(link => {\n // backward compatible to MEDIAMTX using <...>\n let m = link.match(/^<(.+?)>; rel=\"ice-server\"(; username=\"(.*?)\"; credential=\"(.*?)\"; credential-type=\"password\")?/i);\n if (!m) {\n m = link.match(/^(.+?); rel=\"ice-server\"(; username=\"(.*?)\"; credential=\"(.*?)\"; credential-type=\"password\")?/i);\n }\n if (!m) {\n return null\n }\n const iceServer: RTCIceServer = {\n urls: [m[1]] as string[],\n username: WebrtcWhip.unquoteCredential(m[3]),\n credential: WebrtcWhip.unquoteCredential(m[4]),\n // credentialType: m[3]? \"password\" : undefined\n }\n return iceServer\n })\n : []\n return <RTCIceServer[]>servers.filter(function (el: null | RTCIceServer) {\n return el != null\n })\n }\n\n protected static editAnswer(answer: string, videoCodec: string, audioCodec: string | undefined, videoBitrate: number, audioBitrate: number | undefined, audioVoice: boolean): string {\n const sections = answer.split('m=')\n\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i]\n if (section && section.startsWith('video')) {\n sections[i] = WebrtcWhip.setVideoBitrate(WebrtcWhip.setCodec(section, videoCodec), videoBitrate)\n } else if (section && section.startsWith('audio')) {\n sections[i] = WebrtcWhip.setAudioBitrate(WebrtcWhip.setCodec(section, audioCodec), audioBitrate, audioVoice)\n }\n }\n\n return sections.join('m=')\n }\n\n private static setCodec(section: string, codec: string | undefined): string {\n const lines = section.split('\\r\\n')\n const lines2 = []\n const payloadFormats = []\n\n for (const line of lines) {\n if (!line.startsWith('a=rtpmap:')) {\n lines2.push(line)\n } else {\n if (codec && line.toLowerCase().includes(codec)) {\n payloadFormats.push(line.slice('a=rtpmap:'.length).split(' ')[0])\n lines2.push(line)\n }\n }\n }\n\n const lines3 = []\n\n for (const line of lines2) {\n if (line.startsWith('a=fmtp:')) {\n if (payloadFormats.includes(line.slice('a=fmtp:'.length).split(' ')[0])) {\n lines3.push(line)\n }\n } else if (line.startsWith('a=rtcp-fb:')) {\n if (payloadFormats.includes(line.slice('a=rtcp-fb:'.length).split(' ')[0])) {\n lines3.push(line)\n }\n } else {\n lines3.push(line)\n }\n }\n\n return lines3.join('\\r\\n')\n }\n\n private static setVideoBitrate(section: string, bitrate: number): string {\n let lines = section.split('\\r\\n')\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i]\n if (!line) {\n continue\n }\n if (line.startsWith('c=')) {\n lines = [...lines.slice(0, i + 1), 'b=TIAS:' + (bitrate * 1024).toString(), ...lines.slice(i + 1)]\n break\n }\n }\n\n return lines.join('\\r\\n')\n }\n\n private static setAudioBitrate(section: string, bitrate: number | undefined, voice: boolean) {\n let opusPayloadFormat = ''\n let lines: string[] = section.split('\\r\\n')\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i]\n if (!line) {\n continue\n }\n if (line.startsWith('a=rtpmap:') && line.toLowerCase().includes('opus/')) {\n opusPayloadFormat = line.slice('a=rtpmap:'.length).split(' ')[0] || ''\n break\n }\n }\n\n if (opusPayloadFormat === '') {\n return section\n }\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i]\n if (!line) {\n continue\n }\n if (line.startsWith('a=fmtp:' + opusPayloadFormat + ' ')) {\n if (voice) {\n lines[i] = 'a=fmtp:' + opusPayloadFormat + ' minptime=10;useinbandfec=1;maxaveragebitrate=' + ((bitrate ?? 0) * 1024).toString()\n } else {\n lines[i] = 'a=fmtp:' + opusPayloadFormat + ' maxplaybackrate=48000;stereo=1;sprop-stereo=1;maxaveragebitrate' + ((bitrate ?? 0) * 1024).toString()\n }\n }\n }\n\n return lines.join('\\r\\n')\n }\n\n static parseOffer(offer: string): OfferData {\n let medias = []\n let iceUfrag = ''\n let icePwd = ''\n\n for (const line of offer.split('\\r\\n')) {\n if (line.startsWith('m=')) {\n medias.push(line.slice('m='.length))\n } else if (iceUfrag === '' && line.startsWith('a=ice-ufrag:')) {\n iceUfrag = line.slice('a=ice-ufrag:'.length)\n } else if (icePwd === '' && line.startsWith('a=ice-pwd:')) {\n icePwd = line.slice('a=ice-pwd:'.length)\n }\n }\n\n return {\n iceUfrag: iceUfrag,\n icePwd: icePwd,\n medias: medias,\n }\n }\n\n static generateSdpFragment(offerData: OfferData, candidates: RTCIceCandidate[]) {\n const candidatesByMedia = new Map<number, RTCIceCandidate[]>()\n for (const candidate of candidates) {\n if (candidate.sdpMLineIndex !== null) {\n const mid = candidate.sdpMLineIndex\n let matched = candidatesByMedia.get(mid)\n if (matched === undefined) {\n matched = []\n candidatesByMedia.set(mid, matched)\n }\n matched.push(candidate)\n }\n }\n\n let frag = 'a=ice-ufrag:' + offerData.iceUfrag + '\\r\\n' + 'a=ice-pwd:' + offerData.icePwd + '\\r\\n'\n let mid = 0\n\n for (const media of offerData.medias) {\n let matched = candidatesByMedia.get(mid)\n if (matched !== undefined) {\n frag += 'm=' + media + '\\r\\n' + 'a=mid:' + mid + '\\r\\n'\n\n for (const candidate of matched) {\n frag += 'a=' + candidate.candidate + '\\r\\n'\n }\n }\n mid++\n }\n return frag\n }\n\n static unquoteCredential(v: string | undefined): string {\n if (!v) {\n return ''\n }\n return JSON.parse(`\"${v}\"`)\n }\n}\n","import { Prediction } from '../types'\nimport {Stream, StreamEvent, readableStreamFromString} from '../streaming'\nimport {Logger} from 'pino'\nimport { ComponentParams, DEFAULT_PREDICTION_VERSION, PredictionVersion, ProcessParams, ResultStream, VideoMode, WorkerSession } from '../worker/worker_types'\nimport { HttpClient } from '../options'\nimport {WebrtcWhip} from \"./webrtc_whip\";\nimport { Area } from 'EyePop/data/data_types'\n\nexport class AbstractJob implements ResultStream {\n protected _getSession: () => Promise<WorkerSession>\n\n protected _params: ProcessParams\n\n protected _responseStream: Promise<ReadableStream<Uint8Array>> | null = null\n protected _controller: AbortController = new AbortController()\n\n protected _client: HttpClient\n\n protected _requestLogger: Logger;\n\n protected _version: PredictionVersion;\n\n [Symbol.asyncIterator](): AsyncIterator<Prediction> {\n if (!this._responseStream) {\n throw Error('logical bug')\n }\n return Stream.iterFromReadableStream(this._responseStream, this._controller, async (event: StreamEvent) => {\n return await this.onEvent(event)\n })\n }\n\n protected constructor(\n params: ProcessParams,\n getSession: () => Promise<WorkerSession>,\n client: HttpClient, requestLogger: Logger,\n version: PredictionVersion = DEFAULT_PREDICTION_VERSION\n ) {\n this._getSession = getSession\n this._params = params\n this._client = client\n this._requestLogger = requestLogger\n this._version = version\n }\n\n protected async startJob(): Promise<Response> {\n return Promise.reject('abstract class')\n }\n\n protected async onEvent(event: StreamEvent): Promise<void> {\n if (event.type == \"error\") {\n return Promise.reject(`Error event for source ${event.source_id}: ${event.message}`)\n }\n return Promise.resolve()\n }\n\n static n: number = 0\n\n public start(done: () => void, status: (statusCode: number) => void): AbstractJob {\n this._responseStream = new Promise<ReadableStream<Uint8Array>>(async (resolve, reject) => {\n try {\n let retries = 1\n while (true) {\n try {\n const response = await this.startJob()\n if (response.status == 401) {\n status(response.status)\n if (retries--) {\n this._requestLogger.info('received 401 response, attempt to reauthorize once')\n } else {\n reject(`response ${response.status}: ${response.statusText}`)\n break\n }\n } else if (response.status == 404) {\n status(response.status)\n if (retries--) {\n this._requestLogger.info('received 404 response, attempt to restart pop')\n } else {\n reject(`response ${response.status}: ${response.statusText}`)\n break\n }\n } else if (!response.ok) {\n reject(`upload error ${response.status}: ${await response.text()}`)\n break\n } else if (response.body) {\n resolve(response.body)\n break\n } else {\n const text = await response.text();\n if (text) {\n resolve(readableStreamFromString(text));\n break\n } else {\n reject('response body is empty')\n break\n }\n }\n } catch (error) {\n if (retries--) {\n this._requestLogger.info('unknown, attempt to restart pop (as if we received 404)', error)\n status(404)\n } else {\n status(500)\n reject(error)\n break\n }\n }\n }\n } catch (reason) {\n reject(reason)\n } finally {\n done()\n }\n })\n return this\n }\n\n public cancel(): void {\n this._controller.abort('cancelled')\n }\n}\n\nexport class UploadJob extends AbstractJob {\n private readonly _uploadStream: ReadableStream<Uint8Array> | Blob | BufferSource\n private readonly _mimeType: string\n private readonly _size: number | undefined\n private readonly _needsFullDuplex: boolean\n private readonly _videoMode: VideoMode | undefined\n get [Symbol.toStringTag](): string {\n return 'uploadJob'\n }\n\n constructor(\n stream: ReadableStream<Uint8Array> | Blob | BufferSource,\n mimeType: string,\n size: number | undefined,\n videoMode: VideoMode | undefined,\n params: ProcessParams,\n getSession: () => Promise<WorkerSession>,\n client: HttpClient,\n requestLogger: Logger,\n ) {\n super(params, getSession, client, requestLogger)\n this._uploadStream = stream\n this._mimeType = mimeType\n this._size = size\n this._videoMode = videoMode\n this._needsFullDuplex = !client.isFullDuplex() && mimeType.startsWith('video/') && videoMode == VideoMode.STREAM\n }\n\n protected override async onEvent(event: StreamEvent): Promise<void> {\n if (event.type == 'prepared') {\n if (!event.source_id) {\n return Promise.reject('did not get a prepared sourceId to simulate full duplex')\n }\n const session = await this._getSession()\n if (!session.baseUrl) {\n return Promise.reject('session.baseUrl must not ne null')\n }\n let request\n const queryParams = new URLSearchParams({\n mode: 'queue',\n processing: 'async',\n sourceId: event.source_id,\n })\n if (this._videoMode !== undefined) {\n queryParams.set('videoMode', this._videoMode)\n }\n if (this._version !== undefined) {\n queryParams.set('version', this._version.toString())\n }\n if (this._params.motionDetect) {\n for (const [key, value] of Object.entries(this._params.motionDetect)) {\n queryParams.set(key, value)\n }\n }\n const postUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/source?${queryParams.toString()}`\n if (this._params.componentParams || this._params.roi) {\n const formData = new FormData()\n if (this._params.componentParams) {\n const blob = new Blob([JSON.stringify(this._params.componentParams)], { type: 'application/json' })\n formData.append('params', blob)\n }\n if (this._params.roi) {\n const blob = new Blob([JSON.stringify(this._params.roi)], { type: 'application/json' })\n formData.append('roi', blob)\n }\n const fileBlob = await new Response(this._uploadStream).blob()\n formData.append('file', fileBlob)\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n }\n\n request = this._client.fetch(postUrl, {\n headers: headers,\n method: 'POST',\n body: formData,\n signal: this._controller.signal,\n // @ts-ignore\n duplex: 'half',\n eyepop: { responseStreaming: true },\n })\n } else {\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n 'Content-Type': this._mimeType,\n }\n if (this._size) {\n headers['Content-Length'] = `${this._size}`\n }\n request = this._client.fetch(postUrl, {\n headers: headers,\n method: 'POST',\n body: this._uploadStream,\n signal: this._controller.signal,\n // @ts-ignore\n duplex: 'half',\n eyepop: { responseStreaming: true },\n })\n }\n request\n .then(async value => {\n if (value.status != 204) {\n this._requestLogger.debug(`unexpected status ${value.status} (${await value.text()}) for POST ${postUrl}`)\n }\n })\n .catch(reason => {\n this._requestLogger.debug(`error ${reason} for POST ${postUrl}`)\n })\n }\n return Promise.resolve()\n }\n\n protected override async startJob(): Promise<Response> {\n const session = await this._getSession()\n if (!session.baseUrl) {\n return Promise.reject('session.baseUrl must not be null')\n }\n let response\n if (this._needsFullDuplex) {\n const prepareUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/prepareSource?timeout=10s`\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n }\n response = await this._client.fetch(prepareUrl, {\n headers: headers,\n method: 'POST',\n signal: this._controller.signal,\n // @ts-ignore\n duplex: 'half',\n eyepop: { responseStreaming: true },\n })\n } else {\n const queryParams = new URLSearchParams({\n mode: 'queue',\n processing: 'sync',\n })\n if (this._videoMode !== undefined) {\n queryParams.set('videoMode', this._videoMode)\n }\n if (this._version !== undefined) {\n queryParams.set('version', this._version.toString())\n }\n if (this._params.motionDetect) {\n for (const [key, value] of Object.entries(this._params.motionDetect)) {\n queryParams.set(key, value)\n }\n }\n const postUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/source?${queryParams.toString()}`\n if (this._params.componentParams || this._params.roi) {\n const formData = new FormData()\n if (this._params.componentParams) {\n const blob = new Blob([JSON.stringify(this._params.componentParams)], { type: 'application/json' })\n formData.append('params', blob)\n }\n if (this._params.roi) {\n const blob = new Blob([JSON.stringify(this._params.roi)], { type: 'application/json' })\n formData.append('roi', blob)\n }\n const fileBlob = await new Response(this._uploadStream).blob()\n formData.append('file', fileBlob)\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n }\n\n response = await this._client.fetch(postUrl, {\n headers: headers,\n method: 'POST',\n body: formData,\n signal: this._controller.signal,\n // @ts-ignore\n duplex: 'half',\n eyepop: { responseStreaming: true },\n })\n } else {\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n 'Content-Type': this._mimeType,\n }\n if (this._size) {\n headers['Content-Length'] = `${this._size}`\n }\n response = await this._client.fetch(postUrl, {\n headers: headers,\n method: 'POST',\n body: this._uploadStream,\n signal: this._controller.signal,\n // @ts-ignore\n duplex: 'half',\n })\n }\n }\n return response\n }\n}\n\nexport class LoadFromJob extends AbstractJob {\n private readonly _location: string\n\n constructor(\n location: string,\n params: ProcessParams,\n getSession: () => Promise<WorkerSession>,\n client: HttpClient,\n requestLogger: Logger\n ) {\n super(params, getSession, client, requestLogger)\n this._location = location\n }\n\n get [Symbol.toStringTag](): string {\n return 'loadFromJob'\n }\n\n protected override async startJob(): Promise<Response> {\n const session = await this._getSession()\n if (!session.baseUrl) {\n return Promise.reject('session.baseUrl must not ne null')\n }\n const body = {\n sourceType: 'URL',\n url: this._location,\n params: this._params.componentParams,\n roi: this._params.roi,\n version: this._version,\n }\n if (this._params.motionDetect) {\n Object.assign(body, this._params.motionDetect)\n }\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n 'Content-Type': 'application/json',\n }\n const patchUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/source?mode=queue&processing=sync`\n return await this._client.fetch(patchUrl, {\n headers: headers,\n method: 'PATCH',\n body: JSON.stringify(body),\n signal: this._controller.signal,\n // @ts-ignore\n eyepop: { responseStreaming: true },\n })\n }\n}\n\nexport class LoadFromAssetUuidJob extends AbstractJob {\n private readonly _assetUuid: string\n\n constructor(\n assetUuid: string,\n params: ProcessParams,\n getSession: () => Promise<WorkerSession>,\n client: HttpClient,\n requestLogger: Logger\n ) {\n super(params, getSession, client, requestLogger)\n this._assetUuid = assetUuid\n }\n\n get [Symbol.toStringTag](): string {\n return 'loadFromAssetUuidJob'\n }\n\n protected override async startJob(): Promise<Response> {\n const session = await this._getSession()\n if (!session.baseUrl) {\n return Promise.reject('session.baseUrl must not ne null')\n }\n const body = {\n sourceType: 'ASSET_UUID',\n assetUuid: this._assetUuid,\n params: this._params.componentParams,\n roi: this._params.roi,\n version: this._version,\n }\n if (this._params.motionDetect) {\n Object.assign(body, this._params.motionDetect)\n }\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n 'Content-Type': 'application/json',\n }\n const patchUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/source?mode=queue&processing=sync`\n return await this._client.fetch(patchUrl, {\n headers: headers,\n method: 'PATCH',\n body: JSON.stringify(body),\n signal: this._controller.signal,\n // @ts-ignore\n eyepop: { responseStreaming: true },\n })\n }\n}\n\nexport class LoadMediaStreamJob extends AbstractJob {\n private readonly _mediaStream: MediaStream\n\n constructor(\n mediaStream: MediaStream,\n params: ProcessParams,\n getSession: () => Promise<WorkerSession>,\n client: HttpClient,\n requestLogger: Logger\n ) {\n super(params, getSession, client, requestLogger)\n this._mediaStream = mediaStream\n }\n\n get [Symbol.toStringTag](): string {\n return 'loadLiveIngressJob'\n }\n\n protected override async startJob(): Promise<Response> {\n const session = await this._getSession()\n if (!session.baseUrl) {\n return Promise.reject('session.baseUrl must not ne null')\n }\n\n const whip = new WebrtcWhip(\n this._mediaStream,\n async () => {\n return session\n },\n this._client,\n true,\n this._requestLogger,\n )\n\n whip.start()\n .then(_ => {\n this._requestLogger.debug('direct whip for ingressId=%s successful', whip.ingressId())\n })\n .catch((reason: any) => {\n this._controller.abort(reason)\n })\n\n const body = {\n sourceType: 'WHIP',\n whipIngressId: whip.ingressId(),\n params: this._params.componentParams,\n roi: this._params.roi,\n version: this._version,\n }\n if (this._params.motionDetect) {\n Object.assign(body, this._params.motionDetect)\n }\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n 'Content-Type': 'application/json',\n }\n const patchUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/source?mode=preempt&processing=sync`\n return await this._client.fetch(patchUrl, {\n headers: headers,\n method: 'PATCH',\n body: JSON.stringify(body),\n signal: this._controller.signal,\n // @ts-ignore\n eyepop: { responseStreaming: true },\n })\n }\n}\n","\nimport * as fs from 'node:fs'\nimport { PathSource, StreamSource } from '../index'\nimport { Logger } from 'pino'\n\nexport let resolvePath: (source: PathSource, logger: Logger) => Promise<StreamSource>\n\nif ('document' in globalThis && 'implementation' in globalThis.document) {\n resolvePath = async (_source: PathSource, _logger: Logger) => {\n throw new DOMException('resolving a path to a file is not supported in browser')\n }\n} else {\n /**\n * From https://github.com/MattMorgis/async-stream-generator\n */\n async function* nodeStreamToIterator(stream: fs.ReadStream) {\n for await (const chunk of stream) {\n yield chunk\n }\n }\n /**\n * Taken from Next.js doc\n * https://nextjs.org/docs/app/building-your-application/routing/router-handlers#streaming\n * Itself taken from mozilla doc\n * https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream#convert_async_iterator_to_stream\n * @param {*} iterator\n * @returns {ReadableStream}\n */\n function iteratorToStream(iterator: AsyncGenerator<any>) {\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await iterator.next()\n\n if (done) {\n controller.close()\n } else {\n controller.enqueue(new Uint8Array(value))\n }\n },\n })\n }\n resolvePath = async (source: PathSource, _: Logger) => {\n const mime = require('mime-types')\n const filehandle = require('node:fs/promises')\n const fd = await filehandle.open(source.path, 'r')\n const stream = fd.createReadStream()\n const iterator = nodeStreamToIterator(stream)\n const webStream = iteratorToStream(iterator)\n\n const mimeType = source.mimeType? source.mimeType : (mime.lookup(source.path) || 'image/*')\n return {\n stream: webStream,\n mimeType: mimeType,\n }\n }\n}\n","import { Logger } from 'pino'\nimport { HttpClient } from '../options'\n\nexport let createHttpClient: (logger: Logger) => Promise<HttpClient>\n\nfunction logLineFromRequest(input: RequestInfo | URL, init?: RequestInit): string {\n const url = input instanceof Request? input.url : input;\n const method = (input instanceof Request)? input.method : (init?.method || (init?.body !== undefined? 'POST': 'GET'));\n return `${method} ${url}`;\n}\n\nif ('document' in globalThis && 'implementation' in globalThis.document) {\n class BrowserHttpClient {\n private readonly _logger: Logger\n constructor(logger: Logger) {\n this._logger = logger;\n }\n\n public async fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {\n const logLine = logLineFromRequest(input, init);\n this._logger.debug(`Browser fetch() BEFORE ${logLine}`)\n const response = await fetch(input, init)\n this._logger.debug(`AFTER ${logLine} -> ${response.status}`)\n return response;\n }\n\n public async close(): Promise<void> {}\n public isFullDuplex() {\n return false\n }\n }\n\n createHttpClient = async (logger: Logger) => {\n return new BrowserHttpClient(logger)\n }\n} else {\n class NodeHttpClient {\n private readonly _agent: any\n private readonly _logger: Logger\n constructor(agent: any, logger: Logger) {\n this._agent = agent\n this._logger = logger;\n }\n\n public async fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {\n init ||= {}\n // @ts-ignore\n init.dispatcher = this._agent\n const logLine = logLineFromRequest(input, init);\n this._logger.debug(`Node fetch() BEFORE ${logLine}`)\n const response = await fetch(input, init)\n this._logger.debug(`AFTER ${logLine} -> ${response.status}`)\n return response;\n }\n\n public async close(): Promise<void> {\n return this._agent.close()\n }\n public isFullDuplex() {\n return false\n }\n }\n\n createHttpClient = async (logger: Logger) => {\n const undici = require('undici')\n const agent = new undici.Agent({\n keepAliveTimeout: 10000,\n connections: 5,\n // two parallel streaming requests to the same host seem to deadlock with pipelining > 0\n pipelining: 0,\n })\n logger.debug('Using node fetch with undici agent as http client')\n return new NodeHttpClient(agent, logger)\n }\n}\n","/** Semaphores are initialized with a number of permits that get aquired and released\n * over the lifecycle of the semaphore. These permits limit the number of simultaneous\n * executions of the code that the semaphore synchronizes. Functions can wait on a semaphore\n * and stop executing until a permit becomes available.\n *\n * Locks are a special case of semaphores that only allow one execution of a critical section.\n * If you need a lock, you can import the Lock class from this package.\n *\n * This Semaphore class is implemented with the help of promises that get returned\n * by functions that wait for permits to become available. This makes it possible\n * to use async/await to synchronize your code.\n */\nexport class Semaphore {\n private permits: number\n private promiseResolverQueue: Array<(v: boolean) => void> = []\n\n /**\n * Creates a semaphore.\n * @param permits The number of permits, i.e. strands of execution being allowed\n * to run in parallel.\n * This number can be initialized with a negative integer.\n */\n constructor(permits: number) {\n this.permits = permits\n }\n\n /**\n * Returns the number of available permits.\n * @returns The number of available permits.\n */\n public getPermits(): number {\n return this.permits\n }\n\n /**\n * Returns a promise used to wait for a permit to become available. This method should be awaited on.\n * @returns A promise that gets resolved when execution is allowed to proceed.\n */\n public async wait(): Promise<boolean> {\n if (this.permits > 0) {\n this.permits -= 1\n return Promise.resolve(true)\n }\n\n // If there is no permit available, we return a promise that resolves once the semaphore gets\n // signaled enough times that permits is equal to one.\n return new Promise<boolean>(resolver => this.promiseResolverQueue.push(resolver))\n }\n\n /**\n * Alias for {@linkcode Semaphore.wait}.\n * @returns A promise that gets resolved when execution is allowed to proceed.\n */\n public async acquire(): Promise<boolean> {\n return this.wait()\n }\n\n /**\n * Same as {@linkcode Semaphore.wait} except the promise returned gets resolved with false if no\n * permit becomes available in time.\n * @param milliseconds The time spent waiting before the wait is aborted. This is a lower bound,\n * you shouldn't rely on it being precise.\n * @returns A promise that gets resolved to true when execution is allowed to proceed or\n * false if the time given elapses before a permit becomes available.\n */\n public async waitFor(milliseconds: number): Promise<boolean> {\n if (this.permits > 0) {\n this.permits -= 1\n return Promise.resolve(true)\n }\n\n // We save the resolver function in the current scope so that we can resolve the promise\n // to false if the time expires.\n let resolver: (v: boolean) => void = _ => void 0\n const promise = new Promise<boolean>(r => {\n resolver = r\n })\n\n // The saved resolver gets added to our list of promise resolvers so that it gets a chance\n // to be resolved as a result of a call to signal().\n this.promiseResolverQueue.push(resolver)\n\n setTimeout(() => {\n // We have to remove the promise resolver from our list. Resolving it twice would not be\n // an issue but signal() always takes the next resolver from the queue and resolves it which\n // would swallow a permit if we didn't remove it.\n const index = this.promiseResolverQueue.indexOf(resolver)\n if (index !== -1) {\n this.promiseResolverQueue.splice(index, 1)\n } else {\n // This shouldn't happen, not much we can do at this point\n console.warn(`Semaphore.waitFor couldn't find its promise resolver in the queue`)\n }\n\n // false because the wait was unsuccessful.\n resolver(false)\n }, milliseconds)\n\n return promise\n }\n\n /**\n * Synchronous function that tries to acquire a permit and returns true if successful, false otherwise.\n * @returns Whether a permit could be acquired.\n */\n public tryAcquire(): boolean {\n if (this.permits > 0) {\n this.permits -= 1\n return true\n }\n\n return false\n }\n\n /**\n * Acquires all permits that are currently available and returns the number of acquired permits.\n * @returns Number of acquired permits.\n */\n public drainPermits(): number {\n if (this.permits > 0) {\n const permitCount = this.permits\n this.permits = 0\n return permitCount\n }\n\n return 0\n }\n\n /**\n * Increases the number of permits by one. If there are other functions waiting, one of them will\n * continue to execute in a future iteration of the event loop.\n */\n public signal(): void {\n this.permits += 1\n\n if (this.permits > 1 && this.promiseResolverQueue.length > 0) {\n console.warn('Semaphore.permits should never be > 0 when there is someone waiting.')\n } else if (this.permits === 1 && this.promiseResolverQueue.length > 0) {\n // If there is someone else waiting, immediately consume the permit that was released\n // at the beginning of this function and let the waiting function resume.\n this.permits -= 1\n\n const nextResolver = this.promiseResolverQueue.shift()\n if (nextResolver) {\n nextResolver(true)\n }\n }\n }\n\n /**\n * Alias for {@linkcode Semaphore.signal}.\n */\n public release(): void {\n this.signal()\n }\n\n /**\n * Schedules func to be called once a permit becomes available.\n * Returns a promise that resolves to the return value of func.\n * @typeparam T The return type of func.\n * @param func The function to be executed.\n * @return A promise that gets resolved with the return value of the function.\n */\n public async execute<T>(func: () => T | PromiseLike<T>): Promise<T> {\n await this.wait()\n try {\n return await func()\n } finally {\n this.signal()\n }\n }\n}\n","import { Auth0Options, HttpClient, LocalAuth, OAuth2Auth, Options, ApiKeyAuth, SessionAuth } from './options'\nimport { EndpointState, Session } from './types'\nimport { createHttpClient } from './shims/http_client'\nimport { Semaphore } from './semaphore'\n\nimport { Logger, pino } from 'pino'\nimport { authenticateBrowserSession } from './shims/browser_session'\n\ninterface AccessToken {\n access_token: string\n expires_in: number\n token_type: string\n}\n\nexport class Endpoint<T extends Endpoint<T>> {\n protected _options: Options\n private _token: string | null\n private _expire_token_time: number | null\n\n protected _client: HttpClient | null\n private _statusRetryHandlers: Map<number, Function>\n\n protected _limit: Semaphore\n private _state: EndpointState\n private _message: null | string\n private _stateChangeHandler: null | ((fromState: EndpointState, toState: EndpointState) => void)\n\n protected _logger: Logger\n protected readonly _requestLogger: Logger\n\n constructor(options: Options) {\n this._options = options\n this._token = null\n this._expire_token_time = null\n this._client = null\n this._statusRetryHandlers = new Map()\n this._statusRetryHandlers.set(401, this.statusHandler401)\n\n this._limit = new Semaphore(this._options.jobQueueLength ?? 1024)\n this._state = EndpointState.Idle\n this._message = null\n this._stateChangeHandler = null\n\n let rootLogger\n if (options.logger) {\n rootLogger = options.logger\n } else {\n rootLogger = pino()\n }\n this._logger = rootLogger.child({ module: 'eyepop' })\n this._requestLogger = this._logger.child({ module: 'requests' })\n }\n\n protected setStatusRetryHandlers(statusRetryHandlers: Map<number, Function> | undefined = undefined) {\n this._statusRetryHandlers = new Map(statusRetryHandlers)\n this._statusRetryHandlers.set(401, this.statusHandler401)\n }\n\n public eyepopUrl(): string {\n if (this._options.eyepopUrl) {\n return this._options.eyepopUrl.replace(/\\/+$/, '')\n } else {\n return 'https://compute.eyepop.ai'\n }\n }\n\n // TODO: deprecated Web API endpoint needed for POP_ID support\n public eyepopWebApiUrl(): string {\n if (this._options.eyepopUrl) {\n return this._options.eyepopUrl.replace(/\\/+$/, '').replace(/compute\\./, 'web-api.')\n } else {\n return 'https://api.eyepop.ai'\n }\n }\n\n public pendingJobs(): number {\n return (this._options.jobQueueLength ?? 1024) - this._limit.getPermits()\n }\n\n public state(): EndpointState {\n return this._state\n }\n\n public lastMessage(): string | null {\n return this._message\n }\n\n public onStateChanged(handler: (fromState: EndpointState, toState: EndpointState) => void): T {\n this._stateChangeHandler = handler\n return <T>(<unknown>this)\n }\n\n protected updateState(newState: EndpointState | undefined = undefined, message: string | undefined = undefined) {\n const fromState = this._state\n if (newState == undefined) {\n if (this._limit.getPermits() == this._options.jobQueueLength) {\n newState = EndpointState.Idle\n } else {\n newState = EndpointState.Busy\n }\n }\n this._state = newState\n this._message = message ? message : null\n\n if (this._stateChangeHandler) {\n this._stateChangeHandler(fromState, this._state)\n }\n }\n\n public async connect(): Promise<T> {\n if (this._client) {\n this._logger.warn('endpoint already connected')\n return <T>(<unknown>this)\n }\n if (!this._options.eyepopUrl) {\n return Promise.reject('option eyepopUrl or environment variable EYEPOP_URL is required')\n }\n if (this._options.auth === undefined) {\n return Promise.reject('cannot connect without defined auth option')\n }\n if ((this._options.auth as SessionAuth).session !== undefined) {\n this._token = (this._options.auth as SessionAuth).session.accessToken\n this._expire_token_time = (this._options.auth as SessionAuth).session.validUntil / 1000\n } else if ((this._options.auth as OAuth2Auth).oAuth2 !== undefined) {\n } else if ((this._options.auth as ApiKeyAuth).apiKey !== undefined) {\n } else if ((this._options.auth as LocalAuth).isLocal !== undefined) {\n } else {\n return Promise.reject('option apiKey or environment variable EYEPOP_API_KEY is required')\n }\n\n if (this._options.platformSupport?.createHttpClient !== undefined) {\n this._client = await this._options.platformSupport.createHttpClient(this._requestLogger)\n } else {\n this._client = await createHttpClient(this._requestLogger)\n }\n\n return await this.reconnect()\n }\n\n public async disconnect(wait: boolean = true): Promise<void> {\n if (wait && this._limit) {\n // @ts-ignore\n for (let j = 0; j < this._options.jobQueueLength; j++) {\n await this._limit.acquire()\n }\n }\n\n this._limit = new Semaphore(this._options.jobQueueLength ?? 1024)\n\n if (this._client) {\n await this._client.close()\n this._client = null\n }\n }\n\n public async session(): Promise<Session> {\n await this.currentAccessToken()\n if (this._token == null || this._expire_token_time == null) {\n return Promise.reject('endpoint not connected')\n }\n return {\n eyepopUrl: <string>this._options.eyepopUrl,\n accessToken: this._token,\n validUntil: this._expire_token_time * 1000,\n }\n }\n\n protected statusHandler401(_statusCode: number): void {\n this._token = null\n this._expire_token_time = null\n }\n\n protected async fetchWithRetry(fetcher: () => Promise<Response>, retries: number = 1): Promise<Response> {\n while (true) {\n try {\n const response = await fetcher()\n if (response.ok) {\n return response\n } else {\n const handler = this._statusRetryHandlers.get(response.status)\n if (handler != null) {\n handler(response.status)\n if (retries--) {\n this._requestLogger.info('received %d response, retry', response.status)\n } else {\n return response\n }\n } else {\n return response\n }\n }\n } catch (error) {\n // handle connection errors like 404s\n const handler = this._statusRetryHandlers.get(404)\n if (handler != null) {\n handler(error)\n if (retries--) {\n this._requestLogger.info('error %s, retry', error)\n } else {\n return Promise.reject(`error ${error}`)\n }\n } else {\n return Promise.reject(`error ${error}`)\n }\n }\n }\n }\n\n protected async reconnect(): Promise<T> {\n throw new Error('reconnect() not implemented')\n }\n\n protected async authorizationHeader(): Promise<string> {\n if ((this._options.auth as LocalAuth).isLocal !== undefined) {\n return `Implicit`\n }\n return `Bearer ${await this.currentAccessToken()}`\n }\n\n private async currentAccessToken(): Promise<string> {\n const now = Date.now() / 1000\n if (!this._token || <number>this._expire_token_time < now) {\n this.updateState(EndpointState.Authenticating)\n try {\n if (!this._client) {\n return Promise.reject('endpoint not connected')\n } else if ((this._options.auth as LocalAuth).isLocal !== undefined) {\n this._token = \"implicit\"\n this._expire_token_time = Number.MAX_VALUE\n } else if ((this._options.auth as SessionAuth).session !== undefined) {\n return Promise.reject('temporary access token expired')\n } else if ((this._options.auth as OAuth2Auth).oAuth2 !== undefined && this._options.eyepopUrl) {\n const session = await authenticateBrowserSession((this._options.auth as OAuth2Auth).oAuth2 as Auth0Options, this._options)\n this._token = session.accessToken\n this._expire_token_time = session.validUntil / 1000\n } else if ((this._options.auth as ApiKeyAuth).apiKey !== undefined && this._options.eyepopUrl) {\n const headers = { 'Authorization': `Bearer ${(this._options.auth as ApiKeyAuth).apiKey}` }\n const post_url = `${this.eyepopUrl()}/v1/auth/authenticate`\n const response = await this._client.fetch(post_url, {\n method: 'POST',\n headers: headers,\n })\n if (response.status != 200) {\n const message = await response.text()\n return Promise.reject(`Unexpected status ${response.status}: ${message}`)\n }\n const data = await response.json()\n const token: AccessToken = data as AccessToken\n this._token = token.access_token\n this._expire_token_time = now + token.expires_in - 60\n } else {\n return Promise.reject('no valid auth option')\n }\n } finally {\n this.updateState()\n }\n }\n this._logger.debug('using access token, valid for at least %d seconds', <number>this._expire_token_time - now)\n return <string>this._token\n }\n}\n","import { Session } from '../types'\nimport { Auth0Options, Options } from '../options'\nimport { createAuth0Client } from '@auth0/auth0-spa-js'\nimport { Auth0ClientOptions } from '@auth0/auth0-spa-js/src/global'\nimport { WorkerOptions, WorkerSession } from '../index'\n\nexport let authenticateBrowserSession: (auth0: Auth0Options, options: Options) => Promise<Session>\n\nif ('document' in globalThis && 'implementation' in globalThis.document) {\n authenticateBrowserSession = async (auth0: Auth0Options, options: Options) => {\n if (options.eyepopUrl == null) {\n return Promise.reject('options.eyepopUrl cannot be null')\n }\n const auth0ClientOptions: Auth0ClientOptions = {\n clientId: auth0.clientId,\n domain: auth0.domain,\n authorizationParams: {\n scope: auth0.scope,\n audience: auth0.audience,\n },\n }\n const auth0Client = await createAuth0Client(auth0ClientOptions)\n if (!(await auth0Client.isAuthenticated())) {\n await auth0Client.loginWithPopup()\n }\n const accessToken = await auth0Client.getTokenSilently()\n if (!accessToken) {\n return Promise.reject('auth0 login failed')\n }\n let session: Session\n const workerOptions = options as WorkerOptions\n if (typeof workerOptions.popId != 'undefined') {\n const workerSession: WorkerSession = {\n eyepopUrl: options.eyepopUrl,\n accessToken: accessToken,\n validUntil: Date.now() + 60 * 60 * 1000,\n popId: workerOptions.popId,\n baseUrl: undefined,\n pipelineId: undefined,\n authenticationHeaders: () => {\n return { Authorization: `Bearer ${accessToken}` }\n }\n }\n session = workerSession\n } else {\n session = {\n eyepopUrl: options.eyepopUrl,\n accessToken: accessToken,\n validUntil: Date.now() + 60 * 60 * 1000,\n }\n }\n return session\n }\n} else {\n authenticateBrowserSession = (_auth0: Auth0Options, _options: Options) => {\n return Promise.reject('auth0 login not supported server-side')\n }\n}\n","import { Options } from '../options'\n\nexport enum TransientPopId {\n Transient = 'transient',\n}\n\nexport interface WorkerOptions extends Options {\n /**\n * TODO: deprecated, defaults to process.env['EYEPOP_POP_ID'].\n */\n popId?: string | TransientPopId | undefined\n autoStart?: boolean\n stopJobs?: boolean\n isLocalMode?: boolean\n}\n","import { LocalAuth } from '../options'\nimport { EndpointState, Session } from '../types'\nimport { AbstractJob, LoadFromAssetUuidJob, LoadFromJob, LoadMediaStreamJob, UploadJob } from './jobs'\nimport { resolvePath } from '../shims/local_file'\nimport { Endpoint } from '../endpoint'\nimport { TransientPopId, WorkerOptions } from '../worker/worker_options'\nimport {\n AssetUuidSource,\n ComponentParams,\n FileSource,\n MediaStreamSource,\n MotionDetectConfig,\n PathSource,\n Pop,\n ProcessParams,\n ProcessRequest,\n ResultStream,\n Source,\n StreamSource,\n UrlSource,\n WorkerSession,\n} from '../worker/worker_types'\nimport { Area } from 'EyePop/data/data_types'\n\ninterface PopConfig {\n base_url: string\n pipeline_id: string\n name: string\n}\n\ninterface Pipeline {\n id: string\n startTime: string\n state: string\n pop?: Pop\n}\n\nexport enum SessionStatus {\n UNKNOWN = 'unknown',\n PENDING = 'pending',\n RUNNING = 'running',\n STOPPED = 'stopped',\n FAILED = 'failed',\n ERROR = 'error',\n\n PIPELINE_CREATING = 'pipeline_creating',\n PIPELINE_OK = 'pipeline_ok',\n PIPELINE_CHECKING = 'pipeline_checking',\n PIPELINE_ERROR = 'pipeline_error',\n}\n\ninterface ComputeSession {\n session_uuid: string\n session_endpoint: string\n pipeline_uuid: string\n session_status: SessionStatus\n session_message: string\n session_name: string\n user_uuid: string\n created_at: string\n uptime: number\n pipeline_ttl?: number | undefined\n session_active: boolean\n}\n\nconst sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))\n\nexport class WorkerEndpoint extends Endpoint<WorkerEndpoint> {\n private _baseUrl: string | null\n private _pipelineId: string | null\n\n private _popName: string | null\n\n private _pipeline: Pipeline | null\n\n constructor(options: WorkerOptions) {\n super(options)\n this.setStatusRetryHandlers(new Map<number, Function>([[404, (statusCode: number) => this.statusHandler404(statusCode)]]))\n this._baseUrl = null\n this._pipelineId = null\n this._popName = null\n this._pipeline = null\n }\n\n private options(): WorkerOptions {\n return this._options as WorkerOptions\n }\n\n public override async disconnect(wait: boolean = true): Promise<void> {\n if (this.options().popId == TransientPopId.Transient && this._pipelineId) {\n const deleteUrl = `${this._baseUrl}/pipelines/${this._pipelineId}`\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n let response = await this._client?.fetch(deleteUrl, {\n method: 'DELETE',\n headers: headers,\n })\n if (response?.status != 204) {\n const message = await response?.text()\n this._logger.info(`stopping pipeline failed, status ${response?.status}: ${message}`)\n }\n }\n return super.disconnect(wait)\n }\n\n protected statusHandler404(_: number): void {\n this._pipelineId = null\n this._baseUrl = null\n }\n\n public override async session(): Promise<WorkerSession> {\n const session = await super.session()\n if (this._baseUrl == null || this._pipelineId == null) {\n await this.reconnect()\n if (this._baseUrl == null || this._pipelineId == null) {\n return Promise.reject('endpoint not connected')\n }\n }\n return {\n eyepopUrl: session.eyepopUrl,\n accessToken: session.accessToken,\n validUntil: session.validUntil,\n popId: this.options().popId as string,\n baseUrl: this._baseUrl as string,\n pipelineId: this._pipelineId as string,\n authenticationHeaders: () => this._authenticationHeaders(session),\n }\n }\n\n public popName(): string | null {\n return this._popName\n }\n\n public pop(): Pop | null {\n if (this._pipeline) {\n return this._pipeline.pop || null\n } else {\n return null\n }\n }\n\n public async changePop(pop: Pop): Promise<void> {\n const client = this._client\n const baseUrl = this._baseUrl\n if (!baseUrl || !client) {\n return Promise.reject('endpoint not connected, use connect()')\n }\n\n let response = await this.fetchWithRetry(async () => {\n const session = await this.session()\n let headers = {\n 'Content-Type': 'application/json',\n ...this._authenticationHeaders(session),\n }\n const patch_url = `${session.baseUrl}/pipelines/${session.pipelineId}/pop`\n return await client.fetch(patch_url, {\n method: 'PATCH',\n body: JSON.stringify(pop),\n headers: headers,\n })\n })\n if (response.status != 204) {\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n if (this._pipeline) {\n this._pipeline.pop = pop\n } else {\n this._pipeline = {\n id: this._pipelineId || 'unknown',\n state: 'idle',\n startTime: new Date().toString(),\n pop: pop,\n }\n }\n }\n\n private _authenticationHeaders(session: Session): any {\n return (this._options.auth as LocalAuth).isLocal !== undefined ? {} : { Authorization: `Bearer ${session.accessToken}` }\n }\n\n public popId(): string | null {\n return this.options().popId || null\n }\n\n /**\n * V1 call to process media as a source with optional component params\n *\n * @deprecated use V2 call process() with named parameters\n * @param source\n * @param params\n */\n public async process(source: Source, params?: ComponentParams[]): Promise<ResultStream>\n\n /**\n * V2 call to process media as a source with extensible named parameters\n *\n * @param source\n * @param componentParams\n * @param motionDetect\n * @param roi\n */\n public async process({ source, componentParams, motionDetect, roi }: ProcessRequest): Promise<ResultStream>\n\n public async process(param1: any, param2?: any): Promise<ResultStream> {\n if ((param1 as ProcessRequest).source !== undefined) {\n return await this.processV2(param1)\n } else {\n return await this.processV1(param1, param2)\n }\n }\n\n private async processV1(source: Source, params?: ComponentParams[]): Promise<ResultStream> {\n if ((source as FileSource).file !== undefined) {\n return this.uploadFile(source as FileSource, {componentParams: params})\n } else if ((source as StreamSource).stream !== undefined) {\n return this.uploadStream(source as StreamSource, { componentParams: params })\n } else if ((source as PathSource).path !== undefined) {\n return this.uploadPath(source as PathSource, { componentParams: params })\n } else if ((source as UrlSource).url !== undefined) {\n return this.loadFrom(source as UrlSource, { componentParams: params })\n } else if ((source as AssetUuidSource).assetUuid !== undefined) {\n return this.loadFromAssetUuid(source as AssetUuidSource, { componentParams: params })\n } else if ((source as MediaStreamSource).mediaStream !== undefined) {\n return this.loadMediaStream(source as MediaStreamSource, { componentParams: params })\n } else {\n return Promise.reject('unknown source type')\n }\n }\n\n private async processV2(request: ProcessRequest): Promise<ResultStream> {\n if ((request.source as FileSource).file !== undefined) {\n return this.uploadFile(request.source as FileSource, request)\n } else if ((request.source as StreamSource).stream !== undefined) {\n return this.uploadStream(request.source as StreamSource, request)\n } else if ((request.source as PathSource).path !== undefined) {\n return this.uploadPath(request.source as PathSource, request)\n } else if ((request.source as UrlSource).url !== undefined) {\n return this.loadFrom(request.source as UrlSource, request)\n } else if ((request.source as AssetUuidSource).assetUuid !== undefined) {\n return this.loadFromAssetUuid(request.source as AssetUuidSource, request)\n } else if ((request.source as MediaStreamSource).mediaStream !== undefined) {\n return this.loadMediaStream(request.source as MediaStreamSource, request)\n } else {\n return Promise.reject('unknown source type')\n }\n }\n\n private async uploadFile(source: FileSource, params: ProcessParams): Promise<ResultStream> {\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n return Promise.reject('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new UploadJob(\n source.file,\n source.file.type,\n source.file.size,\n source.videoMode,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job cannot be started\n this._limit.release()\n throw e\n }\n }\n\n private async uploadStream(source: StreamSource, params: ProcessParams): Promise<ResultStream> {\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n return Promise.reject('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new UploadJob(\n source.stream,\n source.mimeType,\n source.size,\n source.videoMode,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job canot be started\n this._limit.release()\n throw e\n }\n }\n\n private async uploadPath(source: PathSource, params: ProcessParams): Promise<ResultStream> {\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n let streamSource\n if (this._options.platformSupport?.resolvePath) {\n streamSource = await this._options.platformSupport.resolvePath(source as PathSource, this._logger)\n } else {\n streamSource = await resolvePath(source as PathSource, this._logger)\n }\n const job = new UploadJob(\n streamSource.stream,\n streamSource.mimeType,\n streamSource.size,\n source.videoMode,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job canot be started\n this._limit.release()\n throw e\n }\n }\n\n private async loadFrom(source: UrlSource, params: ProcessParams): Promise<ResultStream> {\n if (source.url.startsWith('file://')) {\n return await this.uploadPath(\n {\n path: source.url.substring('file://'.length),\n },\n params,\n )\n }\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new LoadFromJob(\n source.url,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job canot be started\n this._limit.release()\n throw e\n }\n }\n\n private async loadFromAssetUuid(source: AssetUuidSource, params: ProcessParams): Promise<ResultStream> {\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new LoadFromAssetUuidJob(\n source.assetUuid,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job canot be started\n this._limit.release()\n throw e\n }\n }\n\n private async loadMediaStream(source: MediaStreamSource, params: ProcessParams): Promise<ResultStream> {\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new LoadMediaStreamJob(\n source.mediaStream,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job cannot be started\n this._limit.release()\n throw e\n }\n }\n\n private jobDone(_: AbstractJob) {\n this._limit?.release()\n this.updateState()\n }\n\n private jobStatus(_: AbstractJob, statusCode: number) {\n if (statusCode == 404) {\n this.statusHandler404(statusCode)\n } else if (statusCode == 401) {\n this.statusHandler401(statusCode)\n }\n }\n\n protected override async reconnect(): Promise<WorkerEndpoint> {\n if (this.options().popId == TransientPopId.Transient) {\n await this.startComputeSession()\n this._pipelineId = await this.startTransientPipeline()\n } else {\n await this.startWebApiSessionWithPopId()\n }\n this.updateState()\n return Promise.resolve(this)\n }\n\n private async startWebApiSessionWithPopId(): Promise<void> {\n if (!this._client) {\n throw new Error('endpoint not initialized')\n }\n const config_url = `${this.eyepopWebApiUrl()}/pops/${this.options().popId}/config?auto_start=false`\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n this.updateState(EndpointState.FetchConfig)\n let response = await this._client.fetch(config_url, { headers: headers })\n if (response.status == 401) {\n this._requestLogger.debug('GET %s: 401, about to retry with fresh access token', config_url)\n // one retry, the token might have just expired\n this.statusHandler401(response.status)\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n this.updateState(EndpointState.FetchConfig)\n response = await this._client.fetch(config_url, {\n headers: headers,\n })\n }\n\n if (response.status != 200) {\n const message = await response.text()\n if (response.status == 429) {\n this.updateState(EndpointState.NotAvailable, message)\n } else {\n this.updateState(EndpointState.Error, message)\n }\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n let config = (await response.json()) as PopConfig\n if (!config.base_url && this.options().autoStart) {\n const auto_start_config_url = `${this.eyepopWebApiUrl()}/pops/${this.options().popId}/config?auto_start=true`\n this._requestLogger.debug('pop was not running, trying to autostart with: %s', auto_start_config_url)\n // one retry the pop might just have stopped\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n response = await this._client.fetch(auto_start_config_url, {\n headers: headers,\n })\n if (response.status != 200) {\n this.updateState(EndpointState.Error)\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n config = (await response.json()) as PopConfig\n }\n\n const baseUrl = new URL(config.base_url, this.eyepopUrl())\n this._baseUrl = baseUrl.toString()\n\n if (this._baseUrl) {\n this._baseUrl = this._baseUrl.replace(/\\/+$/, '')\n this._pipelineId = config.pipeline_id\n this._popName = config.name\n if (!this._pipelineId || !this._baseUrl) {\n throw new Error('Pop not started')\n }\n\n const get_url = `${this._baseUrl}/pipelines/${this._pipelineId}`\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n let response = await this._client.fetch(get_url, {\n method: 'GET',\n headers: headers,\n })\n if (response.status > 200) {\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n this._pipeline = (await response.json()) as Pipeline\n\n if (this.options().stopJobs) {\n const body = { sourceType: 'NONE' }\n const headers = {\n Authorization: await this.authorizationHeader(),\n 'Content-Type': 'application/json',\n }\n const stop_url = `${this._baseUrl}/pipelines/${this._pipeline.id}/source?mode=preempt&processing=sync`\n let response = await this._client.fetch(stop_url, {\n method: 'PATCH',\n headers: headers,\n body: JSON.stringify(body),\n })\n if (response.status >= 300) {\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n }\n }\n }\n\n private static SESSION_DEAD = new Set<SessionStatus>([SessionStatus.ERROR, SessionStatus.FAILED, SessionStatus.STOPPED, SessionStatus.PIPELINE_ERROR, SessionStatus.UNKNOWN])\n\n private static WAIT_FOR_IS_READY: number = 60 * 1000\n private static CHECK_FOR_IS_READY_INTERVAL: number = 250\n\n private async startComputeSession(): Promise<void> {\n if (!this._client) {\n throw new Error('endpoint not initialized')\n }\n let session: ComputeSession | null = null\n const sessionsUrl = `${this.eyepopUrl()}/v1/sessions`\n this._requestLogger.debug('fetching sessions from: %s', sessionsUrl)\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n let response = await this._client.fetch(sessionsUrl, {\n headers: headers,\n })\n let sessions: ComputeSession[]\n\n if (response.status == 404) {\n sessions = []\n } else if (response.status != 200) {\n this.updateState(EndpointState.Error)\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status} fetching compute sessions: ${message}`)\n } else {\n const response_content = await response.json()\n sessions = response_content as ComputeSession[]\n }\n console.log(sessions)\n if (sessions.length > 0) {\n this._logger.debug(`User has ${sessions.length} sessions, inspecting for active session`)\n for (let s of sessions) {\n if (!WorkerEndpoint.SESSION_DEAD.has(s.session_status)) {\n session = s\n this._logger.debug(`Use active session ${s.session_uuid} with pipeline ${s.pipeline_uuid}`)\n break\n }\n }\n }\n if (!session) {\n this._requestLogger.debug('creating a new session at: %s', sessionsUrl)\n response = await this._client.fetch(`${sessionsUrl}?wait=true`, {\n headers: headers,\n method: 'POST',\n })\n if (response.status != 200) {\n this.updateState(EndpointState.Error)\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status} creating a compute session: ${message}`)\n } else {\n sessions = (await response.json()) as ComputeSession[]\n }\n if (sessions.length == 0) {\n throw new Error('Unexpected, no compute session after attempt to create one')\n }\n session = sessions[0] || null\n }\n if (!session) {\n throw new Error('unexpected undefined session')\n }\n let isReady: boolean = false\n const deadline: number = Date.now() + WorkerEndpoint.WAIT_FOR_IS_READY\n while (!isReady) {\n const health_url = `${session.session_endpoint}/health`\n response = await this._client.fetch(health_url, {\n headers: headers,\n })\n if (response.status < 300) {\n isReady = true\n } else if (Date.now() > deadline) {\n throw new Error(`Created session ${session.session_uuid} did not become healthy after ${WorkerEndpoint.WAIT_FOR_IS_READY / 1000} seconds`)\n } else {\n this._logger.debug(`session ${session.session_uuid} health check status ${response.status}, wait and poll for update`)\n await sleep(WorkerEndpoint.CHECK_FOR_IS_READY_INTERVAL)\n }\n }\n this._baseUrl = session.session_endpoint\n this._pipeline = null\n if (session.pipeline_uuid) {\n this._pipelineId = session.pipeline_uuid\n } else {\n this._pipelineId = null\n }\n }\n\n private async startTransientPipeline(): Promise<string> {\n const client = this._client\n const baseUrl = this._baseUrl\n\n if (client == null || baseUrl == null) {\n throw new Error('endpoint not initialized')\n }\n\n let pop: Pop\n if (this._pipeline && this._pipeline.pop) {\n pop = this._pipeline.pop\n } else {\n pop = {\n components: [],\n }\n }\n\n const body = {\n pop: pop,\n source: {\n sourceType: 'NONE',\n },\n idleTimeoutSeconds: 30,\n logging: ['out_meta'],\n videoOutput: 'no_output',\n }\n\n const post_url = `${baseUrl.replace(/\\/+$/, '')}/pipelines`\n\n let response = await this.fetchWithRetry(async () => {\n let headers = {\n 'Content-Type': 'application/json',\n Authorization: await this.authorizationHeader(),\n }\n return client.fetch(post_url, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: headers,\n })\n })\n if (response.status != 200) {\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n const result = await response.json()\n return result['id']\n }\n}","export let createWebSocket: (url: string | URL, protocols?: string | string[]) => WebSocket\n\nif ('document' in globalThis && 'implementation' in globalThis.document) {\n createWebSocket = (url: string | URL, protocols?: string | string[]) => {\n return new WebSocket(url, protocols)\n }\n} else {\n createWebSocket = (url: string | URL, protocols?: string | string[]) => {\n const ws = require('ws')\n return new ws.WebSocket(url, protocols)\n }\n}\n","function normalize (strArray) {\n var resultArray = [];\n if (strArray.length === 0) { return ''; }\n\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n var first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (var i = 0; i < strArray.length; i++) {\n var component = strArray[i];\n\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n\n if (component === '') { continue; }\n\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[\\/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[\\/]+$/, '/');\n }\n\n resultArray.push(component);\n\n }\n\n var str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n var parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n return str;\n}\n\nexport default function urlJoin() {\n var input;\n\n if (typeof arguments[0] === 'object') {\n input = arguments[0];\n } else {\n input = [].slice.call(arguments);\n }\n\n return normalize(input);\n}\n","import { Point2d, Prediction, Session } from '../types'\n\nexport enum DataApiType {\n dataset = 'dataset',\n vlm = 'vlm'\n}\n\nexport type AutoAnnotate = string\n\nexport interface DataSession extends Session {\n readonly accountId: string\n readonly datasetApiUrl: string | undefined\n readonly vlmApiUrl: string | undefined\n}\n\nexport function getBaseUrl(session: DataSession, dataApiType: DataApiType): string {\n switch (dataApiType) {\n case DataApiType.dataset:\n return session.datasetApiUrl ?? ''\n case DataApiType.vlm:\n return session.vlmApiUrl ?? ''\n default:\n throw new Error(`unsupported type ${dataApiType}`)\n }\n}\n\nexport interface DatasetVersionAssetStats {\n total?: number\n accepted?: number\n rejected?: number\n annotated?: number\n auto_annotated?: number\n auto_annotated_approved?: number\n ground_truth_annotated?: number\n}\n\nexport interface DatasetVersion {\n version: number\n modifiable: boolean\n created_at: Date\n updated_at: Date\n assets_modified_at: Date\n last_analysed_at?: Date\n hero_asset_uuid?: string\n asset_stats?: DatasetVersionAssetStats\n default_source_model_uuid?: string\n}\n\nexport interface DatasetParent {\n dataset_uuid: string\n dataset_version: number\n}\n\nexport interface Dataset {\n uuid: string\n name: string\n description?: string\n auto_annotates: string[]\n auto_annotate_params?: AutoAnnotateParams\n tags: string[]\n account_uuid: string\n created_at: Date\n updated_at: Date\n modifiable_version?: number\n versions: DatasetVersion[]\n parent?: DatasetParent\n searchable: boolean\n}\n\nexport interface DatasetCreate {\n name: string\n description?: string\n tags?: string[]\n auto_annotates?: string[]\n auto_annotate_params?: AutoAnnotateParams\n searchable?: boolean\n}\n\nexport interface DatasetUpdate {\n name?: string\n description?: string\n tags?: string[]\n auto_annotates?: string[]\n auto_annotate_params?: AutoAnnotateParams\n searchable?: boolean\n}\n\nexport interface DatasetHeroAssetUpdate {\n uuid: string\n}\n\nexport enum AutoAnnotateStatus {\n error = \"error\",\n requested = \"requested\",\n in_progress = \"in_progress\",\n completed = \"completed\"\n}\n\nexport interface DatasetAutoAnnotateCreate {\n auto_annotate: string\n auto_annotate_params?: Map<string, any>\n source_model_uuid?: string\n status?: AutoAnnotateStatus\n status_message?: string\n source?: string\n metrics?: Map<string, any>\n}\n\n\nexport interface DatasetAutoAnnotateUpdate {\n status?: AutoAnnotateStatus\n status_message?: string\n metrics?: Map<string, any>\n}\n\nexport interface DatasetAutoAnnotate {\n created_at?: Date\n updated_at?: Date\n dataset_uuid: string\n dataset_version: number\n source_ability_uuid?: string\n source_model_uuid?: string\n auto_annotate?: string\n auto_annotate_params?: Map<string, any>\n status?: AutoAnnotateStatus\n status_message?: string\n source?: string\n metrics?: Map<string, any>\n}\n\nexport interface AssetImport {\n url: string\n ground_truth?: Prediction\n}\n\nexport enum AssetStatus {\n rejected = 'rejected',\n upload_in_progress = 'upload_in_progress',\n upload_failed = 'upload_failed',\n transform_failed = 'transform_failed',\n transform_in_progress = 'transform_in_progress',\n accepted = 'accepted',\n}\n\nexport enum AnnotationType {\n ground_truth = 'ground_truth',\n prediction = 'prediction',\n auto = 'auto',\n}\n\nexport enum UserReview {\n approved = 'approved',\n rejected = 'rejected',\n unknown = 'unknown',\n}\n\nexport enum AssetInclusionMode {\n all_assets = 'all_assets',\n annotated_only = 'annotated_only',\n manual_annotated_only = 'manual_annotated_only',\n auto_annotated_only = 'auto_annotated_only',\n}\n\nexport enum AnnotationInclusionMode {\n all = 'all',\n user_reviewed = 'user_reviewed',\n user_approved = 'user_approved',\n ground_truth = 'ground_truth',\n}\n\nexport interface AutoAnnotatePrompt {\n prompt: string\n label: string\n}\n\nexport enum AutoAnnotateTask {\n object_detection = 'object_detection',\n image_classification = 'image_classification',\n}\n\nexport interface AutoAnnotateParams {\n /**\n * @deprecated use prompts instead\n */\n candidate_labels?: string[]\n prompts?: AutoAnnotatePrompt[]\n task?: AutoAnnotateTask\n confidence_threshold?: number\n}\n\nexport interface Annotation {\n type: AnnotationType\n user_review: UserReview\n approved_threshold?: number\n auto_annotate?: string\n source?: string\n source_ability_uuid?: string\n uncertainty_score?: number\n predictions: Prediction[]\n}\n\nexport enum TranscodeMode {\n original = 'original',\n video_original_size = 'video_original_size',\n image_original_size = 'image_original_size',\n image_fit_1024 = 'image_fit_1024',\n image_fit_640 = 'image_fit_640',\n image_fit_224 = 'image_fit_224',\n image_cover_1024 = 'image_cover_1024',\n image_cover_640 = 'image_cover_640',\n image_cover_224 = 'image_cover_224',\n}\n\nexport enum AreaType {\n RECTANGLE = \"rectangle\",\n CONTOUR = \"contour\"\n}\n\nexport interface BaseArea {\n type: AreaType\n}\n\nexport interface RectangleArea extends BaseArea {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport interface ContourArea extends BaseArea {\n points: Point2d[]\n}\n\nexport type Area = RectangleArea | ContourArea\n\nexport interface TimeSpan {\n start_timestamp?: number\n end_timestamp?: number\n}\n\nexport interface Roi {\n name: string\n area?: Area\n time_span?: TimeSpan\n}\nexport interface Asset {\n uuid: string\n external_id?: string\n mime_type: string\n file_size_bytes: number\n original_image_width?: number\n original_image_height?: number\n original_duration?: number\n original_frames?: number\n status: AssetStatus\n created_at: Date\n updated_at: Date\n partition?: string\n review_priority?: number\n model_relevance?: number\n annotations: Annotation[]\n rois: Roi[]\n}\n\nexport enum ModelType {\n epdet_b1 = 'epdet_b1',\n imported = 'imported',\n vlm_ability = 'vlm_ability'\n}\n\nexport enum ModelTask {\n object_detection = 'object_detection',\n image_classification = 'image_classification',\n keypoint_detection = 'keypoint_detection'\n}\n\nexport enum ModelStatus {\n error = 'error',\n draft = 'draft',\n requested = 'requested',\n in_progress = 'in_progress',\n available = 'available',\n published = 'published',\n}\n\nexport interface ModelMetrics {\n cpr?: number[][3]\n}\n\nexport enum ModelExportStatus {\n in_progress = 'in_progress',\n finished = 'finished',\n error = 'error',\n}\n\nexport enum ExportedBy {\n eyepop = 'eyepop',\n qc_ai_hub = 'qc_ai_hub',\n}\n\nexport enum ArtifactType {\n eyepop_bundle = 'eyepop_bundle',\n weights_file = 'weights_file',\n}\n\nexport interface QcAiHubExportParams {\n device_name: string\n}\n\nexport interface ModelExport {\n format: ModelFormat\n exported_by: ExportedBy\n export_params?: QcAiHubExportParams\n status: ModelExportStatus\n status_message?: string\n}\n\nexport interface Model {\n uuid: string\n name: string\n description?: string\n external_id?: string\n pretrained_model_uuid?: string\n extra_params?: Map<string, any>\n task?: ModelTask\n classes?: string[]\n type: ModelType\n status: ModelStatus\n status_message?: string\n metrics?: ModelMetrics\n account_uuid: string\n created_at: Date\n updated_at: Date\n dataset_uuid: string\n dataset_version: number\n exports?: ModelExport[]\n}\n\nexport interface ModelCreate {\n name: string\n description: string\n external_id?: string\n pretrained_model_uuid?: string\n extra_params?: Map<string, any>\n task?: ModelTask\n classes?: string[]\n}\n\nexport interface ModelUpdate {\n name: string\n description: string\n external_id?: string\n task?: ModelTask\n classes?: string[]\n}\n\nexport enum ModelTrainingStage {\n waiting = 'waiting',\n scheduling = 'scheduling',\n preparing = 'preparing',\n training = 'training',\n exporting = 'exporting',\n}\n\nexport interface ModelSample {\n asset_uuid: string\n prediction: Prediction\n}\n\nexport interface ModelTrainingProgress {\n stage: ModelTrainingStage\n queue_length?: number\n started_at: Date\n finished_at?: Date\n metrics?: ModelMetrics\n samples?: ModelSample[]\n remaining_seconds_min?: number\n remaining_seconds_max?: number\n}\n\nexport enum ChangeType {\n dataset_added = 'dataset_added',\n dataset_removed = 'dataset_removed',\n dataset_modified = 'dataset_modified',\n dataset_version_modified = 'dataset_version_modified',\n asset_added = 'asset_added',\n asset_removed = 'asset_removed',\n asset_status_modified = 'asset_status_modified',\n asset_annotation_modified = 'asset_annotation_modified',\n model_added = 'model_added',\n model_removed = 'model_removed',\n model_modified = 'model_modified',\n model_status_modified = 'model_status_modified',\n model_progress = 'model_progress',\n events_lost = 'events_lost',\n workflow_started = 'workflow_started',\n workflow_succeeded = 'workflow_succeeded',\n workflow_failed = 'workflow_failed',\n workflow_task_started = 'workflow_task_started',\n workflow_task_succeeded = 'workflow_task_succeeded',\n workflow_task_failed = 'workflow_task_failed',\n}\n\n\nexport interface ChangeEvent {\n change_type: ChangeType\n account_uuid: string\n dataset_uuid: string\n dataset_version?: number\n asset_uuid?: string\n mdl_uuid?: string\n message?: string\n workflow_task_name?: string\n}\n\nexport type OnChangeEvent = (event: ChangeEvent) => Promise<void>\n\nexport interface CreateWorkflowConfig {\n dataset_uuid?: string\n dataset_version?: number\n model_uuid?: string\n config?: Record<string, any>\n}\n\nexport interface CreateWorkflow {\n parameters?: CreateWorkflowConfig\n}\n\nexport interface Workflow {\n workflow_id: string\n}\n\nexport interface ListWorkflowItemMetadataLabels {\n account_uuid: string\n dataset_uuid?: string\n model_uuid?: string\n phase: WorkflowPhase\n}\n\nexport interface ListWorkFlowItemMetadata {\n workflow_id: string\n created_at: Date\n labels: ListWorkflowItemMetadataLabels\n}\n\nexport interface ListWorkFlowItem {\n metadata: ListWorkFlowItemMetadata\n}\n\nexport enum WorkflowPhase {\n unknown = 'Unknown',\n pending = 'Pending',\n running = 'Running',\n succeeded = 'Succeeded',\n failed = 'Failed',\n error = 'Error',\n}\n\nexport enum ModelFormat {\n TensorFlowLite = 'TensorFlowLite',\n TensorFlowGraphDef = 'TensorFlowGraphDef',\n ONNX = 'ONNX',\n TorchScript = 'TorchScript',\n TorchScriptCpu = 'TorchScriptCpu',\n TorchScriptCuda = 'TorchScriptCuda',\n PyTorch = 'PyTorch',\n ModelLess = 'ModelLess',\n}\n\nexport enum ModelPrecisionType {\n float32 = 'float32',\n float16 = 'float16',\n int32 = 'int32',\n int8 = 'int8',\n uint8 = 'uint8',\n}\n\nexport enum AssetUrlType {\n gcs = 'gcs',\n s3 = 's3',\n https_signed = 'https_signed'\n}\n\nexport interface DownloadResponse {\n url: string\n url_type: AssetUrlType\n}\n\n/** Experimental VLM API */\n\nexport interface InferRuntimeConfig {\n max_new_tokens?: number\n image_size?: number\n fps?: number\n max_frames?: number\n min_frames?: number\n max_aspect_ratio?: number\n context_length?: number\n roi?: Area\n}\n\nexport interface TransformInto {\n classes?: string[]\n}\n\nexport interface InferRequest {\n worker_release?: string\n text_prompt?: string\n config: InferRuntimeConfig\n refresh?: boolean\n transform_into?: TransformInto\n}\n\nexport interface EvaluateFilter {\n partitions?: string[]\n ground_truth_classes?: string[]\n}\n\nexport interface EvaluateConfig {\n dataset_uuid: string\n filter?: EvaluateFilter\n video_chunk_length_ns?: number\n video_chunk_overlap?: number\n}\n\nexport interface EvaluateRequest extends EvaluateConfig {\n ability_uuid?: string\n infer?: InferRequest\n}\n\nexport enum EvaluationStatus {\n success = \"success\",\n failed = \"failed\"\n}\n\nexport interface EvaluateRunInfo {\n num_images: number\n num_ground_truth_images: number\n num_videos: number\n num_ground_truth_videos: number\n total_tokens: number\n visual_tokens: number\n text_tokens: number\n output_tokens: number\n}\n\nexport interface EvaluateResponse {\n dataset_uuid: string\n dataset_version: number\n status: EvaluationStatus\n status_message?: string\n source: string\n metrics?: Map<string, any>\n run_info: EvaluateRunInfo\n}\n\nexport interface InferRunInfo {\n fps?: number\n image_size?: number\n total_tokens?: number\n visual_tokens?: number\n text_tokens?: number\n output_tokens?: number\n aspect_ratio?: number\n}\n\nexport interface AutoPromptConfig {\n num_samples: number\n task_description?: string\n infer: InferRequest\n evaluate: EvaluateConfig\n}\n\nexport enum VlmAbilityStatus {\n in_progress = \"in_progress\",\n draft = \"draft\",\n published = \"published\",\n}\n\nexport interface AbilityAliasEntry {\n alias: string\n tag: string\n}\n\nexport interface VlmAbilityCreate {\n name: string\n description: string\n worker_release: string\n text_prompt: string\n transform_into: TransformInto\n config: InferRuntimeConfig\n is_public: boolean\n video_chunk_length_ns?: number\n video_chunk_overlap?: number\n}\n\nexport interface VlmAbilityUpdate {\n name?: string\n description?: string\n worker_release?: string\n text_prompt?: string\n transform_into?: TransformInto\n config?: InferRuntimeConfig\n is_public?: boolean\n video_chunk_length_ns?: number\n video_chunk_overlap?: number\n}\n\nexport interface VlmAbility {\n uuid: string\n created_at?: Date\n updated_at?: Date\n account_uuid: string\n status: VlmAbilityStatus\n is_public: boolean\n name: string\n description: string\n vlm_ability_group_uuid?: string\n worker_release: string\n text_prompt: string\n transform_into: TransformInto\n config: InferRuntimeConfig\n video_chunk_length_ns?: number\n video_chunk_overlap?: number\n alias_entries?: AbilityAliasEntry[]\n auto_prompt?: AutoPromptConfig\n}\n\nexport interface VlmAbilityGroupCreate {\n name: string\n description: string\n auto_prompt?: AutoPromptConfig\n default_alias_name?: string\n default_dataset_uuid?: string\n}\n\nexport interface VlmAbilityGroupUpdate {\n name: string\n description: string\n default_alias_name?: string\n default_dataset_uuid?: string\n}\n\nexport interface VlmAbilityGroup {\n uuid: string\n created_at?: Date\n updated_at?: Date\n account_uuid: string\n name: string\n description: string\n default_alias_name?: string\n default_dataset_uuid?: string\n}\n\nexport interface AliasResolution {\n alias: string\n model_uuid: string | null\n}","import { ResultStream } from '../worker/worker_types'\nimport { Logger } from 'pino'\nimport { Prediction } from '../types'\nimport { EvaluateRequest, EvaluateResponse, InferRequest, InferRunInfo } from './data_types'\n\ntype VlmFetch = (path: string, options: RequestInit) => Promise<any>\n\nexport class InferAssetJob implements ResultStream {\n protected _vlmFetch: VlmFetch\n protected _assetUrl: string\n protected _inferRequest: InferRequest\n\n protected _response: Promise<Prediction[]> | null = null\n protected _runInfo: InferRunInfo | null = null\n protected _controller: AbortController = new AbortController()\n\n protected _requestLogger: Logger;\n\n [Symbol.asyncIterator](): AsyncIterator<Prediction> {\n if (!this._response) {\n throw Error('logical bug')\n }\n let consumed = false\n const response_promise = this._response\n const controller = this._controller\n async function* iterator(): AsyncIterator<Prediction> {\n if (consumed) {\n throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.')\n }\n consumed = true\n let done = false\n try {\n const predictions = await response_promise\n if (predictions) {\n for (let prediction of predictions) {\n yield prediction\n }\n }\n done = true\n } catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (e instanceof Error && e.name === 'AbortError') return\n throw e\n } finally {\n // If the user breaks, abort the ongoing request.\n if (!done) controller.abort()\n }\n }\n\n return iterator()\n }\n\n public constructor(assetUrl: string, inferRequest: InferRequest, vlmFetch: VlmFetch, requestLogger: Logger) {\n this._vlmFetch = vlmFetch\n\n this._assetUrl = assetUrl\n this._inferRequest = inferRequest\n\n this._requestLogger = requestLogger\n }\n\n public start(done: () => void): InferAssetJob {\n this._response = new Promise<Prediction[]>(async (resolve, reject) => {\n try {\n let requestId = null\n while (true) {\n let response = null\n if (requestId) {\n response = await this._vlmFetch(`/api/v1/requests/${requestId}?timeout=20`, {\n method: 'POST',\n })\n } else {\n const infer_request = new Map(Object.entries(this._inferRequest))\n infer_request.set('url', this._assetUrl)\n const body = new FormData();\n body.append('infer_request', JSON.stringify(Object.fromEntries(infer_request)))\n response = await this._vlmFetch(`/api/v1/infer?timeout=20`, {\n method: 'POST',\n body: body,\n })\n }\n const predictions = response['predictions']\n const runInfo = response['run_info']\n if (predictions) {\n this._runInfo = runInfo\n resolve(predictions)\n break\n } else {\n requestId = response['request_id']\n if (!requestId) {\n reject(`missing request_id in response: ${JSON.stringify(response)}`)\n break\n }\n }\n }\n } catch (reason) {\n reject(reason)\n } finally {\n done()\n }\n })\n return this\n }\n\n public cancel(): void {\n this._controller.abort('cancelled')\n }\n}\n\n\nexport class EvaluateDatasetJob {\n protected _vlmFetch: VlmFetch\n protected _evaluateRequest: EvaluateRequest\n protected _workerRelease: string | null\n\n protected _response: Promise<EvaluateResponse> | null = null\n protected _controller: AbortController = new AbortController()\n\n protected _requestLogger: Logger;\n\n public async response(): Promise<EvaluateResponse> {\n if (!this._response) {\n throw Error('logical bug')\n }\n return await this._response\n }\n\n public constructor(evaluateRequest: EvaluateRequest, workerRelease: string | null, vlmFetch: VlmFetch, requestLogger: Logger) {\n this._vlmFetch = vlmFetch\n\n this._evaluateRequest = evaluateRequest\n this._workerRelease = workerRelease\n\n this._requestLogger = requestLogger\n }\n\n public start(done: () => void): EvaluateDatasetJob {\n this._response = new Promise<EvaluateResponse>(async (resolve, reject) => {\n try {\n let requestId = null\n while (true) {\n let response = null\n if (requestId) {\n response = await this._vlmFetch(`/api/v1/evaluations/${requestId}?timeout=20`, {\n method: 'GET',\n })\n } else {\n const workerReleaseQuery = this._workerRelease? `&worker_release=${this._workerRelease}`: ''\n response = await this._vlmFetch(`/api/v1/evaluations?timeout=20${workerReleaseQuery}`, {\n method: 'POST',\n body: JSON.stringify(this._evaluateRequest),\n headers: { 'Content-Type': 'application/json' }\n })\n }\n const runInfo = response['run_info']\n if (runInfo) {\n resolve(response)\n break\n } else {\n requestId = response['request_id']\n if (!requestId) {\n reject(`missing request_id in response: ${JSON.stringify(response)}`)\n break\n }\n }\n }\n } catch (reason) {\n reject(reason)\n } finally {\n done()\n }\n })\n return this\n }\n\n public cancel(): void {\n this._controller.abort('cancelled')\n }\n}\n","import { SessionAuth } from '../options'\nimport { EndpointState } from '../types'\nimport { createWebSocket } from '../shims/websockets'\nimport { Endpoint } from '../endpoint'\nimport urljoin from 'url-join'\nimport { DataOptions } from './data_options'\nimport {\n Annotation,\n AnnotationInclusionMode,\n ArtifactType,\n Asset,\n AssetImport,\n AssetInclusionMode,\n AssetUrlType,\n AutoAnnotate,\n AutoAnnotateParams,\n AutoPromptConfig,\n ChangeEvent,\n ChangeType,\n CreateWorkflow,\n DataApiType,\n DataSession,\n Dataset,\n DatasetAutoAnnotate,\n DatasetAutoAnnotateCreate,\n DatasetAutoAnnotateUpdate,\n DatasetCreate,\n DatasetHeroAssetUpdate,\n DatasetUpdate,\n DownloadResponse,\n EvaluateRequest,\n ExportedBy,\n getBaseUrl,\n InferRequest,\n ListWorkFlowItem,\n Model,\n ModelCreate,\n ModelFormat,\n ModelTrainingProgress,\n ModelUpdate,\n OnChangeEvent,\n QcAiHubExportParams,\n Roi,\n TranscodeMode,\n UserReview,\n VlmAbility,\n VlmAbilityCreate,\n VlmAbilityGroup,\n VlmAbilityGroupCreate,\n VlmAbilityGroupUpdate,\n VlmAbilityUpdate,\n AliasResolution,\n Workflow,\n WorkflowPhase,\n} from './data_types'\nimport { Prediction } from '@eyepop.ai/eyepop'\nimport { EvaluateDatasetJob, InferAssetJob } from './jobs'\n\ninterface DataConfig {\n dataset_api_url: string\n vlm_api_url: string\n}\n\nconst WS_INITIAL_RECONNECT_DELAY = 1000\nconst WS_MAX_RECONNECT_DELAY = 60000\n\nfunction omit_nulls(_: any, value: any) {\n if (value === null) {\n return undefined\n }\n return value\n}\n\nexport class DataEndpoint extends Endpoint<DataEndpoint> {\n private datasetApiUrl: string | null\n private vlmApiUrl: string | null\n private _accountId: string | null\n\n private _ws: WebSocket | null\n private _ws_current_reconnect_delay: number | null\n\n private _account_event_handlers: OnChangeEvent[]\n private _dataset_uuid_to_event_handlers: Map<string, OnChangeEvent[]>\n\n constructor(options: DataOptions) {\n super(options)\n this.datasetApiUrl = null\n this.vlmApiUrl = null\n this._ws = null\n this._ws_current_reconnect_delay = null\n this._accountId = options.accountId || null\n this._account_event_handlers = []\n this._dataset_uuid_to_event_handlers = new Map<string, OnChangeEvent[]>()\n const sessionAuth: SessionAuth = options.auth as SessionAuth\n if (sessionAuth.session !== undefined) {\n const dataSession = sessionAuth.session as DataSession\n if (dataSession.accountId) {\n this._accountId = dataSession.accountId\n }\n }\n }\n\n public override async session(): Promise<DataSession> {\n const session = await super.session()\n return {\n eyepopUrl: session.eyepopUrl,\n accessToken: session.accessToken,\n validUntil: session.validUntil,\n accountId: this.options().accountId as string,\n datasetApiUrl: this.datasetApiUrl as string,\n vlmApiUrl: this.vlmApiUrl as string,\n }\n }\n\n public override async disconnect(wait: boolean = true): Promise<void> {\n this.datasetApiUrl = null\n this.vlmApiUrl = null\n if (this._ws) {\n try {\n this._ws.close()\n } catch (e) {\n this._logger.warn('ignored exception', e)\n }\n this._ws = null\n }\n await super.disconnect(wait)\n }\n\n protected override async reconnect(): Promise<DataEndpoint> {\n if (!this._client) {\n return Promise.reject('endpoint not initialized')\n }\n const accountUuidQuery = this._accountId ? `?account_uuid=${this._accountId}` : ''\n const config_url = `${this.eyepopUrl()}/v1/configs${accountUuidQuery}`\n let headers = {\n Authorization: await this.authorizationHeader(),\n }\n this.updateState(EndpointState.FetchConfig)\n let response = await this._client.fetch(config_url, { headers: headers })\n if (response.status == 401) {\n this._requestLogger.debug('GET %s: 401, about to retry with fresh access token', config_url)\n // one retry, the token might have just expired\n this.statusHandler401(response.status)\n headers = {\n Authorization: await this.authorizationHeader(),\n }\n this.updateState(EndpointState.FetchConfig)\n response = await this._client.fetch(config_url, {\n headers: headers,\n })\n }\n\n if (response.status != 200) {\n this.updateState(EndpointState.Error)\n const message = await response.text()\n return Promise.reject(`Unexpected status ${response.status} for ${config_url}: ${message}`)\n }\n let config = (await response.json()) as DataConfig\n\n const datasetApiUrl = new URL(config.dataset_api_url, this.eyepopUrl())\n this.datasetApiUrl = datasetApiUrl.toString()\n const vlmApiUrl = new URL(config.vlm_api_url, this.eyepopUrl())\n this.vlmApiUrl = vlmApiUrl.toString()\n\n if (this.options().disableWs) {\n this._logger.info('disabled ws connection')\n } else {\n await this.reconnect_ws()\n }\n\n if (this.options().useCookie) {\n const client = this._client\n const url = urljoin(this.datasetApiUrl, 'security', 'check?set_cookie=true')\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n response = await client.fetch(url, {\n headers: headers,\n })\n if (response.status != 204) {\n this.updateState(EndpointState.Error)\n const message = await response.text()\n return Promise.reject(`Unexpected status ${response.status}: ${message}`)\n }\n }\n\n this.updateState()\n return Promise.resolve(this)\n }\n\n private async reconnect_ws(): Promise<void> {\n if (this._ws) {\n this._ws.close()\n this._ws = null\n }\n const baseUrl = this.datasetApiUrl?.replace('https://', 'wss://').replace('http://', 'ws://')\n if (!baseUrl) {\n return\n }\n const ws_url = urljoin(baseUrl, 'events')\n this._requestLogger.debug('about to connect ws to: %s', ws_url)\n return new Promise((resolve, reject) => {\n const ws = createWebSocket(ws_url)\n if (!ws) {\n return resolve()\n }\n this._ws = ws\n\n ws.onopen = async () => {\n const auth_header = await this.authorizationHeader()\n let msg = JSON.stringify({ authorization: auth_header })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n msg = JSON.stringify({ subscribe: { account_uuid: this._accountId } })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n for (let dataset_uuid in this._dataset_uuid_to_event_handlers.keys()) {\n const msg = JSON.stringify({ subscribe: { dataset_uuid: dataset_uuid } })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n }\n this._ws_current_reconnect_delay = WS_INITIAL_RECONNECT_DELAY\n resolve()\n }\n\n ws.onmessage = event => {\n const data = JSON.parse(event.data)\n this._requestLogger.debug('received ws: %s', JSON.stringify(data))\n const change_event = data as ChangeEvent\n this.dispatchChangeEvent(change_event)\n }\n\n ws.onclose = (event: CloseEvent) => {\n const { code, reason } = event\n this._requestLogger.debug('ws closed: %d %s', code, reason)\n\n if (reason !== 'unsubscribe') {\n if (!this._ws_current_reconnect_delay) {\n this._ws_current_reconnect_delay = WS_INITIAL_RECONNECT_DELAY\n } else if (this._ws_current_reconnect_delay < WS_MAX_RECONNECT_DELAY) {\n this._ws_current_reconnect_delay *= 1.5\n }\n setTimeout(async () => {\n await this.reconnect_ws()\n }, this._ws_current_reconnect_delay)\n }\n }\n\n ws.onerror = (event: Event): any => {\n this._logger.error(event)\n reject(event)\n return null\n }\n })\n }\n\n private options(): DataOptions {\n return this._options as DataOptions\n }\n\n private async request(path: string, options: RequestInit = {}, disableAuth: boolean = false, dataApiType: DataApiType = DataApiType.dataset) {\n const client = this._client\n if (!client) {\n return Promise.reject('endpoint not connected')\n }\n let response = await this.fetchWithRetry(async () => {\n const session = await this.session()\n\n const baseUrl = getBaseUrl(session, dataApiType)\n const headers = {\n ...(disableAuth ? {} : { Authorization: `Bearer ${session.accessToken}` }),\n ...(options.headers || {}),\n }\n\n if (!options.body) {\n options.body = null\n }\n\n const ri = {\n headers: headers,\n method: options.method || 'GET',\n body: options.body,\n }\n this._requestLogger.debug('Request - ' + ri.method + ' ' + path + ' BODY: ' + (ri.body ? ri.body : ''))\n\n return await client.fetch(urljoin(baseUrl ?? '', path), ri)\n })\n\n if (response.status === 204) {\n return null // Return null if the response is completely empty\n }\n\n const contentType = response.headers.get('Content-Type')\n this._requestLogger.debug('Response - ' + response.status + ' ' + response.statusText)\n\n if (!response.ok) {\n if (contentType && (contentType.toLowerCase().startsWith('application/json') || contentType.toLowerCase().startsWith('text/'))) {\n throw new Error(`Request failed with ${response.status} ${response.statusText}: ${await response.text()}`)\n } else {\n throw new Error(`Request failed with ${response.status} ${response.statusText}`)\n }\n }\n\n if (contentType && contentType.toLowerCase().startsWith('application/json')) {\n return await response.json()\n }\n\n return await response.blob()\n }\n\n async listDatasets(include_stats: boolean = true, modifiable_version_only?: boolean): Promise<Dataset[]> {\n const modifiableVersionQuery = typeof modifiable_version_only !== 'undefined' ? `&modifiable_version_only=${modifiable_version_only}` : ''\n return this.request(`/datasets?account_uuid=${this._accountId}&include_stats=${include_stats}${modifiableVersionQuery}`, {\n method: 'GET',\n })\n }\n\n async createDataset(data: DatasetCreate): Promise<Dataset> {\n return this.request(`/datasets?account_uuid=${this._accountId}`, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async getDataset(dataset_uuid: string, include_stats: boolean = true, dataset_version?: number, modifiable_version_only?: boolean): Promise<Dataset> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const modifiableVersionQuery = typeof modifiable_version_only !== 'undefined' ? `&modifiable_version_only=${modifiable_version_only}` : ''\n return this.request(`/datasets/${dataset_uuid}?include_stats=${include_stats}${versionQuery}${modifiableVersionQuery}`, {\n method: 'GET',\n })\n }\n\n async updateDataset(dataset_uuid: string, data: DatasetUpdate, start_auto_annotate: boolean = true): Promise<Dataset> {\n return this.request(`/datasets/${dataset_uuid}?start_auto_annotate=${start_auto_annotate}`, {\n method: 'PATCH',\n body: JSON.stringify(data),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async updateDatasetHeroAsset(dataset_uuid: string, update: DatasetHeroAssetUpdate): Promise<Dataset> {\n return this.request(`/datasets/${dataset_uuid}/hero_asset`, {\n method: 'PATCH',\n body: JSON.stringify(update),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async deleteDataset(dataset_uuid: string): Promise<void> {\n return this.request(`/datasets/${dataset_uuid}`, {\n method: 'DELETE',\n })\n }\n\n async freezeDatasetVersion(dataset_uuid: string, dataset_version?: number): Promise<Dataset> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n return this.request(`/datasets/${dataset_uuid}/freeze?${versionQuery}`, {\n method: 'POST',\n })\n }\n\n async analyzeDatasetVersion(dataset_uuid: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n return this.request(`/datasets/${dataset_uuid}/analyze?${versionQuery}`, {\n method: 'POST',\n })\n }\n\n async autoAnnotateDatasetVersion(dataset_uuid: string, dataset_version?: number, max_assets?: number): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const maxAssetsQuery = max_assets ? `&max_assets=${max_assets}` : ''\n return this.request(`/datasets/${dataset_uuid}/auto_annotate?${versionQuery}${maxAssetsQuery}`, {\n method: 'POST',\n })\n }\n\n async deleteDatasetVersion(dataset_uuid: string, dataset_version: number): Promise<Dataset> {\n return this.request(`/datasets/${dataset_uuid}/versions?dataset_version=${dataset_version}`, {\n method: 'DELETE',\n })\n }\n\n async deleteAnnotations(dataset_uuid: string, dataset_version: number, user_reviews: UserReview[] = [UserReview.unknown]): Promise<void> {\n let userReviewsQuery = ''\n for (let userReview in user_reviews) {\n userReviewsQuery += `&user_review=${userReview}`\n }\n await this.request(`/datasets/${dataset_uuid}/annotations?dataset_version=${dataset_version}${userReviewsQuery}`, {\n method: 'DELETE',\n })\n }\n\n async createDatasetAutoAnnotate(create: DatasetAutoAnnotateCreate, dataset_uuid: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `dataset_version=${dataset_version}&` : ''\n return this.request(`/datasets/${dataset_uuid}/auto_annotates?${versionQuery}`, {\n method: 'POST',\n body: JSON.stringify(create),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async updateDatasetAutoAnnotate(update: DatasetAutoAnnotateUpdate, dataset_uuid: string, auto_annotate: string, source: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `dataset_version=${dataset_version}&` : ''\n return this.request(`/datasets/${dataset_uuid}/auto_annotates?auto_annotate=${auto_annotate}&source=${encodeURIComponent(source)}&${versionQuery}`, {\n method: 'PATCH',\n body: JSON.stringify(update),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async listDatasetAutoAnnotates(dataset_uuid: string, auto_annotate?: string, source?: string, dataset_version?: number): Promise<DatasetAutoAnnotate[]> {\n const versionQuery = dataset_version ? `dataset_version=${dataset_version}&` : ''\n const autoAnnotateQuery = auto_annotate ? `auto_annotate=${auto_annotate}&` : ''\n const sourceQuery = source ? `source=${source}&` : ''\n return this.request(`/datasets/${dataset_uuid}/auto_annotates?${versionQuery}&${autoAnnotateQuery}&${sourceQuery}`, {\n method: 'GET',\n })\n }\n\n // Asset methods\n async uploadAsset(dataset_uuid: string, dataset_version: number | undefined, blob: Blob, external_id: string | undefined = undefined): Promise<Asset> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n let post_path: string\n if (external_id) {\n post_path = `/assets?dataset_uuid=${dataset_uuid}${versionQuery}&external_id=${external_id}`\n } else {\n post_path = `/assets?dataset_uuid=${dataset_uuid}${versionQuery}`\n }\n\n return this.request(post_path, {\n method: 'POST',\n body: blob,\n headers: {\n 'Content-Type': blob.type || 'application/octet-stream',\n },\n })\n }\n\n async importAsset(dataset_uuid: string, dataset_version: number | undefined, asset_import: AssetImport, external_id: string | undefined = undefined): Promise<Asset> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n let post_path: string\n if (external_id) {\n post_path = `/assets/imports?dataset_uuid=${dataset_uuid}${versionQuery}&external_id=${external_id}`\n } else {\n post_path = `/assets/imports?dataset_uuid=${dataset_uuid}${versionQuery}`\n }\n\n return this.request(post_path, {\n method: 'POST',\n body: JSON.stringify(asset_import),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n }\n\n async listAssets(\n dataset_uuid: string,\n dataset_version?: number,\n include_annotations: boolean = false,\n top_k?: number,\n inclusion_mode?: AssetInclusionMode,\n annotation_inclusion_mode?: AnnotationInclusionMode,\n include_partitions?: string[],\n include_auto_annotates?: AutoAnnotate[],\n include_sources?: string[],\n ): Promise<Asset[]> {\n const params = new URLSearchParams()\n params.set('dataset_uuid', dataset_uuid)\n if (dataset_version != null) params.set('dataset_version', String(dataset_version))\n if (include_annotations) params.set('include_annotations', 'true')\n if (inclusion_mode != null) params.set('inclusion_mode', inclusion_mode)\n if (annotation_inclusion_mode != null) params.set('annotation_inclusion_mode', annotation_inclusion_mode)\n for (const p of include_partitions ?? []) params.append('include_partition', p)\n for (const a of include_auto_annotates ?? []) params.append('include_auto_annotate', a)\n for (const s of include_sources ?? []) params.append('include_source', s)\n if (top_k != null) params.set('top_k', String(top_k))\n return this.request(`/assets?${params.toString()}`, {\n method: 'GET',\n })\n }\n\n async getAsset(asset_uuid: string, dataset_uuid?: string, dataset_version?: number, include_annotations: boolean = false, top_k?: number): Promise<Asset> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const annotationsQuery = include_annotations ? '&include_annotations=true' : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n const topKQuery = top_k ? `&top_k=${top_k}` : ''\n return this.request(`/assets/${asset_uuid}?${datasetQuery}${versionQuery}${annotationsQuery}${topKQuery}`, {\n method: 'GET',\n })\n }\n\n async deleteAsset(asset_uuid: string, dataset_uuid?: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n return this.request(`/assets/${asset_uuid}?${datasetQuery}${versionQuery}`, {\n method: 'DELETE',\n })\n }\n\n async resurrectAsset(asset_uuid: string, dataset_uuid: string, from_dataset_version: number, into_dataset_version?: number): Promise<void> {\n const intoVersionQuery = into_dataset_version ? `&into_dataset_version=${into_dataset_version}` : ''\n return this.request(`/assets/${asset_uuid}/resurrect?dataset_uuid=${dataset_uuid}&from_dataset_version=${from_dataset_version}${intoVersionQuery}`, {\n method: 'POST',\n })\n }\n\n async updateAssetGroundTruth(asset_uuid: string, dataset_uuid?: string, dataset_version?: number, predictions?: Prediction[]): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n return this.request(`/assets/${asset_uuid}/ground_truth?${datasetQuery}${versionQuery}`, {\n method: 'PATCH',\n body: JSON.stringify(predictions),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async deleteAssetGroundTruth(asset_uuid: string, dataset_uuid?: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n return this.request(`/assets/${asset_uuid}/ground_truth?${datasetQuery}${versionQuery}`, {\n method: 'DELETE',\n })\n }\n\n async updateAutoAnnotationStatus(asset_uuid: string, auto_annotate: string, user_review: UserReview, approved_threshold?: number): Promise<void> {\n const validStatuses = ['approved', 'rejected', 'unknown']\n if (!validStatuses.includes(user_review)) {\n throw new Error('Invalid status')\n }\n const thresholdQuery = approved_threshold ? `?approved_threshold=${approved_threshold}` : ''\n return this.request(`/assets/${asset_uuid}/auto_annotations/${auto_annotate}/user_review/${user_review}${thresholdQuery}`, {\n method: 'PATCH',\n })\n }\n\n async addAssetAnnotation(\n asset_uuid: string,\n dataset_uuid?: string,\n dataset_version?: number,\n predictions?: Prediction[],\n auto_annotate?: string,\n source?: string,\n user_review?: UserReview,\n approved_threshold?: number,\n ): Promise<void> {\n const datasetQuery = dataset_uuid ? `dataset_uuid=${dataset_uuid}&` : ''\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}&` : ''\n const autoAnnotateQuery = auto_annotate ? `&auto_annotate=${auto_annotate}&` : ''\n const sourceQuery = source ? `&source=${encodeURIComponent(source)}&` : ''\n const userReviewQuery = user_review ? `&user_review=${user_review}&` : ''\n const approvedThresholdQuery = typeof approved_threshold !== 'undefined' ? `&approved_threshold=${approved_threshold}&` : ''\n return this.request(`/assets/${asset_uuid}/annotations?${datasetQuery}${versionQuery}${autoAnnotateQuery}${sourceQuery}${userReviewQuery}${approvedThresholdQuery}`, {\n method: 'POST',\n body: JSON.stringify(predictions),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async updateAssetAnnotationApproval(\n asset_uuid: string,\n dataset_uuid?: string,\n dataset_version?: number,\n auto_annotate?: string,\n source?: string,\n user_review?: UserReview,\n approved_threshold?: number,\n ): Promise<void> {\n const datasetQuery = dataset_uuid ? `dataset_uuid=${dataset_uuid}&` : ''\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}&` : ''\n const autoAnnotateQuery = auto_annotate ? `&auto_annotate=${auto_annotate}&` : ''\n const sourceQuery = source ? `&source=${encodeURIComponent(source)}&` : ''\n const userReviewQuery = user_review ? `&user_review=${user_review}&` : ''\n const approvedThresholdQuery = approved_threshold ? `&approved_threshold=${approved_threshold}&` : ''\n return this.request(`/assets/${asset_uuid}/annotations?${datasetQuery}${versionQuery}${autoAnnotateQuery}${sourceQuery}${userReviewQuery}${approvedThresholdQuery}`, {\n method: 'PATCH',\n })\n }\n\n async downloadAsset(\n asset_uuid: string,\n dataset_uuid?: string,\n dataset_version?: number,\n transcode_mode: TranscodeMode = TranscodeMode.original,\n start_timestamp?: number,\n end_timestamp?: number,\n url_type?: AssetUrlType,\n ): Promise<Blob | DownloadResponse> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n const startTimestampQuery = start_timestamp ? `&start_timestamp=${start_timestamp}` : ''\n const endTimestampQuery = end_timestamp ? `&end_timestamp=${end_timestamp}` : ''\n const urlTypeQuery = url_type ? `&url_type=${url_type}` : ''\n\n return this.request(`/assets/${asset_uuid}/download?transcode_mode=${transcode_mode}${datasetQuery}${versionQuery}${startTimestampQuery}${endTimestampQuery}${urlTypeQuery}`, {\n method: 'GET',\n })\n }\n\n async previewAutoAnnotateAsset(asset_uuid: string, auto_annotate: string, auto_annotate_params?: AutoAnnotateParams): Promise<Annotation> {\n return this.request(`/assets/${asset_uuid}/preview_auto_annotate?auto_annotate=${auto_annotate}`, {\n method: 'POST',\n body: auto_annotate_params ? JSON.stringify(auto_annotate_params) : null,\n headers: auto_annotate_params ? { 'Content-Type': 'application/json' } : {},\n })\n }\n\n async addAssetRoi(asset_uuid: string, roi: Roi, dataset_uuid?: string, dataset_version?: number, predictions?: Prediction[]): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n return this.request(`/assets/${asset_uuid}/rois?${datasetQuery}${versionQuery}`, {\n method: 'POST',\n body: JSON.stringify(roi),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async deleteAssetRoi(asset_uuid: string, name: string, dataset_uuid?: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n return this.request(`/assets/${asset_uuid}/rois/${encodeURIComponent(name)}?${datasetQuery}${versionQuery}`, {\n method: 'DELETE',\n })\n }\n\n // Model methods\n async listModels(): Promise<Model[]> {\n return this.request(`/models?account_uuid=${this._accountId}`, {\n method: 'GET',\n })\n }\n\n async findModelsForDataset(dataset_uuid: string): Promise<Model[]> {\n return this.request(`/models?dataset_uuid=${dataset_uuid}`, {\n method: 'GET',\n })\n }\n\n async createModel(dataset_uuid: string, dataset_version: number, data: ModelCreate, start_training: boolean = true): Promise<Model> {\n return this.request(`/models?dataset_uuid=${dataset_uuid}&dataset_version=${dataset_version}&start_training=${start_training}`, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async getModel(model_uuid: string): Promise<Model> {\n return this.request(`/models/${model_uuid}`, {\n method: 'GET',\n })\n }\n\n async getModelTrainingProgress(model_uuid: string): Promise<ModelTrainingProgress> {\n return this.request(`/models/${model_uuid}/progress`, {\n method: 'GET',\n })\n }\n\n async updateModel(model_uuid: string, data: ModelUpdate): Promise<Model> {\n return this.request(`/models/${model_uuid}`, {\n method: 'PATCH',\n body: JSON.stringify(data),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async deleteModel(model_uuid: string): Promise<void> {\n return this.request(`/models/${model_uuid}`, {\n method: 'DELETE',\n })\n }\n\n async trainModel(model_uuid: string): Promise<Model> {\n return this.request(`/models/${model_uuid}/train`, {\n method: 'POST',\n })\n }\n\n async publishModel(model_uuid: string): Promise<Model> {\n return this.request(`/models/${model_uuid}/publish`, {\n method: 'POST',\n })\n }\n\n async exportModel(model_uuid: string, export_by: ExportedBy, params: QcAiHubExportParams[]): Promise<void> {\n if (export_by != ExportedBy.qc_ai_hub) {\n return Promise.reject(`Unexpected export_by ${export_by}, must be 'qc_ai_hub'`)\n }\n await this.request(`/models/${model_uuid}/exports/qc_ai_hub`, {\n method: 'POST',\n body: JSON.stringify(params),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async downloadModelArtifacts(model_uuid: string, model_formats?: ModelFormat[], device_name?: string, artifact_type?: ArtifactType) {\n const artifactTypeQuery = artifact_type ? `artifact_type=${artifact_type}&` : ''\n const deviceNameQuery = device_name ? `device_name=${encodeURIComponent(device_name)}&` : ''\n let modelFormatQuery = ''\n if (model_formats) {\n for (const model_format of model_formats) {\n modelFormatQuery += `model_format=${model_format}&`\n }\n }\n return this.request(`/exports/model_artifacts/?model_uuid=${model_uuid}&${artifactTypeQuery}${deviceNameQuery}${modelFormatQuery}`, {\n method: 'GET',\n })\n }\n\n public addAccountEventHandler(eventHandler: OnChangeEvent) {\n this._account_event_handlers.push(eventHandler)\n }\n\n public removeAccountEventHandler(eventHandler: OnChangeEvent) {\n this._account_event_handlers = this._account_event_handlers.filter(h => h !== eventHandler)\n }\n\n public addDatasetEventHandler(dataset_uuid: string, eventHandler: OnChangeEvent) {\n let event_handlers = this._dataset_uuid_to_event_handlers.get(dataset_uuid)\n this._logger.debug('addDatasetEventHandler %s', event_handlers)\n if (event_handlers === undefined) {\n event_handlers = []\n this._dataset_uuid_to_event_handlers.set(dataset_uuid, event_handlers)\n const ws = this._ws\n if (ws) {\n const msg = JSON.stringify({ subscribe: { dataset_uuid: dataset_uuid } })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n }\n }\n if (event_handlers.find(h => h === eventHandler) !== eventHandler) {\n this._logger.debug('addDatasetEventHandler event_handlers=%s', event_handlers)\n event_handlers.push(eventHandler)\n }\n }\n\n public removeDatasetEventHandler(dataset_uuid: string, eventHandler: OnChangeEvent) {\n let event_handlers = this._dataset_uuid_to_event_handlers.get(dataset_uuid)\n if (event_handlers === undefined) {\n return\n }\n event_handlers = event_handlers.filter(h => h !== eventHandler)\n if (event_handlers.length == 0) {\n const ws = this._ws\n if (ws) {\n const msg = JSON.stringify({ unsubscribe: { dataset_uuid: dataset_uuid } })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n }\n this._dataset_uuid_to_event_handlers.delete(dataset_uuid)\n }\n }\n\n public removeAllDatasetEventHandlers(dataset_uuid: string) {\n let event_handlers = this._dataset_uuid_to_event_handlers.get(dataset_uuid)\n if (event_handlers === undefined) {\n return\n }\n const ws = this._ws\n if (ws) {\n const msg = JSON.stringify({ unsubscribe: { dataset_uuid: dataset_uuid } })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n }\n this._dataset_uuid_to_event_handlers.delete(dataset_uuid)\n }\n\n public async startWorkflow(account_uuid: string, template_name: string, workflow: CreateWorkflow): Promise<Workflow> {\n return this.request(`/workflows?account_uuid=${account_uuid}&template_name=${template_name}`, {\n method: 'POST',\n body: JSON.stringify(workflow),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n public async getWorkflow(workflow_id: string, account_uuid: string): Promise<ListWorkFlowItem> {\n return this.request(`/workflows/${workflow_id}?account_uuid=${account_uuid}`, {\n method: 'GET',\n })\n }\n\n public async listWorkflows(account_uuid: string, dataset_uuids?: string[], model_uuids?: string[], phases?: WorkflowPhase[]): Promise<ListWorkFlowItem[]> {\n const datasetQuery = dataset_uuids?.map(uuid => `dataset_uuid=${uuid}`).join('&') || ''\n const modelQuery = model_uuids?.map(uuid => `model_uuid=${uuid}`).join('&') || ''\n const phaseQuery = phases?.map(p => `phase=${p}`).join('&') || ''\n const queryParams = [datasetQuery, modelQuery, phaseQuery].filter(q => q).join('&')\n\n return this.request(`/workflows?account_uuid=${account_uuid}${queryParams ? `&${queryParams}` : ''}`, {\n method: 'GET',\n })\n }\n\n public async inferAsset(\n asset_uuid: string,\n infer_request: InferRequest,\n dataset_uuid?: string,\n dataset_version?: number,\n transcode_mode?: TranscodeMode,\n start_timestamp?: number,\n end_timestamp?: number,\n ): Promise<InferAssetJob> {\n const datasetQuery = dataset_uuid ? `dataset_uuid=${dataset_uuid}&` : ''\n const versionQuery = dataset_version ? `dataset_version=${dataset_version}&` : ''\n const transcodeModeQuery = transcode_mode ? `transcode_mode=${transcode_mode}&` : ''\n const startTimestampQuery = start_timestamp ? `start_timestamp=${start_timestamp}&` : ''\n const endTimestampQuery = end_timestamp ? `end_timestamp=${end_timestamp}&` : ''\n\n const assetUrl = `ai.eyepop://data/assets/${asset_uuid}?${transcodeModeQuery}${datasetQuery}${versionQuery}${startTimestampQuery}${endTimestampQuery}`\n\n if (!this.vlmApiUrl || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new InferAssetJob(\n assetUrl,\n infer_request,\n async (path: string, options: any) => {\n return await this.request(path, options, false, DataApiType.vlm)\n },\n this._requestLogger,\n )\n return job.start(() => {\n this.jobDone(job)\n })\n } catch (e) {\n // we'll have to reset our queue counter in case the job cannot be started\n this._limit.release()\n throw e\n }\n }\n\n public async evaluateDataset(evaluate_request: EvaluateRequest, worker_release?: string): Promise<EvaluateDatasetJob> {\n if (!this.vlmApiUrl || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new EvaluateDatasetJob(\n evaluate_request,\n worker_release ?? null,\n async (path: string, options: any) => {\n return await this.request(path, options, false, DataApiType.vlm)\n },\n this._requestLogger,\n )\n return job.start(() => {\n this.jobDone(job)\n })\n } catch (e) {\n // we'll have to reset our queue counter in case the job cannot be started\n this._limit.release()\n throw e\n }\n }\n\n private jobDone(_job: object) {\n this._limit?.release()\n }\n\n private async dispatchChangeEvent(change_event: ChangeEvent): Promise<void> {\n switch (change_event.change_type) {\n // account event types\n case ChangeType.dataset_added:\n case ChangeType.dataset_modified:\n case ChangeType.dataset_removed:\n case ChangeType.dataset_version_modified:\n case ChangeType.workflow_started:\n case ChangeType.workflow_succeeded:\n case ChangeType.workflow_failed:\n case ChangeType.workflow_task_started:\n case ChangeType.workflow_task_succeeded:\n case ChangeType.workflow_task_failed:\n this._logger.debug('dispatchChangeEvent account_event_handlers=%s', this._account_event_handlers)\n for (let handler of this._account_event_handlers) {\n await handler(change_event)\n }\n break\n // dataset event types\n case ChangeType.asset_added:\n case ChangeType.asset_removed:\n case ChangeType.asset_status_modified:\n case ChangeType.asset_annotation_modified:\n case ChangeType.model_added:\n case ChangeType.model_modified:\n case ChangeType.model_removed:\n case ChangeType.model_status_modified:\n case ChangeType.model_progress:\n const event_handlers = this._dataset_uuid_to_event_handlers.get(change_event.dataset_uuid)\n this._logger.debug('dispatchChangeEvent event_handlers=%s', event_handlers)\n if (event_handlers !== undefined) {\n for (let handler of event_handlers) {\n await handler(change_event)\n }\n }\n break\n }\n }\n\n // Vlm Ability Management\n\n async listVlmAbilityGroups(): Promise<VlmAbilityGroup[]> {\n return this.request(`/vlm_ability_groups?account_uuid=${this._accountId}`, {\n method: 'GET',\n })\n }\n\n async createVlmAbilityGroup(create: VlmAbilityGroupCreate): Promise<VlmAbilityGroup> {\n return this.request(`/vlm_ability_groups?account_uuid=${this._accountId}`, {\n method: 'POST',\n body: JSON.stringify(create, omit_nulls),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async getVlmAbilityGroup(vlm_ability_group_uuid: string): Promise<VlmAbilityGroup> {\n return this.request(`/vlm_ability_groups/${vlm_ability_group_uuid}`, {\n method: 'GET',\n })\n }\n\n async deleteVlmAbilityGroup(vlm_ability_group_uuid: string): Promise<void> {\n return this.request(`/vlm_ability_groups/${vlm_ability_group_uuid}`, {\n method: 'DELETE',\n })\n }\n\n async updateVlmAbilityGroup(vlm_ability_group_uuid: string, update: VlmAbilityGroupUpdate): Promise<VlmAbilityGroup> {\n return this.request(`/vlm_ability_groups/${vlm_ability_group_uuid}`, {\n method: 'PATCH',\n body: JSON.stringify(update),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async listVlmAbilities(): Promise<VlmAbility[]> {\n return this.request(`/vlm_abilities?account_uuid=${this._accountId}`, {\n method: 'GET',\n })\n }\n\n async createVlmAbility(create: VlmAbilityCreate, vlm_ability_group_uuid?: string): Promise<VlmAbility> {\n const groupQuery = vlm_ability_group_uuid ? `&vlm_ability_group_uuid=${vlm_ability_group_uuid}` : ''\n return this.request(`/vlm_abilities?account_uuid=${this._accountId}${groupQuery}`, {\n method: 'POST',\n body: JSON.stringify(create, omit_nulls),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async getVlmAbility(vlm_ability_uuid: string): Promise<VlmAbility> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}`, {\n method: 'GET',\n })\n }\n\n async deleteVlmAbility(vlm_ability_uuid: string): Promise<void> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}`, {\n method: 'DELETE',\n })\n }\n\n async updateVlmAbility(vlm_ability_uuid: string, update: VlmAbilityUpdate): Promise<VlmAbility> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}`, {\n method: 'PATCH',\n body: JSON.stringify(update),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async refineVlmAbility(vlm_ability_uuid: string, auto_prompt: AutoPromptConfig): Promise<VlmAbility> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/refine`, {\n method: 'POST',\n body: JSON.stringify(auto_prompt, omit_nulls),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async cloneVlmAbility(vlm_ability_uuid: string, account_uuid?: string, name?: string, default_alias_name?: string): Promise<VlmAbility> {\n const params = new URLSearchParams()\n if (account_uuid) {\n params.set('account_uuid', account_uuid)\n } else if (this._accountId) {\n params.set('account_uuid', this._accountId)\n }\n if (name) {\n params.set('name', name)\n }\n if (default_alias_name) {\n params.set('default_alias_name', default_alias_name)\n }\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/clone?${params.toString()}`, {\n method: 'POST'\n })\n }\n\n async publishVlmAbility(vlm_ability_uuid: string, alias_name?: string, tag_name?: string): Promise<VlmAbility> {\n const alias_name_query = alias_name ? `alias_name=${encodeURIComponent(alias_name)}&` : ''\n const tag_name_query = tag_name ? `tag_name=${encodeURIComponent(tag_name)}&` : ''\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/publish?${alias_name_query}${tag_name_query}`, {\n method: 'POST',\n })\n }\n\n async addVlmAbilityAlias(vlm_ability_uuid: string, alias_name: string, tag_name?: string): Promise<VlmAbility> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/alias/${encodeURIComponent(alias_name)}/tag/${tag_name ? encodeURIComponent(tag_name) : ''}`, {\n method: 'POST',\n })\n }\n\n async removeVlmAbilityAlias(vlm_ability_uuid: string, alias_name: string, tag_name: string): Promise<VlmAbility> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/alias/${encodeURIComponent(alias_name)}/tag/${encodeURIComponent(tag_name)}`, {\n method: 'DELETE',\n })\n }\n\n async listVlmAbilityEvaluations(vlm_ability_uuid: string): Promise<DatasetAutoAnnotate[]> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/evaluations`, {\n method: 'GET',\n })\n }\n\n async getVlmAbilityEvaluation(vlm_ability_uuid: string, source: string): Promise<DatasetAutoAnnotate> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/evaluations/${source}`, {\n method: 'GET',\n })\n }\n\n async startVlmAbilityEvaluation(vlm_ability_uuid: string, evaluate_request: EvaluateRequest): Promise<DatasetAutoAnnotate> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/evaluations`, {\n method: 'POST',\n body: JSON.stringify(evaluate_request),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async resolveAliases(aliases: string[]): Promise<AliasResolution> {\n const params = new URLSearchParams()\n aliases.forEach(alias => {\n params.append('alias', alias)\n })\n return this.request(`/exports/aliases?${params.toString()}`, {\n method: 'GET',\n })\n }\n}\n","import { WebrtcBase } from './webrtc_base'\nimport { Logger } from 'pino'\nimport { WorkerSession } from '../worker/worker_types'\nimport { HttpClient } from '../options'\n\nexport class WebrtcWhep extends WebrtcBase {\n private _stream: MediaStream | null\n constructor(ingressId: string, getSession: () => Promise<WorkerSession>, client: HttpClient, requestLogger: Logger) {\n super(getSession, client, ingressId, 'liveIngress/whep', false, requestLogger)\n this._stream = null\n }\n public override async close(): Promise<void> {\n const stream = this._stream\n this._stream = null\n if (stream) {\n const tracks = stream.getTracks()\n tracks.forEach(track => {\n track.stop()\n })\n }\n return super.close()\n }\n\n public async stream(): Promise<MediaStream> {\n if (this._stream) {\n return Promise.resolve(this._stream)\n } else {\n return Promise.reject('fetching stream failed')\n }\n }\n\n public async start(): Promise<WebrtcWhep> {\n const session = await this._getSession()\n const egressUrl = this.gresUrl(session)\n /* According to https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html\n this should be a `OPTIONS` request. Unfortunately a lot of CORS middlewares\n hijack the OPTIONS request and only return those headers that are necessary\n for the CORS preflight protocol.\n As workaround, our media endpoint expose a equivalent `GET` request to fake\n the `OPTIONS` request and bypass the CORS preflight trap\n */\n const response = await this._client.fetch(egressUrl, {\n headers: session.authenticationHeaders(),\n method: 'GET',\n })\n if (response.status >= 300) {\n return Promise.reject(`unknown status code for GET '${egressUrl}': ${response.status} (${response.statusText})`)\n }\n return this.onIceServers(response)\n }\n\n protected async onRemoteAnswer(answer: RTCSessionDescription): Promise<WebrtcBase> {\n if (!this._pc) {\n throw new Error('onLocalOffer no peer connection')\n }\n\n await this._pc.setRemoteDescription(new RTCSessionDescription(answer))\n\n if (this._queuedCandidates.length !== 0) {\n await this.sendLocalCandidates(this._queuedCandidates)\n this._queuedCandidates = []\n }\n return this\n }\n\n private async onIceServers(response: Response): Promise<WebrtcWhep> {\n if (this._stream) {\n throw new Error('onIceServers has stream')\n }\n const pc = new RTCPeerConnection({\n iceServers: WebrtcBase.linkToIceServers(response.headers.get('Link')),\n })\n\n const direction = 'sendrecv'\n pc.addTransceiver('video', { direction })\n pc.onicecandidate = evt => this.onLocalCandidate(evt)\n\n this._pc = pc\n\n this._requestLogger.info(`onIceServers ${pc.iceConnectionState}`)\n\n return new Promise(async (resolve, reject) => {\n pc.ontrack = evt => {\n this._requestLogger.debug(`new track: ${evt.track.kind}`)\n this._stream = evt.streams[0] || null\n resolve(this)\n }\n pc.oniceconnectionstatechange = () => {\n switch (pc.iceConnectionState) {\n case 'failed':\n case 'disconnected':\n this._requestLogger.debug('oniceconnectionstatechange disconnected')\n reject(`peer connection: ${pc.iceConnectionState}`)\n break\n case 'connected':\n this._requestLogger.debug('oniceconnectionstatechange connected')\n break\n }\n }\n await this.onLocalOffer(await pc.createOffer())\n })\n }\n}\n","import {ApiKeyAuth, LocalAuth, OAuth2Auth, Options, SessionAuth} from './options'\n\nimport { WorkerEndpoint } from './worker/worker_endpoint'\nimport { DataEndpoint } from './data/data_endpoint'\n\nimport { TransientPopId, WorkerOptions } from './worker/worker_options'\nimport { DataOptions } from './data/data_options'\nimport { WorkerSession } from './worker/worker_types'\nimport { DataSession } from './data/data_types'\n\nexport { WorkerEndpoint } from './worker/worker_endpoint'\nexport { DataEndpoint } from './data/data_endpoint'\n\nexport {\n Session,\n EndpointState,\n StreamTime,\n Prediction,\n PredictedClass,\n PredictedObject,\n PredictedMesh,\n PredictedKeyPoint,\n PredictedKeyPoints,\n PredictedMotion,\n Contour,\n Point2d,\n Point3d\n} from './types'\n\nexport {\n ChangeType,\n DataSession,\n ModelType,\n ChangeEvent,\n Asset,\n AnnotationType,\n Annotation,\n AssetStatus,\n OnChangeEvent,\n Model,\n ModelStatus,\n ModelUpdate,\n ModelCreate,\n DatasetCreate,\n Dataset,\n DatasetUpdate,\n DatasetHeroAssetUpdate,\n DatasetVersion,\n UserReview,\n TranscodeMode,\n AutoAnnotateParams,\n ModelTrainingStage,\n ModelTrainingProgress,\n ModelMetrics,\n ModelSample,\n AssetImport,\n ModelExport,\n ModelExportStatus,\n ModelPrecisionType,\n ModelFormat,\n QcAiHubExportParams,\n ExportedBy,\n ArtifactType,\n DatasetParent,\n CreateWorkflowConfig,\n CreateWorkflow,\n Workflow,\n DownloadResponse,\n AssetUrlType,\n AutoAnnotateStatus,\n DatasetAutoAnnotate,\n DatasetAutoAnnotateCreate,\n DatasetAutoAnnotateUpdate,\n InferRuntimeConfig,\n TransformInto,\n InferRequest,\n EvaluateFilter,\n EvaluateConfig,\n EvaluateRequest,\n EvaluationStatus,\n EvaluateRunInfo,\n EvaluateResponse,\n InferRunInfo,\n VlmAbilityStatus,\n AutoPromptConfig,\n AbilityAliasEntry,\n VlmAbilityCreate,\n VlmAbilityUpdate,\n VlmAbility,\n VlmAbilityGroupCreate,\n VlmAbilityGroupUpdate,\n VlmAbilityGroup,\n AliasResolution,\n AreaType,\n BaseArea,\n RectangleArea,\n ContourArea,\n TimeSpan,\n Roi\n} from './data/data_types'\n\nexport {\n WorkerSession,\n FileSource,\n MediaStreamSource,\n Source,\n PathSource,\n UrlSource,\n AssetUuidSource,\n StreamSource,\n ResultStream,\n VideoMode,\n ComponentParams,\n ProcessParams,\n ProcessRequest,\n MotionDetectConfig,\n PredictionVersion,\n DEFAULT_PREDICTION_VERSION\n} from './worker/worker_types'\n\nexport { Options, Authentication, SessionAuth, ApiKeyAuth, OAuth2Auth, Auth0Options, HttpClient, PlatformSupport, LocalAuth } from './options'\n\nexport { DataOptions } from './data/data_options'\n\nexport { WorkerOptions, TransientPopId } from './worker/worker_options'\n\nexport { EyepopLineDecoder } from './streaming'\n\nconst readEnv = (env: string): string | undefined => {\n if (typeof process !== 'undefined') {\n return process.env?.[env] ?? undefined\n }\n return undefined\n}\n\nconst stringToBooleanSafe = (str?: string): boolean => {\n if (typeof str == 'undefined') {\n return false\n }\n const loweCaseStr = str.toLowerCase()\n return loweCaseStr == 'true' || loweCaseStr == 'yes'\n}\n\nexport namespace EyePop {\n const envApiKey = readEnv('EYEPOP_API_KEY')\n\n const defaultAuth: ApiKeyAuth | undefined =\n envApiKey ? {\n apiKey: envApiKey\n } : undefined\n\n /**\n * @deprecated use workerEndpoint() instead\n */\n export const endpoint = workerEndpoint\n\n export function workerEndpoint(opts: WorkerOptions = {}): WorkerEndpoint {\n if (opts.isLocalMode === undefined) {\n opts.isLocalMode = stringToBooleanSafe(readEnv('EYEPOP_LOCAL_MODE'))\n }\n if (opts.isLocalMode) {\n opts.eyepopUrl = 'http://127.0.0.1:8080'\n }\n _fill_default_options(opts)\n if (opts.auth === undefined) {\n if (opts.isLocalMode) {\n opts.auth = { isLocal: true } as LocalAuth\n } else {\n throw new Error('auth option or EYEPOP_API_KEY environment variable is required')\n }\n }\n if (opts.popId === undefined) {\n opts.popId = readEnv('EYEPOP_POP_ID') || TransientPopId.Transient\n }\n\n if (opts.autoStart === undefined) {\n opts.autoStart = true\n }\n\n if (opts.stopJobs === undefined) {\n opts.stopJobs = true\n }\n\n if (opts.auth !== undefined) {\n if ((opts.auth as SessionAuth).session !== undefined) {\n if (((opts.auth as SessionAuth).session as WorkerSession) !== undefined) {\n if (((opts.auth as SessionAuth).session as WorkerSession).popId) {\n opts.popId = ((opts.auth as SessionAuth).session as WorkerSession).popId\n }\n }\n }\n }\n return new WorkerEndpoint(opts)\n }\n\n export function dataEndpoint(opts: DataOptions = {}): DataEndpoint {\n _fill_default_options(opts)\n if (opts.auth === undefined) {\n throw new Error('auth option or EYEPOP_API_KEY environment variable is required')\n }\n if (opts.accountId === undefined) {\n opts.accountId = readEnv('EYEPOP_ACCOUNT_ID')\n }\n if ((opts.auth as SessionAuth).session !== undefined) {\n if (((opts.auth as SessionAuth).session as DataSession) !== undefined) {\n if (((opts.auth as SessionAuth).session as DataSession).accountId) {\n opts.accountId = ((opts.auth as SessionAuth).session as DataSession).accountId\n }\n }\n }\n return new DataEndpoint(opts)\n }\n\n function _fill_default_options(opts: Options) {\n if (!opts.auth) {\n opts.auth = defaultAuth\n }\n\n if (!opts.eyepopUrl && opts.auth && (opts.auth as SessionAuth).session && (opts.auth as SessionAuth).session.eyepopUrl) {\n // Pre-authenticated browser session may overwrite eyepopUrl\n opts.eyepopUrl = (opts.auth as SessionAuth).session.eyepopUrl\n }\n\n if (!opts.eyepopUrl) {\n opts.eyepopUrl = readEnv('EYEPOP_URL')\n }\n\n if (!opts.eyepopUrl) {\n opts.eyepopUrl = 'https://compute.eyepop.ai'\n }\n\n if (opts.auth) {\n if ((opts.auth as OAuth2Auth).oAuth2 !== undefined) {\n if (typeof (opts.auth as OAuth2Auth).oAuth2 === 'boolean') {\n if (opts.eyepopUrl && opts.eyepopUrl.match(/https:(.*).staging.eyepop.xyz/i)) {\n opts.auth = {\n oAuth2: {\n domain: 'dev-eyepop.us.auth0.com',\n clientId: 'jktx3YO2UnbkNPvr05PQWf26t1kNTJyg',\n audience: 'https://dev-app.eyepop.ai',\n scope: 'admin:clouds access:inference-api access:datasets',\n },\n }\n } else {\n opts.auth = {\n oAuth2: {\n domain: 'eyepop.us.auth0.com',\n clientId: 'Lb9ubA9Hf3jlaqWLUx8XgA0zvotgViCl',\n audience: 'https://api.eyepop.ai',\n scope: 'admin:clouds access:inference-api access:datasets',\n },\n }\n }\n }\n }\n }\n if (!opts.jobQueueLength) {\n opts.jobQueueLength = 128\n }\n }\n}\n\nexport * from './types'\nexport * from './endpoint'\nexport * from './options'\nexport * from './semaphore'\nexport * from './streaming'\nexport * from './data/data_types'\nexport * from './data/data_options'\nexport * from './data/data_endpoint'\nexport * from './worker/worker_types'\nexport * from './worker/worker_options'\nexport * from './worker/worker_endpoint'\nexport * from './worker/jobs'\nexport * from './worker/webrtc_base'\nexport * from './worker/webrtc_whep'\nexport * from './worker/webrtc_whip'\nexport default EyePop\n"],"mappings":"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","names":["charset","path","extension","EndpointState","PredictionVersion","VideoMode","PopComponentType","ForwardOperatorType","InferenceType","MotionModel","ContourType","mid","iteratorToStream","TransientPopId","SessionStatus","headers","response","DataApiType","AutoAnnotateStatus","AssetStatus","AnnotationType","UserReview","AssetInclusionMode","AnnotationInclusionMode","AutoAnnotateTask","TranscodeMode","AreaType","ModelType","ModelTask","ModelStatus","ModelExportStatus","ExportedBy","ArtifactType","ModelTrainingStage","ChangeType","WorkflowPhase","ModelFormat","ModelPrecisionType","AssetUrlType","EvaluationStatus","VlmAbilityStatus","headers","msg","path","EyePop"]}
1
+ {"version":3,"sources":["../../../node_modules/mime-db/db.json","../../../node_modules/mime-db/index.js","../../../node_modules/mime-types/index.js","../types.ts","../streaming.ts","../worker/worker_types.ts","../worker/webrtc_whip.ts","../worker/webrtc_base.ts","../worker/jobs.ts","../shims/local_file.ts","../shims/http_client.ts","../semaphore.ts","../endpoint.ts","../shims/browser_session.ts","../worker/worker_options.ts","../worker/worker_endpoint.ts","../shims/websockets.ts","../../../node_modules/url-join/lib/url-join.js","../data/data_types.ts","../data/jobs.ts","../data/data_endpoint.ts","../worker/webrtc_whep.ts","../index.ts"],"sourcesContent":["{\n \"application/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"application/3gpdash-qoe-report+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/3gpp-ims+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphalforms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/a2l\": {\n \"source\": \"iana\"\n },\n \"application/ace+cbor\": {\n \"source\": \"iana\"\n },\n \"application/activemessage\": {\n \"source\": \"iana\"\n },\n \"application/activity+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-directory+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcost+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcostparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointprop+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointpropparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-error+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamcontrol+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/aml\": {\n \"source\": \"iana\"\n },\n \"application/andrew-inset\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez\"]\n },\n \"application/applefile\": {\n \"source\": \"iana\"\n },\n \"application/applixware\": {\n \"source\": \"apache\",\n \"extensions\": [\"aw\"]\n },\n \"application/at+jwt\": {\n \"source\": \"iana\"\n },\n \"application/atf\": {\n \"source\": \"iana\"\n },\n \"application/atfx\": {\n \"source\": \"iana\"\n },\n \"application/atom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atom\"]\n },\n \"application/atomcat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomcat\"]\n },\n \"application/atomdeleted+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomdeleted\"]\n },\n \"application/atomicmail\": {\n \"source\": \"iana\"\n },\n \"application/atomsvc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomsvc\"]\n },\n \"application/atsc-dwd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dwd\"]\n },\n \"application/atsc-dynamic-event-message\": {\n \"source\": \"iana\"\n },\n \"application/atsc-held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"held\"]\n },\n \"application/atsc-rdt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/atsc-rsat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsat\"]\n },\n \"application/atxml\": {\n \"source\": \"iana\"\n },\n \"application/auth-policy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/bacnet-xdd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/batch-smtp\": {\n \"source\": \"iana\"\n },\n \"application/bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/beep+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/calendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/calendar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xcs\"]\n },\n \"application/call-completion\": {\n \"source\": \"iana\"\n },\n \"application/cals-1840\": {\n \"source\": \"iana\"\n },\n \"application/captive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cbor\": {\n \"source\": \"iana\"\n },\n \"application/cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/cccex\": {\n \"source\": \"iana\"\n },\n \"application/ccmp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ccxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ccxml\"]\n },\n \"application/cdfx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdfx\"]\n },\n \"application/cdmi-capability\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmia\"]\n },\n \"application/cdmi-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmic\"]\n },\n \"application/cdmi-domain\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmid\"]\n },\n \"application/cdmi-object\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmio\"]\n },\n \"application/cdmi-queue\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmiq\"]\n },\n \"application/cdni\": {\n \"source\": \"iana\"\n },\n \"application/cea\": {\n \"source\": \"iana\"\n },\n \"application/cea-2018+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cellml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cfw\": {\n \"source\": \"iana\"\n },\n \"application/city+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clr\": {\n \"source\": \"iana\"\n },\n \"application/clue+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clue_info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cms\": {\n \"source\": \"iana\"\n },\n \"application/cnrp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-group+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-payload\": {\n \"source\": \"iana\"\n },\n \"application/commonground\": {\n \"source\": \"iana\"\n },\n \"application/conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cose\": {\n \"source\": \"iana\"\n },\n \"application/cose-key\": {\n \"source\": \"iana\"\n },\n \"application/cose-key-set\": {\n \"source\": \"iana\"\n },\n \"application/cpl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cpl\"]\n },\n \"application/csrattrs\": {\n \"source\": \"iana\"\n },\n \"application/csta+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cstadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/csvm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cu-seeme\": {\n \"source\": \"apache\",\n \"extensions\": [\"cu\"]\n },\n \"application/cwt\": {\n \"source\": \"iana\"\n },\n \"application/cybercash\": {\n \"source\": \"iana\"\n },\n \"application/dart\": {\n \"compressible\": true\n },\n \"application/dash+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpd\"]\n },\n \"application/dash-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpp\"]\n },\n \"application/dashdelta\": {\n \"source\": \"iana\"\n },\n \"application/davmount+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"davmount\"]\n },\n \"application/dca-rft\": {\n \"source\": \"iana\"\n },\n \"application/dcd\": {\n \"source\": \"iana\"\n },\n \"application/dec-dx\": {\n \"source\": \"iana\"\n },\n \"application/dialog-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom\": {\n \"source\": \"iana\"\n },\n \"application/dicom+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dii\": {\n \"source\": \"iana\"\n },\n \"application/dit\": {\n \"source\": \"iana\"\n },\n \"application/dns\": {\n \"source\": \"iana\"\n },\n \"application/dns+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dns-message\": {\n \"source\": \"iana\"\n },\n \"application/docbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dbk\"]\n },\n \"application/dots+cbor\": {\n \"source\": \"iana\"\n },\n \"application/dskpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dssc+der\": {\n \"source\": \"iana\",\n \"extensions\": [\"dssc\"]\n },\n \"application/dssc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdssc\"]\n },\n \"application/dvcs\": {\n \"source\": \"iana\"\n },\n \"application/ecmascript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es\",\"ecma\"]\n },\n \"application/edi-consent\": {\n \"source\": \"iana\"\n },\n \"application/edi-x12\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/edifact\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/efi\": {\n \"source\": \"iana\"\n },\n \"application/elm+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/elm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.cap+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/emergencycalldata.comment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.deviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.ecall.msd\": {\n \"source\": \"iana\"\n },\n \"application/emergencycalldata.providerinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.serviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.subscriberinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.veds+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emma+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emma\"]\n },\n \"application/emotionml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emotionml\"]\n },\n \"application/encaprtp\": {\n \"source\": \"iana\"\n },\n \"application/epp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/epub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"epub\"]\n },\n \"application/eshop\": {\n \"source\": \"iana\"\n },\n \"application/exi\": {\n \"source\": \"iana\",\n \"extensions\": [\"exi\"]\n },\n \"application/expect-ct-report+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/express\": {\n \"source\": \"iana\",\n \"extensions\": [\"exp\"]\n },\n \"application/fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/fastsoap\": {\n \"source\": \"iana\"\n },\n \"application/fdt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fdt\"]\n },\n \"application/fhir+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fhir+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fido.trusted-apps+json\": {\n \"compressible\": true\n },\n \"application/fits\": {\n \"source\": \"iana\"\n },\n \"application/flexfec\": {\n \"source\": \"iana\"\n },\n \"application/font-sfnt\": {\n \"source\": \"iana\"\n },\n \"application/font-tdpfr\": {\n \"source\": \"iana\",\n \"extensions\": [\"pfr\"]\n },\n \"application/font-woff\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/framework-attributes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"geojson\"]\n },\n \"application/geo+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/geopackage+sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/geoxacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/gltf-buffer\": {\n \"source\": \"iana\"\n },\n \"application/gml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gml\"]\n },\n \"application/gpx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"gpx\"]\n },\n \"application/gxf\": {\n \"source\": \"apache\",\n \"extensions\": [\"gxf\"]\n },\n \"application/gzip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gz\"]\n },\n \"application/h224\": {\n \"source\": \"iana\"\n },\n \"application/held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/hjson\": {\n \"extensions\": [\"hjson\"]\n },\n \"application/http\": {\n \"source\": \"iana\"\n },\n \"application/hyperstudio\": {\n \"source\": \"iana\",\n \"extensions\": [\"stk\"]\n },\n \"application/ibe-key-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pkg-reply+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pp-data\": {\n \"source\": \"iana\"\n },\n \"application/iges\": {\n \"source\": \"iana\"\n },\n \"application/im-iscomposing+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/index\": {\n \"source\": \"iana\"\n },\n \"application/index.cmd\": {\n \"source\": \"iana\"\n },\n \"application/index.obj\": {\n \"source\": \"iana\"\n },\n \"application/index.response\": {\n \"source\": \"iana\"\n },\n \"application/index.vnd\": {\n \"source\": \"iana\"\n },\n \"application/inkml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ink\",\"inkml\"]\n },\n \"application/iotp\": {\n \"source\": \"iana\"\n },\n \"application/ipfix\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipfix\"]\n },\n \"application/ipp\": {\n \"source\": \"iana\"\n },\n \"application/isup\": {\n \"source\": \"iana\"\n },\n \"application/its+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"its\"]\n },\n \"application/java-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jar\",\"war\",\"ear\"]\n },\n \"application/java-serialized-object\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"ser\"]\n },\n \"application/java-vm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"class\"]\n },\n \"application/javascript\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"js\",\"mjs\"]\n },\n \"application/jf2feed+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jose\": {\n \"source\": \"iana\"\n },\n \"application/jose+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jrd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jscalendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"json\",\"map\"]\n },\n \"application/json-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json-seq\": {\n \"source\": \"iana\"\n },\n \"application/json5\": {\n \"extensions\": [\"json5\"]\n },\n \"application/jsonml+json\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"jsonml\"]\n },\n \"application/jwk+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwk-set+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwt\": {\n \"source\": \"iana\"\n },\n \"application/kpml-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/kpml-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ld+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"jsonld\"]\n },\n \"application/lgr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lgr\"]\n },\n \"application/link-format\": {\n \"source\": \"iana\"\n },\n \"application/load-control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lost+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lostxml\"]\n },\n \"application/lostsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lpf+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/lxf\": {\n \"source\": \"iana\"\n },\n \"application/mac-binhex40\": {\n \"source\": \"iana\",\n \"extensions\": [\"hqx\"]\n },\n \"application/mac-compactpro\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpt\"]\n },\n \"application/macwriteii\": {\n \"source\": \"iana\"\n },\n \"application/mads+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mads\"]\n },\n \"application/manifest+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"webmanifest\"]\n },\n \"application/marc\": {\n \"source\": \"iana\",\n \"extensions\": [\"mrc\"]\n },\n \"application/marcxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mrcx\"]\n },\n \"application/mathematica\": {\n \"source\": \"iana\",\n \"extensions\": [\"ma\",\"nb\",\"mb\"]\n },\n \"application/mathml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mathml\"]\n },\n \"application/mathml-content+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mathml-presentation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-associated-procedure-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-deregister+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-envelope+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-protection-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-reception-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-schedule+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-user-service-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbox\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbox\"]\n },\n \"application/media-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpf\"]\n },\n \"application/media_control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mediaservercontrol+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mscml\"]\n },\n \"application/merge-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/metalink+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"metalink\"]\n },\n \"application/metalink4+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"meta4\"]\n },\n \"application/mets+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mets\"]\n },\n \"application/mf4\": {\n \"source\": \"iana\"\n },\n \"application/mikey\": {\n \"source\": \"iana\"\n },\n \"application/mipc\": {\n \"source\": \"iana\"\n },\n \"application/missing-blocks+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/mmt-aei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"maei\"]\n },\n \"application/mmt-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musd\"]\n },\n \"application/mods+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mods\"]\n },\n \"application/moss-keys\": {\n \"source\": \"iana\"\n },\n \"application/moss-signature\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-data\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-request\": {\n \"source\": \"iana\"\n },\n \"application/mp21\": {\n \"source\": \"iana\",\n \"extensions\": [\"m21\",\"mp21\"]\n },\n \"application/mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"mp4s\",\"m4p\"]\n },\n \"application/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod-xmt\": {\n \"source\": \"iana\"\n },\n \"application/mrb-consumer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mrb-publish+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/msc-ivr+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msc-mixer+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msword\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"doc\",\"dot\"]\n },\n \"application/mud+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/multipart-core\": {\n \"source\": \"iana\"\n },\n \"application/mxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxf\"]\n },\n \"application/n-quads\": {\n \"source\": \"iana\",\n \"extensions\": [\"nq\"]\n },\n \"application/n-triples\": {\n \"source\": \"iana\",\n \"extensions\": [\"nt\"]\n },\n \"application/nasdata\": {\n \"source\": \"iana\"\n },\n \"application/news-checkgroups\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-groupinfo\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-transmission\": {\n \"source\": \"iana\"\n },\n \"application/nlsml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/node\": {\n \"source\": \"iana\",\n \"extensions\": [\"cjs\"]\n },\n \"application/nss\": {\n \"source\": \"iana\"\n },\n \"application/oauth-authz-req+jwt\": {\n \"source\": \"iana\"\n },\n \"application/oblivious-dns-message\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-request\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-response\": {\n \"source\": \"iana\"\n },\n \"application/octet-stream\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n },\n \"application/oda\": {\n \"source\": \"iana\",\n \"extensions\": [\"oda\"]\n },\n \"application/odm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/odx\": {\n \"source\": \"iana\"\n },\n \"application/oebps-package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"opf\"]\n },\n \"application/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogx\"]\n },\n \"application/omdoc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"omdoc\"]\n },\n \"application/onenote\": {\n \"source\": \"apache\",\n \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]\n },\n \"application/opc-nodeset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/oscore\": {\n \"source\": \"iana\"\n },\n \"application/oxps\": {\n \"source\": \"iana\",\n \"extensions\": [\"oxps\"]\n },\n \"application/p21\": {\n \"source\": \"iana\"\n },\n \"application/p21+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/p2p-overlay+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"relo\"]\n },\n \"application/parityfec\": {\n \"source\": \"iana\"\n },\n \"application/passport\": {\n \"source\": \"iana\"\n },\n \"application/patch-ops-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xer\"]\n },\n \"application/pdf\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pdf\"]\n },\n \"application/pdx\": {\n \"source\": \"iana\"\n },\n \"application/pem-certificate-chain\": {\n \"source\": \"iana\"\n },\n \"application/pgp-encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pgp\"]\n },\n \"application/pgp-keys\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\"]\n },\n \"application/pgp-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\",\"sig\"]\n },\n \"application/pics-rules\": {\n \"source\": \"apache\",\n \"extensions\": [\"prf\"]\n },\n \"application/pidf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pidf-diff+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pkcs10\": {\n \"source\": \"iana\",\n \"extensions\": [\"p10\"]\n },\n \"application/pkcs12\": {\n \"source\": \"iana\"\n },\n \"application/pkcs7-mime\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7m\",\"p7c\"]\n },\n \"application/pkcs7-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7s\"]\n },\n \"application/pkcs8\": {\n \"source\": \"iana\",\n \"extensions\": [\"p8\"]\n },\n \"application/pkcs8-encrypted\": {\n \"source\": \"iana\"\n },\n \"application/pkix-attr-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"ac\"]\n },\n \"application/pkix-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"cer\"]\n },\n \"application/pkix-crl\": {\n \"source\": \"iana\",\n \"extensions\": [\"crl\"]\n },\n \"application/pkix-pkipath\": {\n \"source\": \"iana\",\n \"extensions\": [\"pkipath\"]\n },\n \"application/pkixcmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"pki\"]\n },\n \"application/pls+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pls\"]\n },\n \"application/poc-settings+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/postscript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ai\",\"eps\",\"ps\"]\n },\n \"application/ppsp-tracker+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/provenance+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"provx\"]\n },\n \"application/prs.alvestrand.titrax-sheet\": {\n \"source\": \"iana\"\n },\n \"application/prs.cww\": {\n \"source\": \"iana\",\n \"extensions\": [\"cww\"]\n },\n \"application/prs.cyn\": {\n \"source\": \"iana\",\n \"charset\": \"7-BIT\"\n },\n \"application/prs.hpub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/prs.nprend\": {\n \"source\": \"iana\"\n },\n \"application/prs.plucker\": {\n \"source\": \"iana\"\n },\n \"application/prs.rdf-xml-crypt\": {\n \"source\": \"iana\"\n },\n \"application/prs.xsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/pskc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pskcxml\"]\n },\n \"application/pvd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/qsig\": {\n \"source\": \"iana\"\n },\n \"application/raml+yaml\": {\n \"compressible\": true,\n \"extensions\": [\"raml\"]\n },\n \"application/raptorfec\": {\n \"source\": \"iana\"\n },\n \"application/rdap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rdf\",\"owl\"]\n },\n \"application/reginfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rif\"]\n },\n \"application/relax-ng-compact-syntax\": {\n \"source\": \"iana\",\n \"extensions\": [\"rnc\"]\n },\n \"application/remote-printing\": {\n \"source\": \"iana\"\n },\n \"application/reputon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/resource-lists+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rl\"]\n },\n \"application/resource-lists-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rld\"]\n },\n \"application/rfc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/riscos\": {\n \"source\": \"iana\"\n },\n \"application/rlmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rls-services+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rs\"]\n },\n \"application/route-apd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rapd\"]\n },\n \"application/route-s-tsid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sls\"]\n },\n \"application/route-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rusd\"]\n },\n \"application/rpki-ghostbusters\": {\n \"source\": \"iana\",\n \"extensions\": [\"gbr\"]\n },\n \"application/rpki-manifest\": {\n \"source\": \"iana\",\n \"extensions\": [\"mft\"]\n },\n \"application/rpki-publication\": {\n \"source\": \"iana\"\n },\n \"application/rpki-roa\": {\n \"source\": \"iana\",\n \"extensions\": [\"roa\"]\n },\n \"application/rpki-updown\": {\n \"source\": \"iana\"\n },\n \"application/rsd+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rsd\"]\n },\n \"application/rss+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rss\"]\n },\n \"application/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"application/rtploopback\": {\n \"source\": \"iana\"\n },\n \"application/rtx\": {\n \"source\": \"iana\"\n },\n \"application/samlassertion+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/samlmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif-external-properties+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sbe\": {\n \"source\": \"iana\"\n },\n \"application/sbml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sbml\"]\n },\n \"application/scaip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scim+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scvp-cv-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"scq\"]\n },\n \"application/scvp-cv-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"scs\"]\n },\n \"application/scvp-vp-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"spq\"]\n },\n \"application/scvp-vp-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"spp\"]\n },\n \"application/sdp\": {\n \"source\": \"iana\",\n \"extensions\": [\"sdp\"]\n },\n \"application/secevent+jwt\": {\n \"source\": \"iana\"\n },\n \"application/senml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"senmlx\"]\n },\n \"application/senml-etch+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml-etch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sensml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/sensml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sensml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sensmlx\"]\n },\n \"application/sensml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sep+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sep-exi\": {\n \"source\": \"iana\"\n },\n \"application/session-info\": {\n \"source\": \"iana\"\n },\n \"application/set-payment\": {\n \"source\": \"iana\"\n },\n \"application/set-payment-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setpay\"]\n },\n \"application/set-registration\": {\n \"source\": \"iana\"\n },\n \"application/set-registration-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setreg\"]\n },\n \"application/sgml\": {\n \"source\": \"iana\"\n },\n \"application/sgml-open-catalog\": {\n \"source\": \"iana\"\n },\n \"application/shf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"shf\"]\n },\n \"application/sieve\": {\n \"source\": \"iana\",\n \"extensions\": [\"siv\",\"sieve\"]\n },\n \"application/simple-filter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/simple-message-summary\": {\n \"source\": \"iana\"\n },\n \"application/simplesymbolcontainer\": {\n \"source\": \"iana\"\n },\n \"application/sipc\": {\n \"source\": \"iana\"\n },\n \"application/slate\": {\n \"source\": \"iana\"\n },\n \"application/smil\": {\n \"source\": \"iana\"\n },\n \"application/smil+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"smi\",\"smil\"]\n },\n \"application/smpte336m\": {\n \"source\": \"iana\"\n },\n \"application/soap+fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/soap+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sparql-query\": {\n \"source\": \"iana\",\n \"extensions\": [\"rq\"]\n },\n \"application/sparql-results+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"srx\"]\n },\n \"application/spdx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/spirits-event+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sql\": {\n \"source\": \"iana\"\n },\n \"application/srgs\": {\n \"source\": \"iana\",\n \"extensions\": [\"gram\"]\n },\n \"application/srgs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"grxml\"]\n },\n \"application/sru+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sru\"]\n },\n \"application/ssdl+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ssdl\"]\n },\n \"application/ssml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ssml\"]\n },\n \"application/stix+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/swid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"swidtag\"]\n },\n \"application/tamp-apex-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-apex-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-error\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-query\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-response\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tar\": {\n \"compressible\": true\n },\n \"application/taxii+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/td+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tei\",\"teicorpus\"]\n },\n \"application/tetra_isi\": {\n \"source\": \"iana\"\n },\n \"application/thraud+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tfi\"]\n },\n \"application/timestamp-query\": {\n \"source\": \"iana\"\n },\n \"application/timestamp-reply\": {\n \"source\": \"iana\"\n },\n \"application/timestamped-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"tsd\"]\n },\n \"application/tlsrpt+gzip\": {\n \"source\": \"iana\"\n },\n \"application/tlsrpt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tnauthlist\": {\n \"source\": \"iana\"\n },\n \"application/token-introspection+jwt\": {\n \"source\": \"iana\"\n },\n \"application/toml\": {\n \"compressible\": true,\n \"extensions\": [\"toml\"]\n },\n \"application/trickle-ice-sdpfrag\": {\n \"source\": \"iana\"\n },\n \"application/trig\": {\n \"source\": \"iana\",\n \"extensions\": [\"trig\"]\n },\n \"application/ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttml\"]\n },\n \"application/tve-trigger\": {\n \"source\": \"iana\"\n },\n \"application/tzif\": {\n \"source\": \"iana\"\n },\n \"application/tzif-leap\": {\n \"source\": \"iana\"\n },\n \"application/ubjson\": {\n \"compressible\": false,\n \"extensions\": [\"ubj\"]\n },\n \"application/ulpfec\": {\n \"source\": \"iana\"\n },\n \"application/urc-grpsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/urc-ressheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsheet\"]\n },\n \"application/urc-targetdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"td\"]\n },\n \"application/urc-uisocketdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vemmi\": {\n \"source\": \"iana\"\n },\n \"application/vividence.scriptfile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.1000minds.decision-model+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"1km\"]\n },\n \"application/vnd.3gpp-prose+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3ch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-v2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gnas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.access-transfer-events+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.bsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gmop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gtpc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.interworking-data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.lpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mc-signalling-ear\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-payload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-signalling\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-signed+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mid-call+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ngap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pfcp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pic-bw-large\": {\n \"source\": \"iana\",\n \"extensions\": [\"plb\"]\n },\n \"application/vnd.3gpp.pic-bw-small\": {\n \"source\": \"iana\",\n \"extensions\": [\"psb\"]\n },\n \"application/vnd.3gpp.pic-bw-var\": {\n \"source\": \"iana\",\n \"extensions\": [\"pvb\"]\n },\n \"application/vnd.3gpp.s1ap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-ext+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.state-and-event-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ussd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp2.tcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tcap\"]\n },\n \"application/vnd.3lightssoftware.imagescal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3m.post-it-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"pwn\"]\n },\n \"application/vnd.accpac.simply.aso\": {\n \"source\": \"iana\",\n \"extensions\": [\"aso\"]\n },\n \"application/vnd.accpac.simply.imp\": {\n \"source\": \"iana\",\n \"extensions\": [\"imp\"]\n },\n \"application/vnd.acucobol\": {\n \"source\": \"iana\",\n \"extensions\": [\"acu\"]\n },\n \"application/vnd.acucorp\": {\n \"source\": \"iana\",\n \"extensions\": [\"atc\",\"acutc\"]\n },\n \"application/vnd.adobe.air-application-installer-package+zip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"air\"]\n },\n \"application/vnd.adobe.flash.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.formscentral.fcdt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcdt\"]\n },\n \"application/vnd.adobe.fxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fxp\",\"fxpl\"]\n },\n \"application/vnd.adobe.partial-upload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.xdp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdp\"]\n },\n \"application/vnd.adobe.xfdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdf\"]\n },\n \"application/vnd.aether.imp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata-pagedef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.cmoca-cmresource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-charset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codedfont\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codepage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-cmtable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-formdef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-mediummap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-objectcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-overlay\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-pagesegment\": {\n \"source\": \"iana\"\n },\n \"application/vnd.age\": {\n \"source\": \"iana\",\n \"extensions\": [\"age\"]\n },\n \"application/vnd.ah-barcode\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ahead.space\": {\n \"source\": \"iana\",\n \"extensions\": [\"ahead\"]\n },\n \"application/vnd.airzip.filesecure.azf\": {\n \"source\": \"iana\",\n \"extensions\": [\"azf\"]\n },\n \"application/vnd.airzip.filesecure.azs\": {\n \"source\": \"iana\",\n \"extensions\": [\"azs\"]\n },\n \"application/vnd.amadeus+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.amazon.ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"azw\"]\n },\n \"application/vnd.amazon.mobi8-ebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.americandynamics.acc\": {\n \"source\": \"iana\",\n \"extensions\": [\"acc\"]\n },\n \"application/vnd.amiga.ami\": {\n \"source\": \"iana\",\n \"extensions\": [\"ami\"]\n },\n \"application/vnd.amundsen.maze+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.android.ota\": {\n \"source\": \"iana\"\n },\n \"application/vnd.android.package-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"apk\"]\n },\n \"application/vnd.anki\": {\n \"source\": \"iana\"\n },\n \"application/vnd.anser-web-certificate-issue-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"cii\"]\n },\n \"application/vnd.anser-web-funds-transfer-initiation\": {\n \"source\": \"apache\",\n \"extensions\": [\"fti\"]\n },\n \"application/vnd.antix.game-component\": {\n \"source\": \"iana\",\n \"extensions\": [\"atx\"]\n },\n \"application/vnd.apache.arrow.file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.arrow.stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.compact\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.json\": {\n \"source\": \"iana\"\n },\n \"application/vnd.api+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.aplextor.warrp+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apothekende.reservation+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apple.installer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpkg\"]\n },\n \"application/vnd.apple.keynote\": {\n \"source\": \"iana\",\n \"extensions\": [\"key\"]\n },\n \"application/vnd.apple.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"m3u8\"]\n },\n \"application/vnd.apple.numbers\": {\n \"source\": \"iana\",\n \"extensions\": [\"numbers\"]\n },\n \"application/vnd.apple.pages\": {\n \"source\": \"iana\",\n \"extensions\": [\"pages\"]\n },\n \"application/vnd.apple.pkpass\": {\n \"compressible\": false,\n \"extensions\": [\"pkpass\"]\n },\n \"application/vnd.arastra.swi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.aristanetworks.swi\": {\n \"source\": \"iana\",\n \"extensions\": [\"swi\"]\n },\n \"application/vnd.artisan+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.artsquare\": {\n \"source\": \"iana\"\n },\n \"application/vnd.astraea-software.iota\": {\n \"source\": \"iana\",\n \"extensions\": [\"iota\"]\n },\n \"application/vnd.audiograph\": {\n \"source\": \"iana\",\n \"extensions\": [\"aep\"]\n },\n \"application/vnd.autopackage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.avalon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.avistar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.balsamiq.bmml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmml\"]\n },\n \"application/vnd.balsamiq.bmpr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.banana-accounting\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.error\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bekitzur-stech+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bint.med-content\": {\n \"source\": \"iana\"\n },\n \"application/vnd.biopax.rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.blink-idb-value-wrapper\": {\n \"source\": \"iana\"\n },\n \"application/vnd.blueice.multipass\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpm\"]\n },\n \"application/vnd.bluetooth.ep.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bluetooth.le.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bmi\": {\n \"source\": \"iana\",\n \"extensions\": [\"bmi\"]\n },\n \"application/vnd.bpf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bpf3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.businessobjects\": {\n \"source\": \"iana\",\n \"extensions\": [\"rep\"]\n },\n \"application/vnd.byu.uapi+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cab-jscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-cpdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-lips\": {\n \"source\": \"iana\"\n },\n \"application/vnd.capasystems-pg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cendio.thinlinc.clientconf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.century-systems.tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chemdraw+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdxml\"]\n },\n \"application/vnd.chess-pgn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chipnuts.karaoke-mmd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmd\"]\n },\n \"application/vnd.ciedi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cinderella\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdy\"]\n },\n \"application/vnd.cirpack.isdn-ext\": {\n \"source\": \"iana\"\n },\n \"application/vnd.citationstyles.style+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csl\"]\n },\n \"application/vnd.claymore\": {\n \"source\": \"iana\",\n \"extensions\": [\"cla\"]\n },\n \"application/vnd.cloanto.rp9\": {\n \"source\": \"iana\",\n \"extensions\": [\"rp9\"]\n },\n \"application/vnd.clonk.c4group\": {\n \"source\": \"iana\",\n \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n },\n \"application/vnd.cluetrust.cartomobile-config\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amc\"]\n },\n \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amz\"]\n },\n \"application/vnd.coffeescript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collection+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.doc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.next+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.comicbook+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.comicbook-rar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commerce-battelle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commonspace\": {\n \"source\": \"iana\",\n \"extensions\": [\"csp\"]\n },\n \"application/vnd.contact.cmsg\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdbcmsg\"]\n },\n \"application/vnd.coreos.ignition+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cosmocaller\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmc\"]\n },\n \"application/vnd.crick.clicker\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkx\"]\n },\n \"application/vnd.crick.clicker.keyboard\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkk\"]\n },\n \"application/vnd.crick.clicker.palette\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkp\"]\n },\n \"application/vnd.crick.clicker.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkt\"]\n },\n \"application/vnd.crick.clicker.wordbank\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkw\"]\n },\n \"application/vnd.criticaltools.wbs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wbs\"]\n },\n \"application/vnd.cryptii.pipe+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.crypto-shade-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.vault\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ctc-posml\": {\n \"source\": \"iana\",\n \"extensions\": [\"pml\"]\n },\n \"application/vnd.ctct.ws+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cups-pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-postscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-ppd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppd\"]\n },\n \"application/vnd.cups-raster\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-raw\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl.car\": {\n \"source\": \"apache\",\n \"extensions\": [\"car\"]\n },\n \"application/vnd.curl.pcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcurl\"]\n },\n \"application/vnd.cyan.dean.root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cybank\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cyclonedx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cyclonedx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.d2l.coursepackage1p0+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.d3m-dataset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.d3m-problem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dart\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dart\"]\n },\n \"application/vnd.data-vision.rdz\": {\n \"source\": \"iana\",\n \"extensions\": [\"rdz\"]\n },\n \"application/vnd.datapackage+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dataresource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dbf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dbf\"]\n },\n \"application/vnd.debian.binary-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dece.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n },\n \"application/vnd.dece.ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uvt\",\"uvvt\"]\n },\n \"application/vnd.dece.unspecified\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvx\",\"uvvx\"]\n },\n \"application/vnd.dece.zip\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvz\",\"uvvz\"]\n },\n \"application/vnd.denovo.fcselayout-link\": {\n \"source\": \"iana\",\n \"extensions\": [\"fe_launch\"]\n },\n \"application/vnd.desmume.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dm.delegation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dna\": {\n \"source\": \"iana\",\n \"extensions\": [\"dna\"]\n },\n \"application/vnd.document+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dolby.mlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"mlp\"]\n },\n \"application/vnd.dolby.mobile.1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dolby.mobile.2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.doremir.scorecloud-binary-document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dpgraph\": {\n \"source\": \"iana\",\n \"extensions\": [\"dpg\"]\n },\n \"application/vnd.dreamfactory\": {\n \"source\": \"iana\",\n \"extensions\": [\"dfac\"]\n },\n \"application/vnd.drive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ds-keypoint\": {\n \"source\": \"apache\",\n \"extensions\": [\"kpxx\"]\n },\n \"application/vnd.dtg.local\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.flash\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ait\": {\n \"source\": \"iana\",\n \"extensions\": [\"ait\"]\n },\n \"application/vnd.dvb.dvbisl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.dvbj\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.esgcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcdftnotifaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgpdd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcroaming\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-base\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-enhancement\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.notif-aggregate-root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-container+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-generic+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-msglist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-init+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.pfr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.service\": {\n \"source\": \"iana\",\n \"extensions\": [\"svc\"]\n },\n \"application/vnd.dxr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dynageo\": {\n \"source\": \"iana\",\n \"extensions\": [\"geo\"]\n },\n \"application/vnd.dzr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.easykaraoke.cdgdownload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecdis-update\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecip.rlp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eclipse.ditto+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ecowin.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"mag\"]\n },\n \"application/vnd.ecowin.filerequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.fileupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.series\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesrequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.img\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.iso\": {\n \"source\": \"iana\"\n },\n \"application/vnd.emclient.accessrequest+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.enliven\": {\n \"source\": \"iana\",\n \"extensions\": [\"nml\"]\n },\n \"application/vnd.enphase.envoy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eprints.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.epson.esf\": {\n \"source\": \"iana\",\n \"extensions\": [\"esf\"]\n },\n \"application/vnd.epson.msf\": {\n \"source\": \"iana\",\n \"extensions\": [\"msf\"]\n },\n \"application/vnd.epson.quickanime\": {\n \"source\": \"iana\",\n \"extensions\": [\"qam\"]\n },\n \"application/vnd.epson.salt\": {\n \"source\": \"iana\",\n \"extensions\": [\"slt\"]\n },\n \"application/vnd.epson.ssf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ssf\"]\n },\n \"application/vnd.ericsson.quickcall\": {\n \"source\": \"iana\"\n },\n \"application/vnd.espass-espass+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.eszigno3+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es3\",\"et3\"]\n },\n \"application/vnd.etsi.aoc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.asic-e+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.asic-s+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.cug+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvcommand+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-bc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-cod+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-npvr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvservice+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mcid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mheg5\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.pstn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.sci+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.simservs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.timestamp-token\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.tsl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.tsl.der\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eu.kasparian.car+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.eudora.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.profile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.settings\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.theme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.exstream-empower+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.exstream-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ezpix-album\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez2\"]\n },\n \"application/vnd.ezpix-package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez3\"]\n },\n \"application/vnd.f-secure.mobile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.familysearch.gedcom+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.fastcopy-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"fdf\"]\n },\n \"application/vnd.fdsn.mseed\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseed\"]\n },\n \"application/vnd.fdsn.seed\": {\n \"source\": \"iana\",\n \"extensions\": [\"seed\",\"dataless\"]\n },\n \"application/vnd.ffsns\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ficlab.flb+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.filmit.zfc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fints\": {\n \"source\": \"iana\"\n },\n \"application/vnd.firemonkeys.cloudcell\": {\n \"source\": \"iana\"\n },\n \"application/vnd.flographit\": {\n \"source\": \"iana\",\n \"extensions\": [\"gph\"]\n },\n \"application/vnd.fluxtime.clip\": {\n \"source\": \"iana\",\n \"extensions\": [\"ftc\"]\n },\n \"application/vnd.font-fontforge-sfd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.framemaker\": {\n \"source\": \"iana\",\n \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n },\n \"application/vnd.frogans.fnc\": {\n \"source\": \"iana\",\n \"extensions\": [\"fnc\"]\n },\n \"application/vnd.frogans.ltf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ltf\"]\n },\n \"application/vnd.fsc.weblaunch\": {\n \"source\": \"iana\",\n \"extensions\": [\"fsc\"]\n },\n \"application/vnd.fujifilm.fb.docuworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.binder\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.jfi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fujitsu.oasys\": {\n \"source\": \"iana\",\n \"extensions\": [\"oas\"]\n },\n \"application/vnd.fujitsu.oasys2\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa2\"]\n },\n \"application/vnd.fujitsu.oasys3\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa3\"]\n },\n \"application/vnd.fujitsu.oasysgp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fg5\"]\n },\n \"application/vnd.fujitsu.oasysprs\": {\n \"source\": \"iana\",\n \"extensions\": [\"bh2\"]\n },\n \"application/vnd.fujixerox.art-ex\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.art4\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.ddd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ddd\"]\n },\n \"application/vnd.fujixerox.docuworks\": {\n \"source\": \"iana\",\n \"extensions\": [\"xdw\"]\n },\n \"application/vnd.fujixerox.docuworks.binder\": {\n \"source\": \"iana\",\n \"extensions\": [\"xbd\"]\n },\n \"application/vnd.fujixerox.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.hbpl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fut-misnet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fuzzysheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fzs\"]\n },\n \"application/vnd.genomatix.tuxedo\": {\n \"source\": \"iana\",\n \"extensions\": [\"txd\"]\n },\n \"application/vnd.gentics.grd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geocube+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geogebra.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggb\"]\n },\n \"application/vnd.geogebra.slides\": {\n \"source\": \"iana\"\n },\n \"application/vnd.geogebra.tool\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggt\"]\n },\n \"application/vnd.geometry-explorer\": {\n \"source\": \"iana\",\n \"extensions\": [\"gex\",\"gre\"]\n },\n \"application/vnd.geonext\": {\n \"source\": \"iana\",\n \"extensions\": [\"gxt\"]\n },\n \"application/vnd.geoplan\": {\n \"source\": \"iana\",\n \"extensions\": [\"g2w\"]\n },\n \"application/vnd.geospace\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3w\"]\n },\n \"application/vnd.gerber\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gmx\": {\n \"source\": \"iana\",\n \"extensions\": [\"gmx\"]\n },\n \"application/vnd.google-apps.document\": {\n \"compressible\": false,\n \"extensions\": [\"gdoc\"]\n },\n \"application/vnd.google-apps.presentation\": {\n \"compressible\": false,\n \"extensions\": [\"gslides\"]\n },\n \"application/vnd.google-apps.spreadsheet\": {\n \"compressible\": false,\n \"extensions\": [\"gsheet\"]\n },\n \"application/vnd.google-earth.kml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"kml\"]\n },\n \"application/vnd.google-earth.kmz\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"kmz\"]\n },\n \"application/vnd.gov.sk.e-form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gov.sk.e-form+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.grafeq\": {\n \"source\": \"iana\",\n \"extensions\": [\"gqf\",\"gqs\"]\n },\n \"application/vnd.gridmp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.groove-account\": {\n \"source\": \"iana\",\n \"extensions\": [\"gac\"]\n },\n \"application/vnd.groove-help\": {\n \"source\": \"iana\",\n \"extensions\": [\"ghf\"]\n },\n \"application/vnd.groove-identity-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gim\"]\n },\n \"application/vnd.groove-injector\": {\n \"source\": \"iana\",\n \"extensions\": [\"grv\"]\n },\n \"application/vnd.groove-tool-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtm\"]\n },\n \"application/vnd.groove-tool-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpl\"]\n },\n \"application/vnd.groove-vcard\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcg\"]\n },\n \"application/vnd.hal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"hal\"]\n },\n \"application/vnd.handheld-entertainment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zmm\"]\n },\n \"application/vnd.hbci\": {\n \"source\": \"iana\",\n \"extensions\": [\"hbci\"]\n },\n \"application/vnd.hc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hcl-bireports\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hdt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.heroku+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hhe.lesson-player\": {\n \"source\": \"iana\",\n \"extensions\": [\"les\"]\n },\n \"application/vnd.hl7cda+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hl7v2+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hp-hpgl\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpgl\"]\n },\n \"application/vnd.hp-hpid\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpid\"]\n },\n \"application/vnd.hp-hps\": {\n \"source\": \"iana\",\n \"extensions\": [\"hps\"]\n },\n \"application/vnd.hp-jlyt\": {\n \"source\": \"iana\",\n \"extensions\": [\"jlt\"]\n },\n \"application/vnd.hp-pcl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcl\"]\n },\n \"application/vnd.hp-pclxl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pclxl\"]\n },\n \"application/vnd.httphone\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hydrostatix.sof-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfd-hdstx\"]\n },\n \"application/vnd.hyper+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyper-item+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyperdrive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hzn-3d-crossword\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.electronic-media\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.minipay\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpy\"]\n },\n \"application/vnd.ibm.modcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n },\n \"application/vnd.ibm.rights-management\": {\n \"source\": \"iana\",\n \"extensions\": [\"irm\"]\n },\n \"application/vnd.ibm.secure-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"sc\"]\n },\n \"application/vnd.iccprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"icc\",\"icm\"]\n },\n \"application/vnd.ieee.1905\": {\n \"source\": \"iana\"\n },\n \"application/vnd.igloader\": {\n \"source\": \"iana\",\n \"extensions\": [\"igl\"]\n },\n \"application/vnd.imagemeter.folder+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.imagemeter.image+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.immervision-ivp\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivp\"]\n },\n \"application/vnd.immervision-ivu\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivu\"]\n },\n \"application/vnd.ims.imsccv1p1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.lis.v2.result+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informedcontrol.rms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informix-visionary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.innopath.wamp.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.insors.igm\": {\n \"source\": \"iana\",\n \"extensions\": [\"igm\"]\n },\n \"application/vnd.intercon.formnet\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpw\",\"xpx\"]\n },\n \"application/vnd.intergeo\": {\n \"source\": \"iana\",\n \"extensions\": [\"i2g\"]\n },\n \"application/vnd.intertrust.digibox\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intertrust.nncp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intu.qbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"qbo\"]\n },\n \"application/vnd.intu.qfx\": {\n \"source\": \"iana\",\n \"extensions\": [\"qfx\"]\n },\n \"application/vnd.iptc.g2.catalogitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.conceptitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.packageitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.planningitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ipunplugged.rcprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"rcprofile\"]\n },\n \"application/vnd.irepository.package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"irp\"]\n },\n \"application/vnd.is-xpr\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpr\"]\n },\n \"application/vnd.isac.fcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcs\"]\n },\n \"application/vnd.iso11783-10+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.jam\": {\n \"source\": \"iana\",\n \"extensions\": [\"jam\"]\n },\n \"application/vnd.japannet-directory-service\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-jpnstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-payment-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-setstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.jcp.javame.midlet-rms\": {\n \"source\": \"iana\",\n \"extensions\": [\"rms\"]\n },\n \"application/vnd.jisp\": {\n \"source\": \"iana\",\n \"extensions\": [\"jisp\"]\n },\n \"application/vnd.joost.joda-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"joda\"]\n },\n \"application/vnd.jsk.isdn-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kahootz\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktz\",\"ktr\"]\n },\n \"application/vnd.kde.karbon\": {\n \"source\": \"iana\",\n \"extensions\": [\"karbon\"]\n },\n \"application/vnd.kde.kchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"chrt\"]\n },\n \"application/vnd.kde.kformula\": {\n \"source\": \"iana\",\n \"extensions\": [\"kfo\"]\n },\n \"application/vnd.kde.kivio\": {\n \"source\": \"iana\",\n \"extensions\": [\"flw\"]\n },\n \"application/vnd.kde.kontour\": {\n \"source\": \"iana\",\n \"extensions\": [\"kon\"]\n },\n \"application/vnd.kde.kpresenter\": {\n \"source\": \"iana\",\n \"extensions\": [\"kpr\",\"kpt\"]\n },\n \"application/vnd.kde.kspread\": {\n \"source\": \"iana\",\n \"extensions\": [\"ksp\"]\n },\n \"application/vnd.kde.kword\": {\n \"source\": \"iana\",\n \"extensions\": [\"kwd\",\"kwt\"]\n },\n \"application/vnd.kenameaapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"htke\"]\n },\n \"application/vnd.kidspiration\": {\n \"source\": \"iana\",\n \"extensions\": [\"kia\"]\n },\n \"application/vnd.kinar\": {\n \"source\": \"iana\",\n \"extensions\": [\"kne\",\"knp\"]\n },\n \"application/vnd.koan\": {\n \"source\": \"iana\",\n \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n },\n \"application/vnd.kodak-descriptor\": {\n \"source\": \"iana\",\n \"extensions\": [\"sse\"]\n },\n \"application/vnd.las\": {\n \"source\": \"iana\"\n },\n \"application/vnd.las.las+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.las.las+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lasxml\"]\n },\n \"application/vnd.laszip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.leap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.liberty-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.llamagraphics.life-balance.desktop\": {\n \"source\": \"iana\",\n \"extensions\": [\"lbd\"]\n },\n \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lbe\"]\n },\n \"application/vnd.logipipe.circuit+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.loom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.lotus-1-2-3\": {\n \"source\": \"iana\",\n \"extensions\": [\"123\"]\n },\n \"application/vnd.lotus-approach\": {\n \"source\": \"iana\",\n \"extensions\": [\"apr\"]\n },\n \"application/vnd.lotus-freelance\": {\n \"source\": \"iana\",\n \"extensions\": [\"pre\"]\n },\n \"application/vnd.lotus-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"nsf\"]\n },\n \"application/vnd.lotus-organizer\": {\n \"source\": \"iana\",\n \"extensions\": [\"org\"]\n },\n \"application/vnd.lotus-screencam\": {\n \"source\": \"iana\",\n \"extensions\": [\"scm\"]\n },\n \"application/vnd.lotus-wordpro\": {\n \"source\": \"iana\",\n \"extensions\": [\"lwp\"]\n },\n \"application/vnd.macports.portpkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"portpkg\"]\n },\n \"application/vnd.mapbox-vector-tile\": {\n \"source\": \"iana\",\n \"extensions\": [\"mvt\"]\n },\n \"application/vnd.marlin.drm.actiontoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.conftoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.license+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.mdcf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mason+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.maxar.archive.3tz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.maxmind.maxmind-db\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mcd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mcd\"]\n },\n \"application/vnd.medcalcdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"mc1\"]\n },\n \"application/vnd.mediastation.cdkey\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdkey\"]\n },\n \"application/vnd.meridian-slingshot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mfer\": {\n \"source\": \"iana\",\n \"extensions\": [\"mwf\"]\n },\n \"application/vnd.mfmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"mfm\"]\n },\n \"application/vnd.micro+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.micrografx.flo\": {\n \"source\": \"iana\",\n \"extensions\": [\"flo\"]\n },\n \"application/vnd.micrografx.igx\": {\n \"source\": \"iana\",\n \"extensions\": [\"igx\"]\n },\n \"application/vnd.microsoft.portable-executable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.microsoft.windows.thumbnail-cache\": {\n \"source\": \"iana\"\n },\n \"application/vnd.miele+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.mif\": {\n \"source\": \"iana\",\n \"extensions\": [\"mif\"]\n },\n \"application/vnd.minisoft-hp3000-save\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mobius.daf\": {\n \"source\": \"iana\",\n \"extensions\": [\"daf\"]\n },\n \"application/vnd.mobius.dis\": {\n \"source\": \"iana\",\n \"extensions\": [\"dis\"]\n },\n \"application/vnd.mobius.mbk\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbk\"]\n },\n \"application/vnd.mobius.mqy\": {\n \"source\": \"iana\",\n \"extensions\": [\"mqy\"]\n },\n \"application/vnd.mobius.msl\": {\n \"source\": \"iana\",\n \"extensions\": [\"msl\"]\n },\n \"application/vnd.mobius.plc\": {\n \"source\": \"iana\",\n \"extensions\": [\"plc\"]\n },\n \"application/vnd.mobius.txf\": {\n \"source\": \"iana\",\n \"extensions\": [\"txf\"]\n },\n \"application/vnd.mophun.application\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpn\"]\n },\n \"application/vnd.mophun.certificate\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpc\"]\n },\n \"application/vnd.motorola.flexsuite\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.adsi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.fis\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.gotap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.kmr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.ttc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.wem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.iprm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mozilla.xul+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xul\"]\n },\n \"application/vnd.ms-3mfdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-artgalry\": {\n \"source\": \"iana\",\n \"extensions\": [\"cil\"]\n },\n \"application/vnd.ms-asf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-cab-compressed\": {\n \"source\": \"iana\",\n \"extensions\": [\"cab\"]\n },\n \"application/vnd.ms-color.iccprofile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-excel\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n },\n \"application/vnd.ms-excel.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlam\"]\n },\n \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsb\"]\n },\n \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsm\"]\n },\n \"application/vnd.ms-excel.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltm\"]\n },\n \"application/vnd.ms-fontobject\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eot\"]\n },\n \"application/vnd.ms-htmlhelp\": {\n \"source\": \"iana\",\n \"extensions\": [\"chm\"]\n },\n \"application/vnd.ms-ims\": {\n \"source\": \"iana\",\n \"extensions\": [\"ims\"]\n },\n \"application/vnd.ms-lrm\": {\n \"source\": \"iana\",\n \"extensions\": [\"lrm\"]\n },\n \"application/vnd.ms-office.activex+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-officetheme\": {\n \"source\": \"iana\",\n \"extensions\": [\"thmx\"]\n },\n \"application/vnd.ms-opentype\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-outlook\": {\n \"compressible\": false,\n \"extensions\": [\"msg\"]\n },\n \"application/vnd.ms-package.obfuscated-opentype\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-pki.seccat\": {\n \"source\": \"apache\",\n \"extensions\": [\"cat\"]\n },\n \"application/vnd.ms-pki.stl\": {\n \"source\": \"apache\",\n \"extensions\": [\"stl\"]\n },\n \"application/vnd.ms-playready.initiator+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-powerpoint\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n },\n \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppam\"]\n },\n \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"pptm\"]\n },\n \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldm\"]\n },\n \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsm\"]\n },\n \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"potm\"]\n },\n \"application/vnd.ms-printdevicecapabilities+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-printing.printticket+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-printschematicket+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-project\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpp\",\"mpt\"]\n },\n \"application/vnd.ms-tnef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.nwprinting.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.printerpairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.wsd.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-word.document.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"docm\"]\n },\n \"application/vnd.ms-word.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotm\"]\n },\n \"application/vnd.ms-works\": {\n \"source\": \"iana\",\n \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n },\n \"application/vnd.ms-wpl\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpl\"]\n },\n \"application/vnd.ms-xpsdocument\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xps\"]\n },\n \"application/vnd.msa-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mseq\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseq\"]\n },\n \"application/vnd.msign\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator.cif\": {\n \"source\": \"iana\"\n },\n \"application/vnd.music-niff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.musician\": {\n \"source\": \"iana\",\n \"extensions\": [\"mus\"]\n },\n \"application/vnd.muvee.style\": {\n \"source\": \"iana\",\n \"extensions\": [\"msty\"]\n },\n \"application/vnd.mynfc\": {\n \"source\": \"iana\",\n \"extensions\": [\"taglet\"]\n },\n \"application/vnd.nacamar.ybrid+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ncd.control\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ncd.reference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nearst.inv+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nebumind.line\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nervana\": {\n \"source\": \"iana\"\n },\n \"application/vnd.netfpx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.neurolanguage.nlu\": {\n \"source\": \"iana\",\n \"extensions\": [\"nlu\"]\n },\n \"application/vnd.nimn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.nitro.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.snes.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nitf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ntf\",\"nitf\"]\n },\n \"application/vnd.noblenet-directory\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnd\"]\n },\n \"application/vnd.noblenet-sealer\": {\n \"source\": \"iana\",\n \"extensions\": [\"nns\"]\n },\n \"application/vnd.noblenet-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnw\"]\n },\n \"application/vnd.nokia.catalogs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.iptv.config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.isds-radio-presets\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.landmarkcollection+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.n-gage.ac+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ac\"]\n },\n \"application/vnd.nokia.n-gage.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"ngdat\"]\n },\n \"application/vnd.nokia.n-gage.symbian.install\": {\n \"source\": \"iana\",\n \"extensions\": [\"n-gage\"]\n },\n \"application/vnd.nokia.ncd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.radio-preset\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpst\"]\n },\n \"application/vnd.nokia.radio-presets\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpss\"]\n },\n \"application/vnd.novadigm.edm\": {\n \"source\": \"iana\",\n \"extensions\": [\"edm\"]\n },\n \"application/vnd.novadigm.edx\": {\n \"source\": \"iana\",\n \"extensions\": [\"edx\"]\n },\n \"application/vnd.novadigm.ext\": {\n \"source\": \"iana\",\n \"extensions\": [\"ext\"]\n },\n \"application/vnd.ntt-local.content-share\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.file-transfer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.ogw_remote-access\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_remote\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"odc\"]\n },\n \"application/vnd.oasis.opendocument.chart-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otc\"]\n },\n \"application/vnd.oasis.opendocument.database\": {\n \"source\": \"iana\",\n \"extensions\": [\"odb\"]\n },\n \"application/vnd.oasis.opendocument.formula\": {\n \"source\": \"iana\",\n \"extensions\": [\"odf\"]\n },\n \"application/vnd.oasis.opendocument.formula-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"odft\"]\n },\n \"application/vnd.oasis.opendocument.graphics\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odg\"]\n },\n \"application/vnd.oasis.opendocument.graphics-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otg\"]\n },\n \"application/vnd.oasis.opendocument.image\": {\n \"source\": \"iana\",\n \"extensions\": [\"odi\"]\n },\n \"application/vnd.oasis.opendocument.image-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"oti\"]\n },\n \"application/vnd.oasis.opendocument.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odp\"]\n },\n \"application/vnd.oasis.opendocument.presentation-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otp\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ods\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ots\"]\n },\n \"application/vnd.oasis.opendocument.text\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odt\"]\n },\n \"application/vnd.oasis.opendocument.text-master\": {\n \"source\": \"iana\",\n \"extensions\": [\"odm\"]\n },\n \"application/vnd.oasis.opendocument.text-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ott\"]\n },\n \"application/vnd.oasis.opendocument.text-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"oth\"]\n },\n \"application/vnd.obn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ocf+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oci.image.manifest.v1+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oftn.l10n+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessdownload+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessstreaming+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.cspg-hexbinary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.dae.svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.dae.xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.pae.gem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.spdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.spdlist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.ueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.userprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.olpc-sugar\": {\n \"source\": \"iana\",\n \"extensions\": [\"xo\"]\n },\n \"application/vnd.oma-scws-config\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-request\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.drm-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.imd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.ltkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.notification+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.provisioningtrigger\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgboot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgdd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sgdu\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.simple-symbol-container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sprov+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.stkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.cab-address-book+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-feature-handler+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-pcc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-subs-invite+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-user-prefs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.dcd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dcdc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dd2+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dd2\"]\n },\n \"application/vnd.oma.drm.risd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.group-usage-list+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.lwm2m+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+tlv\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.pal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.final-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.groups+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.push\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.scidm.messages+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.xcap-directory+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.omads-email+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-file+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-folder+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omaloc-supl-init\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepager\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertat\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openblox.game+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"obgx\"]\n },\n \"application/vnd.openblox.game-binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openeye.oeb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openofficeorg.extension\": {\n \"source\": \"apache\",\n \"extensions\": [\"oxt\"]\n },\n \"application/vnd.openstreetmap.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osm\"]\n },\n \"application/vnd.opentimestamps.ots\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pptx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"potx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xlsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"docx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.core-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.relationships+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oracle.resource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.orange.indata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osa.netdeploy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgeo.mapguide.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgp\"]\n },\n \"application/vnd.osgi.bundle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgi.dp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dp\"]\n },\n \"application/vnd.osgi.subsystem\": {\n \"source\": \"iana\",\n \"extensions\": [\"esa\"]\n },\n \"application/vnd.otps.ct-kip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oxli.countgraph\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pagerduty+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.palm\": {\n \"source\": \"iana\",\n \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n },\n \"application/vnd.panoply\": {\n \"source\": \"iana\"\n },\n \"application/vnd.paos.xml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patentdive\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patientecommsdoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pawaafile\": {\n \"source\": \"iana\",\n \"extensions\": [\"paw\"]\n },\n \"application/vnd.pcos\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pg.format\": {\n \"source\": \"iana\",\n \"extensions\": [\"str\"]\n },\n \"application/vnd.pg.osasli\": {\n \"source\": \"iana\",\n \"extensions\": [\"ei6\"]\n },\n \"application/vnd.piaccess.application-licence\": {\n \"source\": \"iana\"\n },\n \"application/vnd.picsel\": {\n \"source\": \"iana\",\n \"extensions\": [\"efif\"]\n },\n \"application/vnd.pmi.widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wg\"]\n },\n \"application/vnd.poc.group-advertisement+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.pocketlearn\": {\n \"source\": \"iana\",\n \"extensions\": [\"plf\"]\n },\n \"application/vnd.powerbuilder6\": {\n \"source\": \"iana\",\n \"extensions\": [\"pbd\"]\n },\n \"application/vnd.powerbuilder6-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.preminet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.previewsystems.box\": {\n \"source\": \"iana\",\n \"extensions\": [\"box\"]\n },\n \"application/vnd.proteus.magazine\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgz\"]\n },\n \"application/vnd.psfs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.publishare-delta-tree\": {\n \"source\": \"iana\",\n \"extensions\": [\"qps\"]\n },\n \"application/vnd.pvi.ptid1\": {\n \"source\": \"iana\",\n \"extensions\": [\"ptid\"]\n },\n \"application/vnd.pwg-multiplexed\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pwg-xhtml-print+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.qualcomm.brew-app-res\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quarantainenet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quark.quarkxpress\": {\n \"source\": \"iana\",\n \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n },\n \"application/vnd.quobject-quoxdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.radisys.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-stream+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-base+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-group+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-speech+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-transform+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rainstor.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rapid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rar\": {\n \"source\": \"iana\",\n \"extensions\": [\"rar\"]\n },\n \"application/vnd.realvnc.bed\": {\n \"source\": \"iana\",\n \"extensions\": [\"bed\"]\n },\n \"application/vnd.recordare.musicxml\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxl\"]\n },\n \"application/vnd.recordare.musicxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musicxml\"]\n },\n \"application/vnd.renlearn.rlprint\": {\n \"source\": \"iana\"\n },\n \"application/vnd.resilient.logic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.restful+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rig.cryptonote\": {\n \"source\": \"iana\",\n \"extensions\": [\"cryptonote\"]\n },\n \"application/vnd.rim.cod\": {\n \"source\": \"apache\",\n \"extensions\": [\"cod\"]\n },\n \"application/vnd.rn-realmedia\": {\n \"source\": \"apache\",\n \"extensions\": [\"rm\"]\n },\n \"application/vnd.rn-realmedia-vbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmvb\"]\n },\n \"application/vnd.route66.link66+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"link66\"]\n },\n \"application/vnd.rs-274x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ruckus.download\": {\n \"source\": \"iana\"\n },\n \"application/vnd.s3sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sailingtracker.track\": {\n \"source\": \"iana\",\n \"extensions\": [\"st\"]\n },\n \"application/vnd.sar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.cid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.mid2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.scribus\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.3df\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.csf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.doc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.eml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.mht\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.net\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.ppt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.tiff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.xls\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.seemail\": {\n \"source\": \"iana\",\n \"extensions\": [\"see\"]\n },\n \"application/vnd.seis+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.sema\": {\n \"source\": \"iana\",\n \"extensions\": [\"sema\"]\n },\n \"application/vnd.semd\": {\n \"source\": \"iana\",\n \"extensions\": [\"semd\"]\n },\n \"application/vnd.semf\": {\n \"source\": \"iana\",\n \"extensions\": [\"semf\"]\n },\n \"application/vnd.shade-save-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shana.informed.formdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"ifm\"]\n },\n \"application/vnd.shana.informed.formtemplate\": {\n \"source\": \"iana\",\n \"extensions\": [\"itp\"]\n },\n \"application/vnd.shana.informed.interchange\": {\n \"source\": \"iana\",\n \"extensions\": [\"iif\"]\n },\n \"application/vnd.shana.informed.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipk\"]\n },\n \"application/vnd.shootproof+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shopkick+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sigrok.session\": {\n \"source\": \"iana\"\n },\n \"application/vnd.simtech-mindmapper\": {\n \"source\": \"iana\",\n \"extensions\": [\"twd\",\"twds\"]\n },\n \"application/vnd.siren+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.smaf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmf\"]\n },\n \"application/vnd.smart.notebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.smart.teacher\": {\n \"source\": \"iana\",\n \"extensions\": [\"teacher\"]\n },\n \"application/vnd.snesdev-page-table\": {\n \"source\": \"iana\"\n },\n \"application/vnd.software602.filler.form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fo\"]\n },\n \"application/vnd.software602.filler.form-xml-zip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.solent.sdkm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sdkm\",\"sdkd\"]\n },\n \"application/vnd.spotfire.dxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxp\"]\n },\n \"application/vnd.spotfire.sfs\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfs\"]\n },\n \"application/vnd.sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-cod\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-dtf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-ntf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.stardivision.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdc\"]\n },\n \"application/vnd.stardivision.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sda\"]\n },\n \"application/vnd.stardivision.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdd\"]\n },\n \"application/vnd.stardivision.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"smf\"]\n },\n \"application/vnd.stardivision.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdw\",\"vor\"]\n },\n \"application/vnd.stardivision.writer-global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgl\"]\n },\n \"application/vnd.stepmania.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"smzip\"]\n },\n \"application/vnd.stepmania.stepchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"sm\"]\n },\n \"application/vnd.street-stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sun.wadl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wadl\"]\n },\n \"application/vnd.sun.xml.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxc\"]\n },\n \"application/vnd.sun.xml.calc.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stc\"]\n },\n \"application/vnd.sun.xml.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxd\"]\n },\n \"application/vnd.sun.xml.draw.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"std\"]\n },\n \"application/vnd.sun.xml.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxi\"]\n },\n \"application/vnd.sun.xml.impress.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"sti\"]\n },\n \"application/vnd.sun.xml.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxm\"]\n },\n \"application/vnd.sun.xml.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxw\"]\n },\n \"application/vnd.sun.xml.writer.global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxg\"]\n },\n \"application/vnd.sun.xml.writer.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stw\"]\n },\n \"application/vnd.sus-calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"sus\",\"susp\"]\n },\n \"application/vnd.svd\": {\n \"source\": \"iana\",\n \"extensions\": [\"svd\"]\n },\n \"application/vnd.swiftview-ics\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sycle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.syft+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.symbian.install\": {\n \"source\": \"apache\",\n \"extensions\": [\"sis\",\"sisx\"]\n },\n \"application/vnd.syncml+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xsm\"]\n },\n \"application/vnd.syncml.dm+wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"bdm\"]\n },\n \"application/vnd.syncml.dm+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xdm\"]\n },\n \"application/vnd.syncml.dm.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"ddf\"]\n },\n \"application/vnd.syncml.dmtnds+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmtnds+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.syncml.ds.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tableschema+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tao.intent-module-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"tao\"]\n },\n \"application/vnd.tcpdump.pcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n },\n \"application/vnd.think-cell.ppttc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tmd.mediaflex.api+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tmobile-livetv\": {\n \"source\": \"iana\",\n \"extensions\": [\"tmo\"]\n },\n \"application/vnd.tri.onesource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.trid.tpt\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpt\"]\n },\n \"application/vnd.triscape.mxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxs\"]\n },\n \"application/vnd.trueapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"tra\"]\n },\n \"application/vnd.truedoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ubisoft.webplayer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ufdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"ufd\",\"ufdl\"]\n },\n \"application/vnd.uiq.theme\": {\n \"source\": \"iana\",\n \"extensions\": [\"utz\"]\n },\n \"application/vnd.umajin\": {\n \"source\": \"iana\",\n \"extensions\": [\"umj\"]\n },\n \"application/vnd.unity\": {\n \"source\": \"iana\",\n \"extensions\": [\"unityweb\"]\n },\n \"application/vnd.uoml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uoml\"]\n },\n \"application/vnd.uplanet.alert\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.alert-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.signal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uri-map\": {\n \"source\": \"iana\"\n },\n \"application/vnd.valve.source.material\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcx\"]\n },\n \"application/vnd.vd-study\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vectorworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vel+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.verimatrix.vcas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.veritone.aion+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.veryant.thin\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ves.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vidsoft.vidconference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.visio\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\"]\n },\n \"application/vnd.visionary\": {\n \"source\": \"iana\",\n \"extensions\": [\"vis\"]\n },\n \"application/vnd.vividence.scriptfile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vsf\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsf\"]\n },\n \"application/vnd.wap.sic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.slc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"wbxml\"]\n },\n \"application/vnd.wap.wmlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlc\"]\n },\n \"application/vnd.wap.wmlscriptc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlsc\"]\n },\n \"application/vnd.webturbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"wtb\"]\n },\n \"application/vnd.wfa.dpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.p2p\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.wsc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmf.bootstrap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica.package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.player\": {\n \"source\": \"iana\",\n \"extensions\": [\"nbp\"]\n },\n \"application/vnd.wordperfect\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpd\"]\n },\n \"application/vnd.wqd\": {\n \"source\": \"iana\",\n \"extensions\": [\"wqd\"]\n },\n \"application/vnd.wrq-hp3000-labelled\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wt.stf\": {\n \"source\": \"iana\",\n \"extensions\": [\"stf\"]\n },\n \"application/vnd.wv.csp+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wv.csp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.wv.ssp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xacml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xara\": {\n \"source\": \"iana\",\n \"extensions\": [\"xar\"]\n },\n \"application/vnd.xfdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdl\"]\n },\n \"application/vnd.xfdl.webform\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xmpie.cpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.dpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.plan\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.ppkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.xlim\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.hv-dic\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvd\"]\n },\n \"application/vnd.yamaha.hv-script\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvs\"]\n },\n \"application/vnd.yamaha.hv-voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvp\"]\n },\n \"application/vnd.yamaha.openscoreformat\": {\n \"source\": \"iana\",\n \"extensions\": [\"osf\"]\n },\n \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osfpvg\"]\n },\n \"application/vnd.yamaha.remote-setup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.smaf-audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"saf\"]\n },\n \"application/vnd.yamaha.smaf-phrase\": {\n \"source\": \"iana\",\n \"extensions\": [\"spf\"]\n },\n \"application/vnd.yamaha.through-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.tunnel-udpencap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yaoweme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yellowriver-custom-menu\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmp\"]\n },\n \"application/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.zul\": {\n \"source\": \"iana\",\n \"extensions\": [\"zir\",\"zirz\"]\n },\n \"application/vnd.zzazz.deck+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zaz\"]\n },\n \"application/voicexml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vxml\"]\n },\n \"application/voucher-cms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vq-rtcpxr\": {\n \"source\": \"iana\"\n },\n \"application/wasm\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wasm\"]\n },\n \"application/watcherinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wif\"]\n },\n \"application/webpush-options+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/whoispp-query\": {\n \"source\": \"iana\"\n },\n \"application/whoispp-response\": {\n \"source\": \"iana\"\n },\n \"application/widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wgt\"]\n },\n \"application/winhlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"hlp\"]\n },\n \"application/wita\": {\n \"source\": \"iana\"\n },\n \"application/wordperfect5.1\": {\n \"source\": \"iana\"\n },\n \"application/wsdl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wsdl\"]\n },\n \"application/wspolicy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wspolicy\"]\n },\n \"application/x-7z-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"7z\"]\n },\n \"application/x-abiword\": {\n \"source\": \"apache\",\n \"extensions\": [\"abw\"]\n },\n \"application/x-ace-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"ace\"]\n },\n \"application/x-amf\": {\n \"source\": \"apache\"\n },\n \"application/x-apple-diskimage\": {\n \"source\": \"apache\",\n \"extensions\": [\"dmg\"]\n },\n \"application/x-arj\": {\n \"compressible\": false,\n \"extensions\": [\"arj\"]\n },\n \"application/x-authorware-bin\": {\n \"source\": \"apache\",\n \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n },\n \"application/x-authorware-map\": {\n \"source\": \"apache\",\n \"extensions\": [\"aam\"]\n },\n \"application/x-authorware-seg\": {\n \"source\": \"apache\",\n \"extensions\": [\"aas\"]\n },\n \"application/x-bcpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"bcpio\"]\n },\n \"application/x-bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/x-bittorrent\": {\n \"source\": \"apache\",\n \"extensions\": [\"torrent\"]\n },\n \"application/x-blorb\": {\n \"source\": \"apache\",\n \"extensions\": [\"blb\",\"blorb\"]\n },\n \"application/x-bzip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz\"]\n },\n \"application/x-bzip2\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz2\",\"boz\"]\n },\n \"application/x-cbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n },\n \"application/x-cdlink\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcd\"]\n },\n \"application/x-cfs-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"cfs\"]\n },\n \"application/x-chat\": {\n \"source\": \"apache\",\n \"extensions\": [\"chat\"]\n },\n \"application/x-chess-pgn\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgn\"]\n },\n \"application/x-chrome-extension\": {\n \"extensions\": [\"crx\"]\n },\n \"application/x-cocoa\": {\n \"source\": \"nginx\",\n \"extensions\": [\"cco\"]\n },\n \"application/x-compress\": {\n \"source\": \"apache\"\n },\n \"application/x-conference\": {\n \"source\": \"apache\",\n \"extensions\": [\"nsc\"]\n },\n \"application/x-cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpio\"]\n },\n \"application/x-csh\": {\n \"source\": \"apache\",\n \"extensions\": [\"csh\"]\n },\n \"application/x-deb\": {\n \"compressible\": false\n },\n \"application/x-debian-package\": {\n \"source\": \"apache\",\n \"extensions\": [\"deb\",\"udeb\"]\n },\n \"application/x-dgc-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"dgc\"]\n },\n \"application/x-director\": {\n \"source\": \"apache\",\n \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n },\n \"application/x-doom\": {\n \"source\": \"apache\",\n \"extensions\": [\"wad\"]\n },\n \"application/x-dtbncx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ncx\"]\n },\n \"application/x-dtbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dtb\"]\n },\n \"application/x-dtbresource+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"res\"]\n },\n \"application/x-dvi\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"dvi\"]\n },\n \"application/x-envoy\": {\n \"source\": \"apache\",\n \"extensions\": [\"evy\"]\n },\n \"application/x-eva\": {\n \"source\": \"apache\",\n \"extensions\": [\"eva\"]\n },\n \"application/x-font-bdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"bdf\"]\n },\n \"application/x-font-dos\": {\n \"source\": \"apache\"\n },\n \"application/x-font-framemaker\": {\n \"source\": \"apache\"\n },\n \"application/x-font-ghostscript\": {\n \"source\": \"apache\",\n \"extensions\": [\"gsf\"]\n },\n \"application/x-font-libgrx\": {\n \"source\": \"apache\"\n },\n \"application/x-font-linux-psf\": {\n \"source\": \"apache\",\n \"extensions\": [\"psf\"]\n },\n \"application/x-font-pcf\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcf\"]\n },\n \"application/x-font-snf\": {\n \"source\": \"apache\",\n \"extensions\": [\"snf\"]\n },\n \"application/x-font-speedo\": {\n \"source\": \"apache\"\n },\n \"application/x-font-sunos-news\": {\n \"source\": \"apache\"\n },\n \"application/x-font-type1\": {\n \"source\": \"apache\",\n \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n },\n \"application/x-font-vfont\": {\n \"source\": \"apache\"\n },\n \"application/x-freearc\": {\n \"source\": \"apache\",\n \"extensions\": [\"arc\"]\n },\n \"application/x-futuresplash\": {\n \"source\": \"apache\",\n \"extensions\": [\"spl\"]\n },\n \"application/x-gca-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"gca\"]\n },\n \"application/x-glulx\": {\n \"source\": \"apache\",\n \"extensions\": [\"ulx\"]\n },\n \"application/x-gnumeric\": {\n \"source\": \"apache\",\n \"extensions\": [\"gnumeric\"]\n },\n \"application/x-gramps-xml\": {\n \"source\": \"apache\",\n \"extensions\": [\"gramps\"]\n },\n \"application/x-gtar\": {\n \"source\": \"apache\",\n \"extensions\": [\"gtar\"]\n },\n \"application/x-gzip\": {\n \"source\": \"apache\"\n },\n \"application/x-hdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"hdf\"]\n },\n \"application/x-httpd-php\": {\n \"compressible\": true,\n \"extensions\": [\"php\"]\n },\n \"application/x-install-instructions\": {\n \"source\": \"apache\",\n \"extensions\": [\"install\"]\n },\n \"application/x-iso9660-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"iso\"]\n },\n \"application/x-iwork-keynote-sffkey\": {\n \"extensions\": [\"key\"]\n },\n \"application/x-iwork-numbers-sffnumbers\": {\n \"extensions\": [\"numbers\"]\n },\n \"application/x-iwork-pages-sffpages\": {\n \"extensions\": [\"pages\"]\n },\n \"application/x-java-archive-diff\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jardiff\"]\n },\n \"application/x-java-jnlp-file\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jnlp\"]\n },\n \"application/x-javascript\": {\n \"compressible\": true\n },\n \"application/x-keepass2\": {\n \"extensions\": [\"kdbx\"]\n },\n \"application/x-latex\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"latex\"]\n },\n \"application/x-lua-bytecode\": {\n \"extensions\": [\"luac\"]\n },\n \"application/x-lzh-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"lzh\",\"lha\"]\n },\n \"application/x-makeself\": {\n \"source\": \"nginx\",\n \"extensions\": [\"run\"]\n },\n \"application/x-mie\": {\n \"source\": \"apache\",\n \"extensions\": [\"mie\"]\n },\n \"application/x-mobipocket-ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"prc\",\"mobi\"]\n },\n \"application/x-mpegurl\": {\n \"compressible\": false\n },\n \"application/x-ms-application\": {\n \"source\": \"apache\",\n \"extensions\": [\"application\"]\n },\n \"application/x-ms-shortcut\": {\n \"source\": \"apache\",\n \"extensions\": [\"lnk\"]\n },\n \"application/x-ms-wmd\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmd\"]\n },\n \"application/x-ms-wmz\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmz\"]\n },\n \"application/x-ms-xbap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbap\"]\n },\n \"application/x-msaccess\": {\n \"source\": \"apache\",\n \"extensions\": [\"mdb\"]\n },\n \"application/x-msbinder\": {\n \"source\": \"apache\",\n \"extensions\": [\"obd\"]\n },\n \"application/x-mscardfile\": {\n \"source\": \"apache\",\n \"extensions\": [\"crd\"]\n },\n \"application/x-msclip\": {\n \"source\": \"apache\",\n \"extensions\": [\"clp\"]\n },\n \"application/x-msdos-program\": {\n \"extensions\": [\"exe\"]\n },\n \"application/x-msdownload\": {\n \"source\": \"apache\",\n \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n },\n \"application/x-msmediaview\": {\n \"source\": \"apache\",\n \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n },\n \"application/x-msmetafile\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n },\n \"application/x-msmoney\": {\n \"source\": \"apache\",\n \"extensions\": [\"mny\"]\n },\n \"application/x-mspublisher\": {\n \"source\": \"apache\",\n \"extensions\": [\"pub\"]\n },\n \"application/x-msschedule\": {\n \"source\": \"apache\",\n \"extensions\": [\"scd\"]\n },\n \"application/x-msterminal\": {\n \"source\": \"apache\",\n \"extensions\": [\"trm\"]\n },\n \"application/x-mswrite\": {\n \"source\": \"apache\",\n \"extensions\": [\"wri\"]\n },\n \"application/x-netcdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"nc\",\"cdf\"]\n },\n \"application/x-ns-proxy-autoconfig\": {\n \"compressible\": true,\n \"extensions\": [\"pac\"]\n },\n \"application/x-nzb\": {\n \"source\": \"apache\",\n \"extensions\": [\"nzb\"]\n },\n \"application/x-perl\": {\n \"source\": \"nginx\",\n \"extensions\": [\"pl\",\"pm\"]\n },\n \"application/x-pilot\": {\n \"source\": \"nginx\",\n \"extensions\": [\"prc\",\"pdb\"]\n },\n \"application/x-pkcs12\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"p12\",\"pfx\"]\n },\n \"application/x-pkcs7-certificates\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7b\",\"spc\"]\n },\n \"application/x-pkcs7-certreqresp\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7r\"]\n },\n \"application/x-pki-message\": {\n \"source\": \"iana\"\n },\n \"application/x-rar-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"rar\"]\n },\n \"application/x-redhat-package-manager\": {\n \"source\": \"nginx\",\n \"extensions\": [\"rpm\"]\n },\n \"application/x-research-info-systems\": {\n \"source\": \"apache\",\n \"extensions\": [\"ris\"]\n },\n \"application/x-sea\": {\n \"source\": \"nginx\",\n \"extensions\": [\"sea\"]\n },\n \"application/x-sh\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"sh\"]\n },\n \"application/x-shar\": {\n \"source\": \"apache\",\n \"extensions\": [\"shar\"]\n },\n \"application/x-shockwave-flash\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"swf\"]\n },\n \"application/x-silverlight-app\": {\n \"source\": \"apache\",\n \"extensions\": [\"xap\"]\n },\n \"application/x-sql\": {\n \"source\": \"apache\",\n \"extensions\": [\"sql\"]\n },\n \"application/x-stuffit\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"sit\"]\n },\n \"application/x-stuffitx\": {\n \"source\": \"apache\",\n \"extensions\": [\"sitx\"]\n },\n \"application/x-subrip\": {\n \"source\": \"apache\",\n \"extensions\": [\"srt\"]\n },\n \"application/x-sv4cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4cpio\"]\n },\n \"application/x-sv4crc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4crc\"]\n },\n \"application/x-t3vm-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"t3\"]\n },\n \"application/x-tads\": {\n \"source\": \"apache\",\n \"extensions\": [\"gam\"]\n },\n \"application/x-tar\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"tar\"]\n },\n \"application/x-tcl\": {\n \"source\": \"apache\",\n \"extensions\": [\"tcl\",\"tk\"]\n },\n \"application/x-tex\": {\n \"source\": \"apache\",\n \"extensions\": [\"tex\"]\n },\n \"application/x-tex-tfm\": {\n \"source\": \"apache\",\n \"extensions\": [\"tfm\"]\n },\n \"application/x-texinfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"texinfo\",\"texi\"]\n },\n \"application/x-tgif\": {\n \"source\": \"apache\",\n \"extensions\": [\"obj\"]\n },\n \"application/x-ustar\": {\n \"source\": \"apache\",\n \"extensions\": [\"ustar\"]\n },\n \"application/x-virtualbox-hdd\": {\n \"compressible\": true,\n \"extensions\": [\"hdd\"]\n },\n \"application/x-virtualbox-ova\": {\n \"compressible\": true,\n \"extensions\": [\"ova\"]\n },\n \"application/x-virtualbox-ovf\": {\n \"compressible\": true,\n \"extensions\": [\"ovf\"]\n },\n \"application/x-virtualbox-vbox\": {\n \"compressible\": true,\n \"extensions\": [\"vbox\"]\n },\n \"application/x-virtualbox-vbox-extpack\": {\n \"compressible\": false,\n \"extensions\": [\"vbox-extpack\"]\n },\n \"application/x-virtualbox-vdi\": {\n \"compressible\": true,\n \"extensions\": [\"vdi\"]\n },\n \"application/x-virtualbox-vhd\": {\n \"compressible\": true,\n \"extensions\": [\"vhd\"]\n },\n \"application/x-virtualbox-vmdk\": {\n \"compressible\": true,\n \"extensions\": [\"vmdk\"]\n },\n \"application/x-wais-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"src\"]\n },\n \"application/x-web-app-manifest+json\": {\n \"compressible\": true,\n \"extensions\": [\"webapp\"]\n },\n \"application/x-www-form-urlencoded\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/x-x509-ca-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"der\",\"crt\",\"pem\"]\n },\n \"application/x-x509-ca-ra-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-x509-next-ca-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-xfig\": {\n \"source\": \"apache\",\n \"extensions\": [\"fig\"]\n },\n \"application/x-xliff+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/x-xpinstall\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"xpi\"]\n },\n \"application/x-xz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xz\"]\n },\n \"application/x-zmachine\": {\n \"source\": \"apache\",\n \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n },\n \"application/x400-bp\": {\n \"source\": \"iana\"\n },\n \"application/xacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xaml+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xaml\"]\n },\n \"application/xcap-att+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xav\"]\n },\n \"application/xcap-caps+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xca\"]\n },\n \"application/xcap-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdf\"]\n },\n \"application/xcap-el+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xel\"]\n },\n \"application/xcap-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcap-ns+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xns\"]\n },\n \"application/xcon-conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcon-conference-info-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xenc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xenc\"]\n },\n \"application/xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xhtml\",\"xht\"]\n },\n \"application/xhtml-voice+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/xliff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n },\n \"application/xml-dtd\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dtd\"]\n },\n \"application/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"application/xml-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xmpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xop\"]\n },\n \"application/xproc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xpl\"]\n },\n \"application/xslt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xsl\",\"xslt\"]\n },\n \"application/xspf+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xspf\"]\n },\n \"application/xv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n },\n \"application/yang\": {\n \"source\": \"iana\",\n \"extensions\": [\"yang\"]\n },\n \"application/yang-data+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yin+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"yin\"]\n },\n \"application/zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"zip\"]\n },\n \"application/zlib\": {\n \"source\": \"iana\"\n },\n \"application/zstd\": {\n \"source\": \"iana\"\n },\n \"audio/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/3gpp\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"3gpp\"]\n },\n \"audio/3gpp2\": {\n \"source\": \"iana\"\n },\n \"audio/aac\": {\n \"source\": \"iana\"\n },\n \"audio/ac3\": {\n \"source\": \"iana\"\n },\n \"audio/adpcm\": {\n \"source\": \"apache\",\n \"extensions\": [\"adp\"]\n },\n \"audio/amr\": {\n \"source\": \"iana\",\n \"extensions\": [\"amr\"]\n },\n \"audio/amr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/amr-wb+\": {\n \"source\": \"iana\"\n },\n \"audio/aptx\": {\n \"source\": \"iana\"\n },\n \"audio/asc\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-advanced-lossless\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-x\": {\n \"source\": \"iana\"\n },\n \"audio/atrac3\": {\n \"source\": \"iana\"\n },\n \"audio/basic\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"au\",\"snd\"]\n },\n \"audio/bv16\": {\n \"source\": \"iana\"\n },\n \"audio/bv32\": {\n \"source\": \"iana\"\n },\n \"audio/clearmode\": {\n \"source\": \"iana\"\n },\n \"audio/cn\": {\n \"source\": \"iana\"\n },\n \"audio/dat12\": {\n \"source\": \"iana\"\n },\n \"audio/dls\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es201108\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202050\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202211\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202212\": {\n \"source\": \"iana\"\n },\n \"audio/dv\": {\n \"source\": \"iana\"\n },\n \"audio/dvi4\": {\n \"source\": \"iana\"\n },\n \"audio/eac3\": {\n \"source\": \"iana\"\n },\n \"audio/encaprtp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc\": {\n \"source\": \"iana\"\n },\n \"audio/evrc-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc0\": {\n \"source\": \"iana\"\n },\n \"audio/evrc1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb1\": {\n \"source\": \"iana\"\n },\n \"audio/evs\": {\n \"source\": \"iana\"\n },\n \"audio/flexfec\": {\n \"source\": \"iana\"\n },\n \"audio/fwdred\": {\n \"source\": \"iana\"\n },\n \"audio/g711-0\": {\n \"source\": \"iana\"\n },\n \"audio/g719\": {\n \"source\": \"iana\"\n },\n \"audio/g722\": {\n \"source\": \"iana\"\n },\n \"audio/g7221\": {\n \"source\": \"iana\"\n },\n \"audio/g723\": {\n \"source\": \"iana\"\n },\n \"audio/g726-16\": {\n \"source\": \"iana\"\n },\n \"audio/g726-24\": {\n \"source\": \"iana\"\n },\n \"audio/g726-32\": {\n \"source\": \"iana\"\n },\n \"audio/g726-40\": {\n \"source\": \"iana\"\n },\n \"audio/g728\": {\n \"source\": \"iana\"\n },\n \"audio/g729\": {\n \"source\": \"iana\"\n },\n \"audio/g7291\": {\n \"source\": \"iana\"\n },\n \"audio/g729d\": {\n \"source\": \"iana\"\n },\n \"audio/g729e\": {\n \"source\": \"iana\"\n },\n \"audio/gsm\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-efr\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-hr-08\": {\n \"source\": \"iana\"\n },\n \"audio/ilbc\": {\n \"source\": \"iana\"\n },\n \"audio/ip-mr_v2.5\": {\n \"source\": \"iana\"\n },\n \"audio/isac\": {\n \"source\": \"apache\"\n },\n \"audio/l16\": {\n \"source\": \"iana\"\n },\n \"audio/l20\": {\n \"source\": \"iana\"\n },\n \"audio/l24\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/l8\": {\n \"source\": \"iana\"\n },\n \"audio/lpc\": {\n \"source\": \"iana\"\n },\n \"audio/melp\": {\n \"source\": \"iana\"\n },\n \"audio/melp1200\": {\n \"source\": \"iana\"\n },\n \"audio/melp2400\": {\n \"source\": \"iana\"\n },\n \"audio/melp600\": {\n \"source\": \"iana\"\n },\n \"audio/mhas\": {\n \"source\": \"iana\"\n },\n \"audio/midi\": {\n \"source\": \"apache\",\n \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n },\n \"audio/mobile-xmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxmf\"]\n },\n \"audio/mp3\": {\n \"compressible\": false,\n \"extensions\": [\"mp3\"]\n },\n \"audio/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"m4a\",\"mp4a\"]\n },\n \"audio/mp4a-latm\": {\n \"source\": \"iana\"\n },\n \"audio/mpa\": {\n \"source\": \"iana\"\n },\n \"audio/mpa-robust\": {\n \"source\": \"iana\"\n },\n \"audio/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n },\n \"audio/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"audio/musepack\": {\n \"source\": \"apache\"\n },\n \"audio/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n },\n \"audio/opus\": {\n \"source\": \"iana\"\n },\n \"audio/parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/pcma\": {\n \"source\": \"iana\"\n },\n \"audio/pcma-wb\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu-wb\": {\n \"source\": \"iana\"\n },\n \"audio/prs.sid\": {\n \"source\": \"iana\"\n },\n \"audio/qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/raptorfec\": {\n \"source\": \"iana\"\n },\n \"audio/red\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/rtploopback\": {\n \"source\": \"iana\"\n },\n \"audio/rtx\": {\n \"source\": \"iana\"\n },\n \"audio/s3m\": {\n \"source\": \"apache\",\n \"extensions\": [\"s3m\"]\n },\n \"audio/scip\": {\n \"source\": \"iana\"\n },\n \"audio/silk\": {\n \"source\": \"apache\",\n \"extensions\": [\"sil\"]\n },\n \"audio/smv\": {\n \"source\": \"iana\"\n },\n \"audio/smv-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/smv0\": {\n \"source\": \"iana\"\n },\n \"audio/sofa\": {\n \"source\": \"iana\"\n },\n \"audio/sp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/speex\": {\n \"source\": \"iana\"\n },\n \"audio/t140c\": {\n \"source\": \"iana\"\n },\n \"audio/t38\": {\n \"source\": \"iana\"\n },\n \"audio/telephone-event\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp_bb\": {\n \"source\": \"iana\"\n },\n \"audio/tone\": {\n \"source\": \"iana\"\n },\n \"audio/tsvcis\": {\n \"source\": \"iana\"\n },\n \"audio/uemclip\": {\n \"source\": \"iana\"\n },\n \"audio/ulpfec\": {\n \"source\": \"iana\"\n },\n \"audio/usac\": {\n \"source\": \"iana\"\n },\n \"audio/vdvi\": {\n \"source\": \"iana\"\n },\n \"audio/vmr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.3gpp.iufp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.4sb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.audiokoz\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.celp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cisco.nse\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cmles.radio-events\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.anp1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.inf1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dece.audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"uva\",\"uvva\"]\n },\n \"audio/vnd.digital-winds\": {\n \"source\": \"iana\",\n \"extensions\": [\"eol\"]\n },\n \"audio/vnd.dlna.adts\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mlp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mps\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2x\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2z\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pulse.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dra\": {\n \"source\": \"iana\",\n \"extensions\": [\"dra\"]\n },\n \"audio/vnd.dts\": {\n \"source\": \"iana\",\n \"extensions\": [\"dts\"]\n },\n \"audio/vnd.dts.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"dtshd\"]\n },\n \"audio/vnd.dts.uhd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dvb.file\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.everad.plj\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.hns.audio\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.lucent.voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"lvp\"]\n },\n \"audio/vnd.ms-playready.media.pya\": {\n \"source\": \"iana\",\n \"extensions\": [\"pya\"]\n },\n \"audio/vnd.nokia.mobile-xmf\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nortel.vbk\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nuera.ecelp4800\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp4800\"]\n },\n \"audio/vnd.nuera.ecelp7470\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp7470\"]\n },\n \"audio/vnd.nuera.ecelp9600\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp9600\"]\n },\n \"audio/vnd.octel.sbc\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.presonus.multitrack\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rhetorex.32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rip\": {\n \"source\": \"iana\",\n \"extensions\": [\"rip\"]\n },\n \"audio/vnd.rn-realaudio\": {\n \"compressible\": false\n },\n \"audio/vnd.sealedmedia.softseal.mpeg\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.vmx.cvsd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.wave\": {\n \"compressible\": false\n },\n \"audio/vorbis\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/vorbis-config\": {\n \"source\": \"iana\"\n },\n \"audio/wav\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/wave\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"weba\"]\n },\n \"audio/x-aac\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"aac\"]\n },\n \"audio/x-aiff\": {\n \"source\": \"apache\",\n \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n },\n \"audio/x-caf\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"caf\"]\n },\n \"audio/x-flac\": {\n \"source\": \"apache\",\n \"extensions\": [\"flac\"]\n },\n \"audio/x-m4a\": {\n \"source\": \"nginx\",\n \"extensions\": [\"m4a\"]\n },\n \"audio/x-matroska\": {\n \"source\": \"apache\",\n \"extensions\": [\"mka\"]\n },\n \"audio/x-mpegurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"m3u\"]\n },\n \"audio/x-ms-wax\": {\n \"source\": \"apache\",\n \"extensions\": [\"wax\"]\n },\n \"audio/x-ms-wma\": {\n \"source\": \"apache\",\n \"extensions\": [\"wma\"]\n },\n \"audio/x-pn-realaudio\": {\n \"source\": \"apache\",\n \"extensions\": [\"ram\",\"ra\"]\n },\n \"audio/x-pn-realaudio-plugin\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmp\"]\n },\n \"audio/x-realaudio\": {\n \"source\": \"nginx\",\n \"extensions\": [\"ra\"]\n },\n \"audio/x-tta\": {\n \"source\": \"apache\"\n },\n \"audio/x-wav\": {\n \"source\": \"apache\",\n \"extensions\": [\"wav\"]\n },\n \"audio/xm\": {\n \"source\": \"apache\",\n \"extensions\": [\"xm\"]\n },\n \"chemical/x-cdx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cdx\"]\n },\n \"chemical/x-cif\": {\n \"source\": \"apache\",\n \"extensions\": [\"cif\"]\n },\n \"chemical/x-cmdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmdf\"]\n },\n \"chemical/x-cml\": {\n \"source\": \"apache\",\n \"extensions\": [\"cml\"]\n },\n \"chemical/x-csml\": {\n \"source\": \"apache\",\n \"extensions\": [\"csml\"]\n },\n \"chemical/x-pdb\": {\n \"source\": \"apache\"\n },\n \"chemical/x-xyz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xyz\"]\n },\n \"font/collection\": {\n \"source\": \"iana\",\n \"extensions\": [\"ttc\"]\n },\n \"font/otf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"otf\"]\n },\n \"font/sfnt\": {\n \"source\": \"iana\"\n },\n \"font/ttf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttf\"]\n },\n \"font/woff\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff\"]\n },\n \"font/woff2\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff2\"]\n },\n \"image/aces\": {\n \"source\": \"iana\",\n \"extensions\": [\"exr\"]\n },\n \"image/apng\": {\n \"compressible\": false,\n \"extensions\": [\"apng\"]\n },\n \"image/avci\": {\n \"source\": \"iana\",\n \"extensions\": [\"avci\"]\n },\n \"image/avcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"avcs\"]\n },\n \"image/avif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"avif\"]\n },\n \"image/bmp\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/cgm\": {\n \"source\": \"iana\",\n \"extensions\": [\"cgm\"]\n },\n \"image/dicom-rle\": {\n \"source\": \"iana\",\n \"extensions\": [\"drle\"]\n },\n \"image/emf\": {\n \"source\": \"iana\",\n \"extensions\": [\"emf\"]\n },\n \"image/fits\": {\n \"source\": \"iana\",\n \"extensions\": [\"fits\"]\n },\n \"image/g3fax\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3\"]\n },\n \"image/gif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gif\"]\n },\n \"image/heic\": {\n \"source\": \"iana\",\n \"extensions\": [\"heic\"]\n },\n \"image/heic-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heics\"]\n },\n \"image/heif\": {\n \"source\": \"iana\",\n \"extensions\": [\"heif\"]\n },\n \"image/heif-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heifs\"]\n },\n \"image/hej2k\": {\n \"source\": \"iana\",\n \"extensions\": [\"hej2\"]\n },\n \"image/hsj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"hsj2\"]\n },\n \"image/ief\": {\n \"source\": \"iana\",\n \"extensions\": [\"ief\"]\n },\n \"image/jls\": {\n \"source\": \"iana\",\n \"extensions\": [\"jls\"]\n },\n \"image/jp2\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jp2\",\"jpg2\"]\n },\n \"image/jpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpeg\",\"jpg\",\"jpe\"]\n },\n \"image/jph\": {\n \"source\": \"iana\",\n \"extensions\": [\"jph\"]\n },\n \"image/jphc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jhc\"]\n },\n \"image/jpm\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpm\"]\n },\n \"image/jpx\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpx\",\"jpf\"]\n },\n \"image/jxr\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxr\"]\n },\n \"image/jxra\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxra\"]\n },\n \"image/jxrs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxrs\"]\n },\n \"image/jxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxs\"]\n },\n \"image/jxsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsc\"]\n },\n \"image/jxsi\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsi\"]\n },\n \"image/jxss\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxss\"]\n },\n \"image/ktx\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx\"]\n },\n \"image/ktx2\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx2\"]\n },\n \"image/naplps\": {\n \"source\": \"iana\"\n },\n \"image/pjpeg\": {\n \"compressible\": false\n },\n \"image/png\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"png\"]\n },\n \"image/prs.btif\": {\n \"source\": \"iana\",\n \"extensions\": [\"btif\"]\n },\n \"image/prs.pti\": {\n \"source\": \"iana\",\n \"extensions\": [\"pti\"]\n },\n \"image/pwg-raster\": {\n \"source\": \"iana\"\n },\n \"image/sgi\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgi\"]\n },\n \"image/svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"svg\",\"svgz\"]\n },\n \"image/t38\": {\n \"source\": \"iana\",\n \"extensions\": [\"t38\"]\n },\n \"image/tiff\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"tif\",\"tiff\"]\n },\n \"image/tiff-fx\": {\n \"source\": \"iana\",\n \"extensions\": [\"tfx\"]\n },\n \"image/vnd.adobe.photoshop\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"psd\"]\n },\n \"image/vnd.airzip.accelerator.azv\": {\n \"source\": \"iana\",\n \"extensions\": [\"azv\"]\n },\n \"image/vnd.cns.inf2\": {\n \"source\": \"iana\"\n },\n \"image/vnd.dece.graphic\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n },\n \"image/vnd.djvu\": {\n \"source\": \"iana\",\n \"extensions\": [\"djvu\",\"djv\"]\n },\n \"image/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"image/vnd.dwg\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwg\"]\n },\n \"image/vnd.dxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxf\"]\n },\n \"image/vnd.fastbidsheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fbs\"]\n },\n \"image/vnd.fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"fpx\"]\n },\n \"image/vnd.fst\": {\n \"source\": \"iana\",\n \"extensions\": [\"fst\"]\n },\n \"image/vnd.fujixerox.edmics-mmr\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmr\"]\n },\n \"image/vnd.fujixerox.edmics-rlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"rlc\"]\n },\n \"image/vnd.globalgraphics.pgb\": {\n \"source\": \"iana\"\n },\n \"image/vnd.microsoft.icon\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/vnd.mix\": {\n \"source\": \"iana\"\n },\n \"image/vnd.mozilla.apng\": {\n \"source\": \"iana\"\n },\n \"image/vnd.ms-dds\": {\n \"compressible\": true,\n \"extensions\": [\"dds\"]\n },\n \"image/vnd.ms-modi\": {\n \"source\": \"iana\",\n \"extensions\": [\"mdi\"]\n },\n \"image/vnd.ms-photo\": {\n \"source\": \"apache\",\n \"extensions\": [\"wdp\"]\n },\n \"image/vnd.net-fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"npx\"]\n },\n \"image/vnd.pco.b16\": {\n \"source\": \"iana\",\n \"extensions\": [\"b16\"]\n },\n \"image/vnd.radiance\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealed.png\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.gif\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.jpg\": {\n \"source\": \"iana\"\n },\n \"image/vnd.svf\": {\n \"source\": \"iana\"\n },\n \"image/vnd.tencent.tap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tap\"]\n },\n \"image/vnd.valve.source.texture\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtf\"]\n },\n \"image/vnd.wap.wbmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"wbmp\"]\n },\n \"image/vnd.xiff\": {\n \"source\": \"iana\",\n \"extensions\": [\"xif\"]\n },\n \"image/vnd.zbrush.pcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcx\"]\n },\n \"image/webp\": {\n \"source\": \"apache\",\n \"extensions\": [\"webp\"]\n },\n \"image/wmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmf\"]\n },\n \"image/x-3ds\": {\n \"source\": \"apache\",\n \"extensions\": [\"3ds\"]\n },\n \"image/x-cmu-raster\": {\n \"source\": \"apache\",\n \"extensions\": [\"ras\"]\n },\n \"image/x-cmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmx\"]\n },\n \"image/x-freehand\": {\n \"source\": \"apache\",\n \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n },\n \"image/x-icon\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/x-jng\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jng\"]\n },\n \"image/x-mrsid-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"sid\"]\n },\n \"image/x-ms-bmp\": {\n \"source\": \"nginx\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/x-pcx\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcx\"]\n },\n \"image/x-pict\": {\n \"source\": \"apache\",\n \"extensions\": [\"pic\",\"pct\"]\n },\n \"image/x-portable-anymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pnm\"]\n },\n \"image/x-portable-bitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pbm\"]\n },\n \"image/x-portable-graymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgm\"]\n },\n \"image/x-portable-pixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"ppm\"]\n },\n \"image/x-rgb\": {\n \"source\": \"apache\",\n \"extensions\": [\"rgb\"]\n },\n \"image/x-tga\": {\n \"source\": \"apache\",\n \"extensions\": [\"tga\"]\n },\n \"image/x-xbitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbm\"]\n },\n \"image/x-xcf\": {\n \"compressible\": false\n },\n \"image/x-xpixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xpm\"]\n },\n \"image/x-xwindowdump\": {\n \"source\": \"apache\",\n \"extensions\": [\"xwd\"]\n },\n \"message/cpim\": {\n \"source\": \"iana\"\n },\n \"message/delivery-status\": {\n \"source\": \"iana\"\n },\n \"message/disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\n \"disposition-notification\"\n ]\n },\n \"message/external-body\": {\n \"source\": \"iana\"\n },\n \"message/feedback-report\": {\n \"source\": \"iana\"\n },\n \"message/global\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8msg\"]\n },\n \"message/global-delivery-status\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8dsn\"]\n },\n \"message/global-disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8mdn\"]\n },\n \"message/global-headers\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8hdr\"]\n },\n \"message/http\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/imdn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"message/news\": {\n \"source\": \"iana\"\n },\n \"message/partial\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/rfc822\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eml\",\"mime\"]\n },\n \"message/s-http\": {\n \"source\": \"iana\"\n },\n \"message/sip\": {\n \"source\": \"iana\"\n },\n \"message/sipfrag\": {\n \"source\": \"iana\"\n },\n \"message/tracking-status\": {\n \"source\": \"iana\"\n },\n \"message/vnd.si.simp\": {\n \"source\": \"iana\"\n },\n \"message/vnd.wfa.wsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wsc\"]\n },\n \"model/3mf\": {\n \"source\": \"iana\",\n \"extensions\": [\"3mf\"]\n },\n \"model/e57\": {\n \"source\": \"iana\"\n },\n \"model/gltf+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gltf\"]\n },\n \"model/gltf-binary\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"glb\"]\n },\n \"model/iges\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"igs\",\"iges\"]\n },\n \"model/mesh\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n },\n \"model/mtl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mtl\"]\n },\n \"model/obj\": {\n \"source\": \"iana\",\n \"extensions\": [\"obj\"]\n },\n \"model/step\": {\n \"source\": \"iana\"\n },\n \"model/step+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"stpx\"]\n },\n \"model/step+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpz\"]\n },\n \"model/step-xml+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpxz\"]\n },\n \"model/stl\": {\n \"source\": \"iana\",\n \"extensions\": [\"stl\"]\n },\n \"model/vnd.collada+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dae\"]\n },\n \"model/vnd.dwf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwf\"]\n },\n \"model/vnd.flatland.3dml\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"gdl\"]\n },\n \"model/vnd.gs-gdl\": {\n \"source\": \"apache\"\n },\n \"model/vnd.gs.gdl\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gtw\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtw\"]\n },\n \"model/vnd.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"model/vnd.mts\": {\n \"source\": \"iana\",\n \"extensions\": [\"mts\"]\n },\n \"model/vnd.opengex\": {\n \"source\": \"iana\",\n \"extensions\": [\"ogex\"]\n },\n \"model/vnd.parasolid.transmit.binary\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_b\"]\n },\n \"model/vnd.parasolid.transmit.text\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_t\"]\n },\n \"model/vnd.pytha.pyox\": {\n \"source\": \"iana\"\n },\n \"model/vnd.rosette.annotated-data-model\": {\n \"source\": \"iana\"\n },\n \"model/vnd.sap.vds\": {\n \"source\": \"iana\",\n \"extensions\": [\"vds\"]\n },\n \"model/vnd.usdz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"usdz\"]\n },\n \"model/vnd.valve.source.compiled-map\": {\n \"source\": \"iana\",\n \"extensions\": [\"bsp\"]\n },\n \"model/vnd.vtu\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtu\"]\n },\n \"model/vrml\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"wrl\",\"vrml\"]\n },\n \"model/x3d+binary\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3db\",\"x3dbz\"]\n },\n \"model/x3d+fastinfoset\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3db\"]\n },\n \"model/x3d+vrml\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3dv\",\"x3dvz\"]\n },\n \"model/x3d+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"x3d\",\"x3dz\"]\n },\n \"model/x3d-vrml\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3dv\"]\n },\n \"multipart/alternative\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/appledouble\": {\n \"source\": \"iana\"\n },\n \"multipart/byteranges\": {\n \"source\": \"iana\"\n },\n \"multipart/digest\": {\n \"source\": \"iana\"\n },\n \"multipart/encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/form-data\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/header-set\": {\n \"source\": \"iana\"\n },\n \"multipart/mixed\": {\n \"source\": \"iana\"\n },\n \"multipart/multilingual\": {\n \"source\": \"iana\"\n },\n \"multipart/parallel\": {\n \"source\": \"iana\"\n },\n \"multipart/related\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/report\": {\n \"source\": \"iana\"\n },\n \"multipart/signed\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/vnd.bint.med-plus\": {\n \"source\": \"iana\"\n },\n \"multipart/voice-message\": {\n \"source\": \"iana\"\n },\n \"multipart/x-mixed-replace\": {\n \"source\": \"iana\"\n },\n \"text/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"text/cache-manifest\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"appcache\",\"manifest\"]\n },\n \"text/calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"ics\",\"ifb\"]\n },\n \"text/calender\": {\n \"compressible\": true\n },\n \"text/cmd\": {\n \"compressible\": true\n },\n \"text/coffeescript\": {\n \"extensions\": [\"coffee\",\"litcoffee\"]\n },\n \"text/cql\": {\n \"source\": \"iana\"\n },\n \"text/cql-expression\": {\n \"source\": \"iana\"\n },\n \"text/cql-identifier\": {\n \"source\": \"iana\"\n },\n \"text/css\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"css\"]\n },\n \"text/csv\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csv\"]\n },\n \"text/csv-schema\": {\n \"source\": \"iana\"\n },\n \"text/directory\": {\n \"source\": \"iana\"\n },\n \"text/dns\": {\n \"source\": \"iana\"\n },\n \"text/ecmascript\": {\n \"source\": \"iana\"\n },\n \"text/encaprtp\": {\n \"source\": \"iana\"\n },\n \"text/enriched\": {\n \"source\": \"iana\"\n },\n \"text/fhirpath\": {\n \"source\": \"iana\"\n },\n \"text/flexfec\": {\n \"source\": \"iana\"\n },\n \"text/fwdred\": {\n \"source\": \"iana\"\n },\n \"text/gff3\": {\n \"source\": \"iana\"\n },\n \"text/grammar-ref-list\": {\n \"source\": \"iana\"\n },\n \"text/html\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"html\",\"htm\",\"shtml\"]\n },\n \"text/jade\": {\n \"extensions\": [\"jade\"]\n },\n \"text/javascript\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"text/jcr-cnd\": {\n \"source\": \"iana\"\n },\n \"text/jsx\": {\n \"compressible\": true,\n \"extensions\": [\"jsx\"]\n },\n \"text/less\": {\n \"compressible\": true,\n \"extensions\": [\"less\"]\n },\n \"text/markdown\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"markdown\",\"md\"]\n },\n \"text/mathml\": {\n \"source\": \"nginx\",\n \"extensions\": [\"mml\"]\n },\n \"text/mdx\": {\n \"compressible\": true,\n \"extensions\": [\"mdx\"]\n },\n \"text/mizar\": {\n \"source\": \"iana\"\n },\n \"text/n3\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"n3\"]\n },\n \"text/parameters\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/parityfec\": {\n \"source\": \"iana\"\n },\n \"text/plain\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n },\n \"text/provenance-notation\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/prs.fallenstein.rst\": {\n \"source\": \"iana\"\n },\n \"text/prs.lines.tag\": {\n \"source\": \"iana\",\n \"extensions\": [\"dsc\"]\n },\n \"text/prs.prop.logic\": {\n \"source\": \"iana\"\n },\n \"text/raptorfec\": {\n \"source\": \"iana\"\n },\n \"text/red\": {\n \"source\": \"iana\"\n },\n \"text/rfc822-headers\": {\n \"source\": \"iana\"\n },\n \"text/richtext\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtx\"]\n },\n \"text/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"text/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"text/rtploopback\": {\n \"source\": \"iana\"\n },\n \"text/rtx\": {\n \"source\": \"iana\"\n },\n \"text/sgml\": {\n \"source\": \"iana\",\n \"extensions\": [\"sgml\",\"sgm\"]\n },\n \"text/shaclc\": {\n \"source\": \"iana\"\n },\n \"text/shex\": {\n \"source\": \"iana\",\n \"extensions\": [\"shex\"]\n },\n \"text/slim\": {\n \"extensions\": [\"slim\",\"slm\"]\n },\n \"text/spdx\": {\n \"source\": \"iana\",\n \"extensions\": [\"spdx\"]\n },\n \"text/strings\": {\n \"source\": \"iana\"\n },\n \"text/stylus\": {\n \"extensions\": [\"stylus\",\"styl\"]\n },\n \"text/t140\": {\n \"source\": \"iana\"\n },\n \"text/tab-separated-values\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tsv\"]\n },\n \"text/troff\": {\n \"source\": \"iana\",\n \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n },\n \"text/turtle\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"ttl\"]\n },\n \"text/ulpfec\": {\n \"source\": \"iana\"\n },\n \"text/uri-list\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uri\",\"uris\",\"urls\"]\n },\n \"text/vcard\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vcard\"]\n },\n \"text/vnd.a\": {\n \"source\": \"iana\"\n },\n \"text/vnd.abc\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ascii-art\": {\n \"source\": \"iana\"\n },\n \"text/vnd.curl\": {\n \"source\": \"iana\",\n \"extensions\": [\"curl\"]\n },\n \"text/vnd.curl.dcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"dcurl\"]\n },\n \"text/vnd.curl.mcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"mcurl\"]\n },\n \"text/vnd.curl.scurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"scurl\"]\n },\n \"text/vnd.debian.copyright\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.dmclientscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"text/vnd.esmertec.theme-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.familysearch.gedcom\": {\n \"source\": \"iana\",\n \"extensions\": [\"ged\"]\n },\n \"text/vnd.ficlab.flt\": {\n \"source\": \"iana\"\n },\n \"text/vnd.fly\": {\n \"source\": \"iana\",\n \"extensions\": [\"fly\"]\n },\n \"text/vnd.fmi.flexstor\": {\n \"source\": \"iana\",\n \"extensions\": [\"flx\"]\n },\n \"text/vnd.gml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.graphviz\": {\n \"source\": \"iana\",\n \"extensions\": [\"gv\"]\n },\n \"text/vnd.hans\": {\n \"source\": \"iana\"\n },\n \"text/vnd.hgl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.in3d.3dml\": {\n \"source\": \"iana\",\n \"extensions\": [\"3dml\"]\n },\n \"text/vnd.in3d.spot\": {\n \"source\": \"iana\",\n \"extensions\": [\"spot\"]\n },\n \"text/vnd.iptc.newsml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.iptc.nitf\": {\n \"source\": \"iana\"\n },\n \"text/vnd.latex-z\": {\n \"source\": \"iana\"\n },\n \"text/vnd.motorola.reflex\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ms-mediapackage\": {\n \"source\": \"iana\"\n },\n \"text/vnd.net2phone.commcenter.command\": {\n \"source\": \"iana\"\n },\n \"text/vnd.radisys.msml-basic-layout\": {\n \"source\": \"iana\"\n },\n \"text/vnd.senx.warpscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.si.uricatalogue\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sosi\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sun.j2me.app-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"jad\"]\n },\n \"text/vnd.trolltech.linguist\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.wap.si\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.sl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.wml\": {\n \"source\": \"iana\",\n \"extensions\": [\"wml\"]\n },\n \"text/vnd.wap.wmlscript\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmls\"]\n },\n \"text/vtt\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"vtt\"]\n },\n \"text/x-asm\": {\n \"source\": \"apache\",\n \"extensions\": [\"s\",\"asm\"]\n },\n \"text/x-c\": {\n \"source\": \"apache\",\n \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n },\n \"text/x-component\": {\n \"source\": \"nginx\",\n \"extensions\": [\"htc\"]\n },\n \"text/x-fortran\": {\n \"source\": \"apache\",\n \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n },\n \"text/x-gwt-rpc\": {\n \"compressible\": true\n },\n \"text/x-handlebars-template\": {\n \"extensions\": [\"hbs\"]\n },\n \"text/x-java-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"java\"]\n },\n \"text/x-jquery-tmpl\": {\n \"compressible\": true\n },\n \"text/x-lua\": {\n \"extensions\": [\"lua\"]\n },\n \"text/x-markdown\": {\n \"compressible\": true,\n \"extensions\": [\"mkd\"]\n },\n \"text/x-nfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"nfo\"]\n },\n \"text/x-opml\": {\n \"source\": \"apache\",\n \"extensions\": [\"opml\"]\n },\n \"text/x-org\": {\n \"compressible\": true,\n \"extensions\": [\"org\"]\n },\n \"text/x-pascal\": {\n \"source\": \"apache\",\n \"extensions\": [\"p\",\"pas\"]\n },\n \"text/x-processing\": {\n \"compressible\": true,\n \"extensions\": [\"pde\"]\n },\n \"text/x-sass\": {\n \"extensions\": [\"sass\"]\n },\n \"text/x-scss\": {\n \"extensions\": [\"scss\"]\n },\n \"text/x-setext\": {\n \"source\": \"apache\",\n \"extensions\": [\"etx\"]\n },\n \"text/x-sfv\": {\n \"source\": \"apache\",\n \"extensions\": [\"sfv\"]\n },\n \"text/x-suse-ymp\": {\n \"compressible\": true,\n \"extensions\": [\"ymp\"]\n },\n \"text/x-uuencode\": {\n \"source\": \"apache\",\n \"extensions\": [\"uu\"]\n },\n \"text/x-vcalendar\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcs\"]\n },\n \"text/x-vcard\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcf\"]\n },\n \"text/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\"]\n },\n \"text/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"text/yaml\": {\n \"compressible\": true,\n \"extensions\": [\"yaml\",\"yml\"]\n },\n \"video/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"video/3gpp\": {\n \"source\": \"iana\",\n \"extensions\": [\"3gp\",\"3gpp\"]\n },\n \"video/3gpp-tt\": {\n \"source\": \"iana\"\n },\n \"video/3gpp2\": {\n \"source\": \"iana\",\n \"extensions\": [\"3g2\"]\n },\n \"video/av1\": {\n \"source\": \"iana\"\n },\n \"video/bmpeg\": {\n \"source\": \"iana\"\n },\n \"video/bt656\": {\n \"source\": \"iana\"\n },\n \"video/celb\": {\n \"source\": \"iana\"\n },\n \"video/dv\": {\n \"source\": \"iana\"\n },\n \"video/encaprtp\": {\n \"source\": \"iana\"\n },\n \"video/ffv1\": {\n \"source\": \"iana\"\n },\n \"video/flexfec\": {\n \"source\": \"iana\"\n },\n \"video/h261\": {\n \"source\": \"iana\",\n \"extensions\": [\"h261\"]\n },\n \"video/h263\": {\n \"source\": \"iana\",\n \"extensions\": [\"h263\"]\n },\n \"video/h263-1998\": {\n \"source\": \"iana\"\n },\n \"video/h263-2000\": {\n \"source\": \"iana\"\n },\n \"video/h264\": {\n \"source\": \"iana\",\n \"extensions\": [\"h264\"]\n },\n \"video/h264-rcdo\": {\n \"source\": \"iana\"\n },\n \"video/h264-svc\": {\n \"source\": \"iana\"\n },\n \"video/h265\": {\n \"source\": \"iana\"\n },\n \"video/iso.segment\": {\n \"source\": \"iana\",\n \"extensions\": [\"m4s\"]\n },\n \"video/jpeg\": {\n \"source\": \"iana\",\n \"extensions\": [\"jpgv\"]\n },\n \"video/jpeg2000\": {\n \"source\": \"iana\"\n },\n \"video/jpm\": {\n \"source\": \"apache\",\n \"extensions\": [\"jpm\",\"jpgm\"]\n },\n \"video/jxsv\": {\n \"source\": \"iana\"\n },\n \"video/mj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"mj2\",\"mjp2\"]\n },\n \"video/mp1s\": {\n \"source\": \"iana\"\n },\n \"video/mp2p\": {\n \"source\": \"iana\"\n },\n \"video/mp2t\": {\n \"source\": \"iana\",\n \"extensions\": [\"ts\"]\n },\n \"video/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n },\n \"video/mp4v-es\": {\n \"source\": \"iana\"\n },\n \"video/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n },\n \"video/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"video/mpv\": {\n \"source\": \"iana\"\n },\n \"video/nv\": {\n \"source\": \"iana\"\n },\n \"video/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogv\"]\n },\n \"video/parityfec\": {\n \"source\": \"iana\"\n },\n \"video/pointer\": {\n \"source\": \"iana\"\n },\n \"video/quicktime\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"qt\",\"mov\"]\n },\n \"video/raptorfec\": {\n \"source\": \"iana\"\n },\n \"video/raw\": {\n \"source\": \"iana\"\n },\n \"video/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"video/rtploopback\": {\n \"source\": \"iana\"\n },\n \"video/rtx\": {\n \"source\": \"iana\"\n },\n \"video/scip\": {\n \"source\": \"iana\"\n },\n \"video/smpte291\": {\n \"source\": \"iana\"\n },\n \"video/smpte292m\": {\n \"source\": \"iana\"\n },\n \"video/ulpfec\": {\n \"source\": \"iana\"\n },\n \"video/vc1\": {\n \"source\": \"iana\"\n },\n \"video/vc2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.cctv\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvh\",\"uvvh\"]\n },\n \"video/vnd.dece.mobile\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvm\",\"uvvm\"]\n },\n \"video/vnd.dece.mp4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.pd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvp\",\"uvvp\"]\n },\n \"video/vnd.dece.sd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvs\",\"uvvs\"]\n },\n \"video/vnd.dece.video\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvv\",\"uvvv\"]\n },\n \"video/vnd.directv.mpeg\": {\n \"source\": \"iana\"\n },\n \"video/vnd.directv.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dlna.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dvb.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"dvb\"]\n },\n \"video/vnd.fvt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fvt\"]\n },\n \"video/vnd.hns.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsavc\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsmpeg2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.videop\": {\n \"source\": \"iana\"\n },\n \"video/vnd.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxu\",\"m4u\"]\n },\n \"video/vnd.ms-playready.media.pyv\": {\n \"source\": \"iana\",\n \"extensions\": [\"pyv\"]\n },\n \"video/vnd.nokia.interleaved-multimedia\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.mp4vr\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.videovoip\": {\n \"source\": \"iana\"\n },\n \"video/vnd.objectvideo\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.bink\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.smacker\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg1\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.swf\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealedmedia.softseal.mov\": {\n \"source\": \"iana\"\n },\n \"video/vnd.uvvu.mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvu\",\"uvvu\"]\n },\n \"video/vnd.vivo\": {\n \"source\": \"iana\",\n \"extensions\": [\"viv\"]\n },\n \"video/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"video/vp8\": {\n \"source\": \"iana\"\n },\n \"video/vp9\": {\n \"source\": \"iana\"\n },\n \"video/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"webm\"]\n },\n \"video/x-f4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"f4v\"]\n },\n \"video/x-fli\": {\n \"source\": \"apache\",\n \"extensions\": [\"fli\"]\n },\n \"video/x-flv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"flv\"]\n },\n \"video/x-m4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"m4v\"]\n },\n \"video/x-matroska\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n },\n \"video/x-mng\": {\n \"source\": \"apache\",\n \"extensions\": [\"mng\"]\n },\n \"video/x-ms-asf\": {\n \"source\": \"apache\",\n \"extensions\": [\"asf\",\"asx\"]\n },\n \"video/x-ms-vob\": {\n \"source\": \"apache\",\n \"extensions\": [\"vob\"]\n },\n \"video/x-ms-wm\": {\n \"source\": \"apache\",\n \"extensions\": [\"wm\"]\n },\n \"video/x-ms-wmv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"wmv\"]\n },\n \"video/x-ms-wmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmx\"]\n },\n \"video/x-ms-wvx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wvx\"]\n },\n \"video/x-msvideo\": {\n \"source\": \"apache\",\n \"extensions\": [\"avi\"]\n },\n \"video/x-sgi-movie\": {\n \"source\": \"apache\",\n \"extensions\": [\"movie\"]\n },\n \"video/x-smv\": {\n \"source\": \"apache\",\n \"extensions\": [\"smv\"]\n },\n \"x-conference/x-cooltalk\": {\n \"source\": \"apache\",\n \"extensions\": [\"ice\"]\n },\n \"x-shader/x-fragment\": {\n \"compressible\": true\n },\n \"x-shader/x-vertex\": {\n \"compressible\": true\n }\n}\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","export interface Session {\n readonly eyepopUrl: string\n readonly accessToken: string\n readonly validUntil: number\n}\n\nexport enum EndpointState {\n Idle = 'Idle',\n Busy = 'Busy',\n Authenticating = 'Authenticating',\n FetchConfig = 'FetchConfig',\n Error = 'Error',\n NotAvailable = 'NotAvailable',\n}\n\nexport interface Box {\n readonly topLeft: Point2d\n readonly bottomRight: Point2d\n}\n\nexport interface StreamTime {\n /**\n * Temporal offset of prediction from start of the media (video or audio) in nano seconds.\n */\n timestamp?: number;\n /**\n * Convenience, same vale as 'timestamp' just in seconds.\n */\n seconds?: number;\n /**\n * Temporal length of the chunk that was the source for this prediction in nano seconds.\n */\n duration?: number;\n /**\n * Real time when the media was captured as epoch timestamp in nano seconds.\n *\n * Only provided if source provides this timestamp e.g. as timestamp/x-ntp in RTSP.\n */\n captured_at?: number;\n /**\n * A media specific offset.\n *\n * For video frames, this is the frame number of prediction.\n * For audio samples, this is the offset of the first sample for this prediction.\n */\n offset?: number;\n /**\n * Offset length of the chunk used for this prediction.\n *\n * It has the same format as offset.\n */\n offset_duration?: number;\n}\n\nexport interface Prediction extends StreamTime {\n /**\n * The width of the source coordinate system for all prediction coordinates.\n */\n source_width: number\n /**\n * The height of the source coordinate system for all prediction coordinates.\n */\n source_height: number\n source_id?: string\n objects?: Array<PredictedObject>\n classes?: Array<PredictedClass>\n texts?: Array<PredictedText>\n meshs?: Array<PredictedMesh>\n keyPoints?: Array<PredictedKeyPoints>\n}\n\nexport interface PredictedClass {\n id?: number\n confidence: number\n classLabel: string\n category?: string\n}\n\nexport interface PredictedText {\n id?: number\n confidence: number\n text: string\n category?: string\n}\n\nexport interface Contour {\n points: Array<Point2d>\n cutouts: Array<Array<Point2d>>\n}\n\nexport interface Mask {\n bitmap: string\n width: number\n height: number\n stride: number\n}\n\nexport interface PredictedObject extends PredictedClass {\n trackId: number | undefined\n x: number\n y: number\n width: number\n height: number\n orientation?: number\n outline: Array<Point2d> | undefined\n contours: Array<Contour> | undefined\n mask: Mask | undefined\n objects: Array<PredictedObject> | undefined\n classes: Array<PredictedClass> | undefined\n texts: Array<PredictedText> | undefined\n meshs: Array<PredictedMesh> | undefined\n keyPoints: Array<PredictedKeyPoints> | undefined\n}\n\nexport interface Point2d {\n x: number\n y: number\n}\n\nexport interface PredictedMesh {\n category: string\n id: number\n confidence: number\n points: Array<Point3d>\n}\n\nexport interface Point3d extends Point2d {\n z: number | undefined\n}\n\nexport interface PredictedKeyPoints {\n category: string\n type: string\n points: Array<PredictedKeyPoint>\n}\n\nexport interface PredictedKeyPoint extends Point3d, PredictedClass {\n visible: boolean | undefined\n}\n\nexport interface PredictedMotion {\n begin_timestamp: number\n finished_timestamp: number | undefined\n}","type Bytes = string | ArrayBuffer | Uint8Array | Buffer | null | undefined\n\nexport interface StreamEvent {\n type: string\n source_id?: string\n message?: string\n}\n\nexport class Stream<Prediction> implements AsyncIterable<Prediction> {\n controller: AbortController\n\n constructor(\n private iterator: () => AsyncIterator<Prediction>,\n controller: AbortController,\n ) {\n this.controller = controller\n }\n\n static iterFromReadableStream<Prediction>(\n readableStream: Promise<ReadableStream<Uint8Array>>,\n controller: AbortController,\n eventHandler: (event: StreamEvent) => Promise<void>,\n ): AsyncIterator<Prediction, any, undefined> {\n let consumed = false\n\n async function* iterLines(): AsyncGenerator<string, void, unknown> {\n const lineDecoder = new EyepopLineDecoder()\n const iter = readableStreamAsyncIterable<Bytes>(await readableStream)\n for await (let chunk of iter) {\n for (const line of lineDecoder.decode(chunk)) {\n yield line\n }\n }\n\n for (const line of lineDecoder.flush()) {\n yield line\n }\n }\n\n async function* iterator(): AsyncIterator<Prediction, any, undefined> {\n if (consumed) {\n throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.')\n }\n consumed = true\n let done = false\n try {\n for await (const line of iterLines()) {\n if (done) continue\n if (line) {\n const message = JSON.parse(line)\n const event = message['event']\n if (event !== undefined) {\n await eventHandler(event)\n } else {\n yield message\n }\n }\n }\n done = true\n } catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (e instanceof Error && e.name === 'AbortError') return\n throw e\n } finally {\n // If the user `break`s, abort the ongoing request.\n if (!done) controller.abort()\n }\n }\n\n return iterator()\n }\n\n [Symbol.asyncIterator](): AsyncIterator<Prediction> {\n return this.iterator()\n }\n\n /**\n * Splits the stream into two streams which can be\n * independently read from at different speeds.\n */\n tee(): [Stream<Prediction>, Stream<Prediction>] {\n const left: Array<Promise<IteratorResult<Prediction>>> = []\n const right: Array<Promise<IteratorResult<Prediction>>> = []\n const iterator = this.iterator()\n\n const teeIterator = (queue: Array<Promise<IteratorResult<Prediction>>>): AsyncIterator<Prediction> => {\n return {\n next: () => {\n if (queue.length === 0) {\n const result = iterator.next()\n left.push(result)\n right.push(result)\n }\n return queue.shift()!\n },\n }\n }\n\n return [new Stream(() => teeIterator(left), this.controller), new Stream(() => teeIterator(right), this.controller)]\n }\n}\n\n/**\n * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally\n * reading lines from text.\n *\n * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258\n */\nexport class EyepopLineDecoder {\n // prettier-ignore\n static NEWLINE_CHARS = new Set(['\\n', '\\r', '\\x0b', '\\x0c', '\\x1c', '\\x1d', '\\x1e', '\\x85', '\\u2028', '\\u2029']);\n static NEWLINE_REGEXP = /\\r\\n|[\\n\\r\\x0b\\x0c\\x1c\\x1d\\x1e\\x85\\u2028\\u2029]/g\n\n buffer: string[]\n trailingCR: boolean\n textDecoder: any // TextDecoder found in browsers; not typed to avoid pulling in either \"dom\" or \"node\" types.\n\n constructor() {\n this.buffer = []\n this.trailingCR = false\n }\n\n decode(chunk: Bytes): string[] {\n let text = this.decodeText(chunk)\n\n if (this.trailingCR) {\n text = '\\r' + text\n this.trailingCR = false\n }\n if (text.endsWith('\\r')) {\n this.trailingCR = true\n text = text.slice(0, -1)\n }\n\n if (!text) {\n return []\n }\n\n const trailingNewline = EyepopLineDecoder.NEWLINE_CHARS.has(text[text.length - 1] || '')\n let lines = text.split(EyepopLineDecoder.NEWLINE_REGEXP)\n\n if (lines.length === 1 && !trailingNewline) {\n this.buffer.push(lines[0]!)\n return []\n }\n\n if (this.buffer.length > 0) {\n lines = [this.buffer.join('') + lines[0], ...lines.slice(1)]\n this.buffer = []\n }\n\n if (!trailingNewline) {\n this.buffer = [lines.pop() || '']\n }\n\n return lines\n }\n\n decodeText(bytes: Bytes): string {\n if (bytes == null) return ''\n if (typeof bytes === 'string') return bytes\n\n // Node:\n if (typeof Buffer !== 'undefined') {\n if (bytes instanceof Buffer) {\n return bytes.toString()\n }\n if (bytes instanceof Uint8Array) {\n return Buffer.from(bytes).toString()\n }\n\n throw new Error(\n `Unexpected: received non-Uint8Array (${bytes.constructor.name}) stream chunk in an environment with a global \"Buffer\" defined, which this library assumes to be Node. Please report this error.`,\n )\n }\n\n // Browser\n if (typeof TextDecoder !== 'undefined') {\n if (bytes instanceof Uint8Array || bytes instanceof ArrayBuffer) {\n this.textDecoder ??= new TextDecoder('utf8')\n return this.textDecoder.decode(bytes)\n }\n\n throw new Error(`Unexpected: received non-Uint8Array/ArrayBuffer (${(bytes as any).constructor.name}) in a web platform. Please report this error.`)\n }\n\n throw new Error(`Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.`)\n }\n\n flush(): string[] {\n if (!this.buffer.length && !this.trailingCR) {\n return []\n }\n\n const lines = [this.buffer.join('')]\n this.buffer = []\n this.trailingCR = false\n return lines\n }\n}\n\n/**\n * Most browsers don't yet have async iterable support for ReadableStream,\n * and Node has a very different way of reading bytes from its \"ReadableStream\".\n *\n * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490\n */\nfunction readableStreamAsyncIterable<T>(stream: any): AsyncIterableIterator<T> {\n if (stream[Symbol.asyncIterator]) {\n return stream[Symbol.asyncIterator]()\n }\n\n const reader = stream.getReader()\n\n return {\n async next() {\n try {\n const result = await reader.read()\n if (result?.done) reader.releaseLock() // release lock when stream becomes closed\n return result\n } catch (e) {\n reader.releaseLock() // release lock when stream becomes errored\n throw e\n }\n },\n async return() {\n const cancelPromise = reader.cancel()\n reader.releaseLock()\n await cancelPromise\n return { done: true, value: undefined }\n },\n [Symbol.asyncIterator]() {\n return this\n },\n }\n}\nexport function readableStreamFromString(s: string) : ReadableStream<Uint8Array> {\n return new ReadableStream({\n start(controller) {\n controller.enqueue(Buffer.from(s));\n controller.close();\n }\n });\n}","import { Prediction, Session } from '../types'\nimport { Area } from 'EyePop/data/data_types'\n\nexport enum PredictionVersion {\n V1 = 1,\n V2 = 2,\n}\n\nexport const DEFAULT_PREDICTION_VERSION: PredictionVersion = PredictionVersion.V2\n\nexport interface WorkerSession extends Session {\n readonly popId: string\n readonly baseUrl: string | undefined\n readonly pipelineId: string | undefined\n authenticationHeaders(): any\n}\n\nexport enum VideoMode {\n STREAM = 'stream',\n BUFFER = 'buffer',\n}\n\nexport interface FileSource {\n readonly file: File\n readonly videoMode?: VideoMode | undefined\n}\n\nexport interface StreamSource {\n readonly stream: ReadableStream<Uint8Array> | Blob | BufferSource\n readonly mimeType: string\n readonly size?: number | undefined\n readonly videoMode?: VideoMode | undefined\n}\n\nexport interface PathSource {\n readonly path: string\n readonly mimeType?: string | undefined\n readonly videoMode?: VideoMode | undefined\n}\n\nexport interface MediaStreamSource {\n readonly mediaStream: MediaStream\n}\n\nexport interface UrlSource {\n readonly url: string\n}\n\nexport interface AssetUuidSource {\n readonly assetUuid: string\n}\n\nexport type Source = FileSource | StreamSource | PathSource | UrlSource | AssetUuidSource | MediaStreamSource\n\nexport interface ResultStream extends AsyncIterable<Prediction> {\n cancel(): void\n}\n\n// Pop definition types\n\nexport enum PopComponentType {\n FORWARD = 'forward',\n INFERENCE = 'inference',\n // backward compatibility, for serialized pops < 3.0.0\n TRACING = 'tracing',\n // since 3.0.0\n TRACKING = 'tracking',\n CONTOUR_FINDER = 'contour_finder',\n COMPONENT_FINDER = 'component_finder',\n}\n\nexport enum ForwardOperatorType {\n FULL = 'full',\n CROP = 'crop',\n CROP_WITH_FULL_FALLBACK = 'crop_with_full_fallback',\n}\n\nexport interface PopCrop {\n maxItems?: number\n boxPadding?: number\n orientationTargetAngle?: number\n}\n\nexport interface PopForwardOperator {\n type: ForwardOperatorType\n includeClasses?: string[]\n crop?: PopCrop\n}\n\nexport interface PopForward {\n operator?: PopForwardOperator\n targets: PopComponent[]\n}\nexport interface BaseComponent {\n type: PopComponentType\n id?: number\n forward?: PopForward\n}\n\nexport interface ForwardComponent extends BaseComponent {}\n\nexport enum InferenceType {\n IMAGE_CLASSIFICATION = 'image_classification',\n OBJECT_DETECTION = 'object_detection',\n KEY_POINTS = 'key_points',\n OCR = 'ocr',\n MESH = 'mesh',\n FEATURE_VECTOR = 'feature_vector',\n SEMANTIC_SEGMENTATION = 'semantic_segmentation',\n SEGMENTATION = 'segmentation',\n}\n\nexport interface InferenceComponent extends BaseComponent {\n inferenceTypes?: InferenceType[]\n hidden?: boolean\n modelUuid?: string\n model?: string\n abilityUuid?: string\n ability?: string\n categoryName?: string\n confidenceThreshold?: number\n topK?: number\n topKClasses?: number\n targetFps?: string\n videoChunkLengthSeconds?: number\n videoChunkOverlap?: number\n params?: { [index: string]: any }\n}\n\nexport enum MotionModel {\n RANDOM_WALK = 'random_walk',\n CONSTANT_VELOCITY = 'constant_velocity',\n CONSTANT_ACCELERATION = 'constant_acceleration',\n}\n\nexport interface TrackingComponent extends BaseComponent {\n reidModelUuid?: string\n reidModel?: string\n maxAgeSeconds?: number\n iouThreshold?: number\n simThreshold?: number\n agnostic?: boolean\n processNoisePosition?: number\n processNoiseVelocity?: number\n processNoiseAcceleration?: number\n processNoiseScale?: number\n processNoiseAspectRatio?: number\n measurementNoiseCx?: number\n measurementNoiseCy?: number\n measurementNoiseArea?: number\n measurementNoiseAspectRatio?: number\n motionModel?: MotionModel\n downweightLowConfidenceDetections?: boolean\n classBeta?: number\n classGamma?: number\n classHysteresis?: boolean\n classHysteresisHighThreshold?: number\n classHysteresisLowThreshold?: number\n classHysteresisMinHoldFrames?: number\n classHysteresisAllowedClasses?: string[]\n}\n\nexport enum ContourType {\n ALL_PIXELS = 'all_pixels',\n POLYGON = 'polygon',\n CONVEX_HULL = 'convex_hull',\n HOUGH_CIRCLES = 'hough_circles',\n CIRCLE = 'circle',\n TRIANGLE = 'triangle',\n RECTANGLE = 'rectangle',\n}\n\nexport interface ContourFinderComponent extends BaseComponent {\n contourType: ContourType\n areaThreshold?: number\n}\n\nexport interface ComponentFinderComponent extends BaseComponent {\n dilate?: number\n erode?: number\n keepSource?: boolean\n componentClassLabel?: string\n}\n\nexport type PopComponent = ForwardComponent | InferenceComponent | TrackingComponent | ContourFinderComponent | ComponentFinderComponent\n\nexport interface Pop {\n components: PopComponent[]\n postTransform?: string\n}\n\nexport interface MotionDetectConfig {\n motionDetect: boolean\n motionSensitivity?: number\n motionThreshold?: number\n motionGap?: number\n motionGridX?: number\n motionGridY?: number\n}\n\nexport interface ComponentParams {\n componentId: number\n values: { [index: string]: any }\n}\n\nexport interface ProcessParams {\n componentParams?: ComponentParams[] | undefined\n motionDetect?: MotionDetectConfig | undefined\n roi?: Area | undefined\n fps?: string | undefined\n}\n\nexport interface ProcessRequest extends ProcessParams {\n source: Source\n}","import { v4 as uuidv4 } from 'uuid'\nimport { Logger } from 'pino'\nimport { WebrtcBase } from './webrtc_base'\nimport { WorkerSession } from '../worker/worker_types'\nimport { HttpClient } from '../options'\n\nexport class WebrtcWhip extends WebrtcBase {\n private _stream: MediaStream | null\n constructor(stream: MediaStream, getSession: () => Promise<WorkerSession>, client: HttpClient, is_pipeline_direct: boolean, requestLogger: Logger) {\n super(getSession, client, uuidv4().toString(), 'liveIngress/whip', is_pipeline_direct, requestLogger)\n this._stream = stream\n }\n public async start(): Promise<WebrtcWhip> {\n const session = await this._getSession()\n\n const ingressUrl = this.gresUrl(session)\n\n /* According to https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html\n this should be a `OPTIONS` request. Unfortunately a lot of CORS middlewares\n hijack the OPTIONS request and only return those headers that are necessary\n for the CORS preflight protocol.\n As workaround, our media endpoint expose a equivalent `GET` request to fake\n the `OPTIONS` request and bypass the CORS preflight trap\n */\n const response = await this._client.fetch(ingressUrl, {\n headers: session.authenticationHeaders(),\n method: 'GET',\n })\n if (response.status >= 300) {\n return Promise.reject(`unknown status code for GET '${ingressUrl}': ${response.status} (${response.statusText})`)\n }\n return await this.onIceServers(response)\n }\n\n public async stream(): Promise<MediaStream> {\n if (this._stream) {\n return Promise.resolve(this._stream)\n } else {\n return Promise.reject('fetching stream failed')\n }\n }\n\n protected async onRemoteAnswer(answer: RTCSessionDescription): Promise<WebrtcBase> {\n if (!this._pc) {\n throw new Error('onLocalOffer no peer connection')\n }\n await this._pc.setRemoteDescription(new RTCSessionDescription(answer))\n\n if (this._queuedCandidates.length !== 0) {\n await this.sendLocalCandidates(this._queuedCandidates)\n this._queuedCandidates = []\n }\n return this\n }\n\n private async onIceServers(response: Response): Promise<WebrtcWhip> {\n if (!this._stream) {\n throw new Error('onIceServers no stream')\n }\n const stream = this._stream\n const pc = new RTCPeerConnection({\n iceServers: WebrtcBase.linkToIceServers(response.headers.get('Link')),\n })\n\n this._pc = pc\n pc.onicecandidate = evt => this.onLocalCandidate(evt)\n\n return new Promise(async (resolve, reject) => {\n pc.oniceconnectionstatechange = () => {\n switch (pc.iceConnectionState) {\n case 'failed':\n case 'disconnected':\n reject(`peer connection: ${pc.iceConnectionState}`)\n break\n case 'connected':\n resolve(this)\n break\n }\n }\n stream.getTracks().forEach(track => {\n this._requestLogger.debug('onIceServers our stream has track: %s', track)\n pc.addTrack(track, stream)\n })\n stream.addEventListener('addtrack', trackEvent => {\n this._requestLogger.debug('onIceServers got lazy track: ', trackEvent.track)\n pc.addTrack(trackEvent.track, stream)\n })\n await this.onLocalOffer(await pc.createOffer())\n })\n }\n\n public override async close(): Promise<void> {\n const stream = this._stream\n this._stream = null\n if (stream) {\n const tracks = stream.getTracks()\n tracks.forEach(track => {\n track.stop()\n })\n }\n return super.close()\n }\n}\n","import { Logger } from 'pino'\nimport { WebrtcWhip } from './webrtc_whip'\nimport path from 'path'\nimport { WorkerSession } from '../worker/worker_types'\nimport { HttpClient } from '../options'\n\ninterface OfferData {\n iceUfrag: string\n icePwd: string\n medias: string[]\n}\nexport abstract class WebrtcBase {\n protected readonly _getSession: () => Promise<WorkerSession>\n protected readonly _client: HttpClient\n protected readonly _requestLogger: Logger\n protected readonly _urlPath: string\n protected readonly _is_pipeline_direct: boolean\n\n private readonly _ingressId: string\n\n private _location: string | null\n\n protected _pc: RTCPeerConnection | null\n protected _eTag: string\n protected _queuedCandidates: RTCIceCandidate[]\n protected _offerData: OfferData | null\n\n protected constructor(getSession: () => Promise<WorkerSession>, client: HttpClient, ingressId: string, urlBasePath: string, is_pipeline_direct: boolean, requestLogger: Logger) {\n this._getSession = getSession\n this._client = client\n this._requestLogger = requestLogger\n this._ingressId = ingressId\n this._urlPath = `${urlBasePath}/${this._ingressId}`\n this._is_pipeline_direct = is_pipeline_direct\n this._pc = null\n this._eTag = ''\n this._location = null\n this._queuedCandidates = []\n this._offerData = null\n }\n\n public async close(): Promise<void> {\n const pc = this._pc\n this._pc = null\n if (pc) {\n return pc.close()\n }\n }\n\n public ingressId(): string {\n return this._ingressId\n }\n\n protected gresUrl(session: WorkerSession, location: string | null = null): URL {\n let urlPath\n if (this._is_pipeline_direct) {\n if (!session.pipelineId) {\n throw new Error('cannot connect with is_pipeline_direct=true but !session.pipelineId')\n }\n urlPath = path.join('pipelines', session.pipelineId, this._urlPath)\n } else {\n urlPath = this._urlPath\n }\n if (location) {\n urlPath = path.join(urlPath, location)\n }\n let baseUrl\n if (session.baseUrl?.endsWith('/')) {\n baseUrl = session.baseUrl\n } else {\n baseUrl = session.baseUrl + '/'\n }\n return new URL(urlPath, baseUrl)\n }\n\n protected async onLocalOffer(offer: RTCSessionDescriptionInit): Promise<WebrtcBase> {\n if (!this._pc) {\n throw new Error('onLocalOffer no peer connection')\n }\n if (!offer.sdp) {\n throw new Error('onLocalOffer no sdp')\n }\n this._offerData = WebrtcBase.parseOffer(offer.sdp)\n await this._pc.setLocalDescription(offer)\n\n const session = await this._getSession()\n const ingressUrl = this.gresUrl(session)\n\n const headers = {\n ...session.authenticationHeaders(),\n 'Content-Type': 'application/sdp',\n }\n const response = await this._client.fetch(ingressUrl, {\n headers: headers,\n method: 'POST',\n body: offer.sdp,\n })\n if (response.status >= 300) {\n return Promise.reject(`unknown status code for POST '${ingressUrl}': ${response.status} (${response.statusText})`)\n }\n this._eTag = response.headers.get('ETag') ?? ''\n this._location = response.headers.get('Location')\n return await this.onRemoteAnswer(new RTCSessionDescription({\n type: 'answer',\n sdp: await response.text()\n }))\n }\n\n protected abstract onRemoteAnswer(answer: RTCSessionDescription): Promise<WebrtcBase>\n\n protected async sendLocalCandidates(candidates: RTCIceCandidate[]): Promise<WebrtcBase> {\n if (!this._offerData) {\n throw new Error('sendLocalCandidates no offerData')\n }\n\n const session = await this._getSession()\n const ingressUrl = this.gresUrl(session, this._location)\n\n const headers = {\n ...session.authenticationHeaders(),\n 'Content-Type': 'application/trickle-ice-sdpfrag',\n 'If-Match': this._eTag,\n }\n const response = await this._client.fetch(ingressUrl, {\n headers: headers,\n method: 'PATCH',\n body: WebrtcBase.generateSdpFragment(this._offerData, candidates),\n })\n if (response.status >= 300) {\n return Promise.reject(`unknown status code for PATCH '${ingressUrl}': ${response.status} (${response.statusText})`)\n }\n return this\n }\n\n protected async onLocalCandidate(evt: RTCPeerConnectionIceEvent): Promise<WebrtcBase> {\n if (evt.candidate !== null) {\n if (this._eTag === '') {\n this._queuedCandidates.push(evt.candidate)\n } else {\n await this.sendLocalCandidates([evt.candidate])\n }\n }\n return this\n }\n\n static linkToIceServers(links: string | null): RTCIceServer[] {\n const servers =\n links !== null\n ? links.split(', ').map(link => {\n // backward compatible to MEDIAMTX using <...>\n let m = link.match(/^<(.+?)>; rel=\"ice-server\"(; username=\"(.*?)\"; credential=\"(.*?)\"; credential-type=\"password\")?/i);\n if (!m) {\n m = link.match(/^(.+?); rel=\"ice-server\"(; username=\"(.*?)\"; credential=\"(.*?)\"; credential-type=\"password\")?/i);\n }\n if (!m) {\n return null\n }\n const iceServer: RTCIceServer = {\n urls: [m[1]] as string[],\n username: WebrtcWhip.unquoteCredential(m[3]),\n credential: WebrtcWhip.unquoteCredential(m[4]),\n // credentialType: m[3]? \"password\" : undefined\n }\n return iceServer\n })\n : []\n return <RTCIceServer[]>servers.filter(function (el: null | RTCIceServer) {\n return el != null\n })\n }\n\n protected static editAnswer(answer: string, videoCodec: string, audioCodec: string | undefined, videoBitrate: number, audioBitrate: number | undefined, audioVoice: boolean): string {\n const sections = answer.split('m=')\n\n for (let i = 0; i < sections.length; i++) {\n const section = sections[i]\n if (section && section.startsWith('video')) {\n sections[i] = WebrtcWhip.setVideoBitrate(WebrtcWhip.setCodec(section, videoCodec), videoBitrate)\n } else if (section && section.startsWith('audio')) {\n sections[i] = WebrtcWhip.setAudioBitrate(WebrtcWhip.setCodec(section, audioCodec), audioBitrate, audioVoice)\n }\n }\n\n return sections.join('m=')\n }\n\n private static setCodec(section: string, codec: string | undefined): string {\n const lines = section.split('\\r\\n')\n const lines2 = []\n const payloadFormats = []\n\n for (const line of lines) {\n if (!line.startsWith('a=rtpmap:')) {\n lines2.push(line)\n } else {\n if (codec && line.toLowerCase().includes(codec)) {\n payloadFormats.push(line.slice('a=rtpmap:'.length).split(' ')[0])\n lines2.push(line)\n }\n }\n }\n\n const lines3 = []\n\n for (const line of lines2) {\n if (line.startsWith('a=fmtp:')) {\n if (payloadFormats.includes(line.slice('a=fmtp:'.length).split(' ')[0])) {\n lines3.push(line)\n }\n } else if (line.startsWith('a=rtcp-fb:')) {\n if (payloadFormats.includes(line.slice('a=rtcp-fb:'.length).split(' ')[0])) {\n lines3.push(line)\n }\n } else {\n lines3.push(line)\n }\n }\n\n return lines3.join('\\r\\n')\n }\n\n private static setVideoBitrate(section: string, bitrate: number): string {\n let lines = section.split('\\r\\n')\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i]\n if (!line) {\n continue\n }\n if (line.startsWith('c=')) {\n lines = [...lines.slice(0, i + 1), 'b=TIAS:' + (bitrate * 1024).toString(), ...lines.slice(i + 1)]\n break\n }\n }\n\n return lines.join('\\r\\n')\n }\n\n private static setAudioBitrate(section: string, bitrate: number | undefined, voice: boolean) {\n let opusPayloadFormat = ''\n let lines: string[] = section.split('\\r\\n')\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i]\n if (!line) {\n continue\n }\n if (line.startsWith('a=rtpmap:') && line.toLowerCase().includes('opus/')) {\n opusPayloadFormat = line.slice('a=rtpmap:'.length).split(' ')[0] || ''\n break\n }\n }\n\n if (opusPayloadFormat === '') {\n return section\n }\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i]\n if (!line) {\n continue\n }\n if (line.startsWith('a=fmtp:' + opusPayloadFormat + ' ')) {\n if (voice) {\n lines[i] = 'a=fmtp:' + opusPayloadFormat + ' minptime=10;useinbandfec=1;maxaveragebitrate=' + ((bitrate ?? 0) * 1024).toString()\n } else {\n lines[i] = 'a=fmtp:' + opusPayloadFormat + ' maxplaybackrate=48000;stereo=1;sprop-stereo=1;maxaveragebitrate' + ((bitrate ?? 0) * 1024).toString()\n }\n }\n }\n\n return lines.join('\\r\\n')\n }\n\n static parseOffer(offer: string): OfferData {\n let medias = []\n let iceUfrag = ''\n let icePwd = ''\n\n for (const line of offer.split('\\r\\n')) {\n if (line.startsWith('m=')) {\n medias.push(line.slice('m='.length))\n } else if (iceUfrag === '' && line.startsWith('a=ice-ufrag:')) {\n iceUfrag = line.slice('a=ice-ufrag:'.length)\n } else if (icePwd === '' && line.startsWith('a=ice-pwd:')) {\n icePwd = line.slice('a=ice-pwd:'.length)\n }\n }\n\n return {\n iceUfrag: iceUfrag,\n icePwd: icePwd,\n medias: medias,\n }\n }\n\n static generateSdpFragment(offerData: OfferData, candidates: RTCIceCandidate[]) {\n const candidatesByMedia = new Map<number, RTCIceCandidate[]>()\n for (const candidate of candidates) {\n if (candidate.sdpMLineIndex !== null) {\n const mid = candidate.sdpMLineIndex\n let matched = candidatesByMedia.get(mid)\n if (matched === undefined) {\n matched = []\n candidatesByMedia.set(mid, matched)\n }\n matched.push(candidate)\n }\n }\n\n let frag = 'a=ice-ufrag:' + offerData.iceUfrag + '\\r\\n' + 'a=ice-pwd:' + offerData.icePwd + '\\r\\n'\n let mid = 0\n\n for (const media of offerData.medias) {\n let matched = candidatesByMedia.get(mid)\n if (matched !== undefined) {\n frag += 'm=' + media + '\\r\\n' + 'a=mid:' + mid + '\\r\\n'\n\n for (const candidate of matched) {\n frag += 'a=' + candidate.candidate + '\\r\\n'\n }\n }\n mid++\n }\n return frag\n }\n\n static unquoteCredential(v: string | undefined): string {\n if (!v) {\n return ''\n }\n return JSON.parse(`\"${v}\"`)\n }\n}\n","import { Prediction } from '../types'\nimport {Stream, StreamEvent, readableStreamFromString} from '../streaming'\nimport {Logger} from 'pino'\nimport { ComponentParams, DEFAULT_PREDICTION_VERSION, PredictionVersion, ProcessParams, ResultStream, VideoMode, WorkerSession } from '../worker/worker_types'\nimport { HttpClient } from '../options'\nimport {WebrtcWhip} from \"./webrtc_whip\";\nimport { Area } from 'EyePop/data/data_types'\n\nexport class AbstractJob implements ResultStream {\n protected _getSession: () => Promise<WorkerSession>\n\n protected _params: ProcessParams\n\n protected _responseStream: Promise<ReadableStream<Uint8Array>> | null = null\n protected _controller: AbortController = new AbortController()\n\n protected _client: HttpClient\n\n protected _requestLogger: Logger;\n\n protected _version: PredictionVersion;\n\n [Symbol.asyncIterator](): AsyncIterator<Prediction> {\n if (!this._responseStream) {\n throw Error('logical bug')\n }\n return Stream.iterFromReadableStream(this._responseStream, this._controller, async (event: StreamEvent) => {\n return await this.onEvent(event)\n })\n }\n\n protected constructor(\n params: ProcessParams,\n getSession: () => Promise<WorkerSession>,\n client: HttpClient, requestLogger: Logger,\n version: PredictionVersion = DEFAULT_PREDICTION_VERSION\n ) {\n this._getSession = getSession\n this._params = params\n this._client = client\n this._requestLogger = requestLogger\n this._version = version\n }\n\n protected async startJob(): Promise<Response> {\n return Promise.reject('abstract class')\n }\n\n protected async onEvent(event: StreamEvent): Promise<void> {\n if (event.type == \"error\") {\n return Promise.reject(`Error event for source ${event.source_id}: ${event.message}`)\n }\n return Promise.resolve()\n }\n\n static n: number = 0\n\n public start(done: () => void, status: (statusCode: number) => void): AbstractJob {\n this._responseStream = new Promise<ReadableStream<Uint8Array>>(async (resolve, reject) => {\n try {\n let retries = 1\n while (true) {\n try {\n const response = await this.startJob()\n if (response.status == 401) {\n status(response.status)\n if (retries--) {\n this._requestLogger.info('received 401 response, attempt to reauthorize once')\n } else {\n reject(`response ${response.status}: ${response.statusText}`)\n break\n }\n } else if (response.status == 404) {\n status(response.status)\n if (retries--) {\n this._requestLogger.info('received 404 response, attempt to restart pop')\n } else {\n reject(`response ${response.status}: ${response.statusText}`)\n break\n }\n } else if (!response.ok) {\n reject(`upload error ${response.status}: ${await response.text()}`)\n break\n } else if (response.body) {\n resolve(response.body)\n break\n } else {\n const text = await response.text();\n if (text) {\n resolve(readableStreamFromString(text));\n break\n } else {\n reject('response body is empty')\n break\n }\n }\n } catch (error) {\n if (retries--) {\n this._requestLogger.info('unknown, attempt to restart pop (as if we received 404)', error)\n status(404)\n } else {\n status(500)\n reject(error)\n break\n }\n }\n }\n } catch (reason) {\n reject(reason)\n } finally {\n done()\n }\n })\n return this\n }\n\n public cancel(): void {\n this._controller.abort('cancelled')\n }\n}\n\nexport class UploadJob extends AbstractJob {\n private readonly _uploadStream: ReadableStream<Uint8Array> | Blob | BufferSource\n private readonly _mimeType: string\n private readonly _size: number | undefined\n private readonly _needsFullDuplex: boolean\n private readonly _videoMode: VideoMode | undefined\n get [Symbol.toStringTag](): string {\n return 'uploadJob'\n }\n\n constructor(\n stream: ReadableStream<Uint8Array> | Blob | BufferSource,\n mimeType: string,\n size: number | undefined,\n videoMode: VideoMode | undefined,\n params: ProcessParams,\n getSession: () => Promise<WorkerSession>,\n client: HttpClient,\n requestLogger: Logger,\n ) {\n super(params, getSession, client, requestLogger)\n this._uploadStream = stream\n this._mimeType = mimeType\n this._size = size\n this._videoMode = videoMode\n this._needsFullDuplex = !client.isFullDuplex() && mimeType.startsWith('video/') && videoMode == VideoMode.STREAM\n }\n\n protected override async onEvent(event: StreamEvent): Promise<void> {\n if (event.type == 'prepared') {\n if (!event.source_id) {\n return Promise.reject('did not get a prepared sourceId to simulate full duplex')\n }\n const session = await this._getSession()\n if (!session.baseUrl) {\n return Promise.reject('session.baseUrl must not ne null')\n }\n let request\n const queryParams = new URLSearchParams({\n mode: 'queue',\n processing: 'async',\n sourceId: event.source_id,\n })\n if (this._videoMode !== undefined) {\n queryParams.set('videoMode', this._videoMode)\n }\n if (this._version !== undefined) {\n queryParams.set('version', this._version.toString())\n }\n if (this._params.motionDetect) {\n for (const [key, value] of Object.entries(this._params.motionDetect)) {\n queryParams.set(key, value)\n }\n }\n const postUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/source?${queryParams.toString()}`\n if (this._params.componentParams || this._params.roi) {\n const formData = new FormData()\n if (this._params.componentParams) {\n const blob = new Blob([JSON.stringify(this._params.componentParams)], { type: 'application/json' })\n formData.append('params', blob)\n }\n if (this._params.roi) {\n const blob = new Blob([JSON.stringify(this._params.roi)], { type: 'application/json' })\n formData.append('roi', blob)\n }\n if (this._params.fps) {\n const blob = new Blob([JSON.stringify(this._params.fps)], { type: 'application/json' })\n formData.append('fps', blob)\n }\n const fileBlob = await new Response(this._uploadStream).blob()\n formData.append('file', fileBlob)\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n }\n\n request = this._client.fetch(postUrl, {\n headers: headers,\n method: 'POST',\n body: formData,\n signal: this._controller.signal,\n // @ts-ignore\n duplex: 'half',\n eyepop: { responseStreaming: true },\n })\n } else {\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n 'Content-Type': this._mimeType,\n }\n if (this._size) {\n headers['Content-Length'] = `${this._size}`\n }\n request = this._client.fetch(postUrl, {\n headers: headers,\n method: 'POST',\n body: this._uploadStream,\n signal: this._controller.signal,\n // @ts-ignore\n duplex: 'half',\n eyepop: { responseStreaming: true },\n })\n }\n request\n .then(async value => {\n if (value.status != 204) {\n this._requestLogger.debug(`unexpected status ${value.status} (${await value.text()}) for POST ${postUrl}`)\n }\n })\n .catch(reason => {\n this._requestLogger.debug(`error ${reason} for POST ${postUrl}`)\n })\n }\n return Promise.resolve()\n }\n\n protected override async startJob(): Promise<Response> {\n const session = await this._getSession()\n if (!session.baseUrl) {\n return Promise.reject('session.baseUrl must not be null')\n }\n let response\n if (this._needsFullDuplex) {\n const prepareUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/prepareSource?timeout=10s`\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n }\n response = await this._client.fetch(prepareUrl, {\n headers: headers,\n method: 'POST',\n signal: this._controller.signal,\n // @ts-ignore\n duplex: 'half',\n eyepop: { responseStreaming: true },\n })\n } else {\n const queryParams = new URLSearchParams({\n mode: 'queue',\n processing: 'sync',\n })\n if (this._videoMode !== undefined) {\n queryParams.set('videoMode', this._videoMode)\n }\n if (this._version !== undefined) {\n queryParams.set('version', this._version.toString())\n }\n if (this._params.motionDetect) {\n for (const [key, value] of Object.entries(this._params.motionDetect)) {\n queryParams.set(key, value)\n }\n }\n const postUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/source?${queryParams.toString()}`\n if (this._params.componentParams || this._params.roi) {\n const formData = new FormData()\n if (this._params.componentParams) {\n const blob = new Blob([JSON.stringify(this._params.componentParams)], { type: 'application/json' })\n formData.append('params', blob)\n }\n if (this._params.roi) {\n const blob = new Blob([JSON.stringify(this._params.roi)], { type: 'application/json' })\n formData.append('roi', blob)\n }\n if (this._params.fps) {\n const blob = new Blob([JSON.stringify(this._params.fps)], { type: 'application/json' })\n formData.append('fps', blob)\n }\n const fileBlob = await new Response(this._uploadStream).blob()\n formData.append('file', fileBlob)\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n }\n\n response = await this._client.fetch(postUrl, {\n headers: headers,\n method: 'POST',\n body: formData,\n signal: this._controller.signal,\n // @ts-ignore\n duplex: 'half',\n eyepop: { responseStreaming: true },\n })\n } else {\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n 'Content-Type': this._mimeType,\n }\n if (this._size) {\n headers['Content-Length'] = `${this._size}`\n }\n response = await this._client.fetch(postUrl, {\n headers: headers,\n method: 'POST',\n body: this._uploadStream,\n signal: this._controller.signal,\n // @ts-ignore\n duplex: 'half',\n })\n }\n }\n return response\n }\n}\n\nexport class LoadFromJob extends AbstractJob {\n private readonly _location: string\n\n constructor(\n location: string,\n params: ProcessParams,\n getSession: () => Promise<WorkerSession>,\n client: HttpClient,\n requestLogger: Logger\n ) {\n super(params, getSession, client, requestLogger)\n this._location = location\n }\n\n get [Symbol.toStringTag](): string {\n return 'loadFromJob'\n }\n\n protected override async startJob(): Promise<Response> {\n const session = await this._getSession()\n if (!session.baseUrl) {\n return Promise.reject('session.baseUrl must not ne null')\n }\n const body = {\n sourceType: 'URL',\n url: this._location,\n params: this._params.componentParams,\n roi: this._params.roi,\n fps: this._params.fps,\n version: this._version,\n }\n if (this._params.motionDetect) {\n Object.assign(body, this._params.motionDetect)\n }\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n 'Content-Type': 'application/json',\n }\n const patchUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/source?mode=queue&processing=sync`\n return await this._client.fetch(patchUrl, {\n headers: headers,\n method: 'PATCH',\n body: JSON.stringify(body),\n signal: this._controller.signal,\n // @ts-ignore\n eyepop: { responseStreaming: true },\n })\n }\n}\n\nexport class LoadFromAssetUuidJob extends AbstractJob {\n private readonly _assetUuid: string\n\n constructor(\n assetUuid: string,\n params: ProcessParams,\n getSession: () => Promise<WorkerSession>,\n client: HttpClient,\n requestLogger: Logger\n ) {\n super(params, getSession, client, requestLogger)\n this._assetUuid = assetUuid\n }\n\n get [Symbol.toStringTag](): string {\n return 'loadFromAssetUuidJob'\n }\n\n protected override async startJob(): Promise<Response> {\n const session = await this._getSession()\n if (!session.baseUrl) {\n return Promise.reject('session.baseUrl must not ne null')\n }\n const body = {\n sourceType: 'ASSET_UUID',\n assetUuid: this._assetUuid,\n params: this._params.componentParams,\n roi: this._params.roi,\n fps: this._params.fps,\n version: this._version,\n }\n if (this._params.motionDetect) {\n Object.assign(body, this._params.motionDetect)\n }\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n 'Content-Type': 'application/json',\n }\n const patchUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/source?mode=queue&processing=sync`\n return await this._client.fetch(patchUrl, {\n headers: headers,\n method: 'PATCH',\n body: JSON.stringify(body),\n signal: this._controller.signal,\n // @ts-ignore\n eyepop: { responseStreaming: true },\n })\n }\n}\n\nexport class LoadMediaStreamJob extends AbstractJob {\n private readonly _mediaStream: MediaStream\n\n constructor(\n mediaStream: MediaStream,\n params: ProcessParams,\n getSession: () => Promise<WorkerSession>,\n client: HttpClient,\n requestLogger: Logger\n ) {\n super(params, getSession, client, requestLogger)\n this._mediaStream = mediaStream\n }\n\n get [Symbol.toStringTag](): string {\n return 'loadLiveIngressJob'\n }\n\n protected override async startJob(): Promise<Response> {\n const session = await this._getSession()\n if (!session.baseUrl) {\n return Promise.reject('session.baseUrl must not ne null')\n }\n\n const whip = new WebrtcWhip(\n this._mediaStream,\n async () => {\n return session\n },\n this._client,\n true,\n this._requestLogger,\n )\n\n whip.start()\n .then(_ => {\n this._requestLogger.debug('direct whip for ingressId=%s successful', whip.ingressId())\n })\n .catch((reason: any) => {\n this._controller.abort(reason)\n })\n\n const body = {\n sourceType: 'WHIP',\n whipIngressId: whip.ingressId(),\n params: this._params.componentParams,\n roi: this._params.roi,\n fps: this._params.fps,\n version: this._version,\n }\n if (this._params.motionDetect) {\n Object.assign(body, this._params.motionDetect)\n }\n const headers = {\n ...session.authenticationHeaders(),\n Accept: 'application/jsonl',\n 'Content-Type': 'application/json',\n }\n const patchUrl: string = `${session.baseUrl.replace(/\\/+$/, '')}/pipelines/${session.pipelineId}/source?mode=preempt&processing=sync`\n return await this._client.fetch(patchUrl, {\n headers: headers,\n method: 'PATCH',\n body: JSON.stringify(body),\n signal: this._controller.signal,\n // @ts-ignore\n eyepop: { responseStreaming: true },\n })\n }\n}\n","\nimport * as fs from 'node:fs'\nimport { PathSource, StreamSource } from '../index'\nimport { Logger } from 'pino'\n\nexport let resolvePath: (source: PathSource, logger: Logger) => Promise<StreamSource>\n\nif ('document' in globalThis && 'implementation' in globalThis.document) {\n resolvePath = async (_source: PathSource, _logger: Logger) => {\n throw new DOMException('resolving a path to a file is not supported in browser')\n }\n} else {\n /**\n * From https://github.com/MattMorgis/async-stream-generator\n */\n async function* nodeStreamToIterator(stream: fs.ReadStream) {\n for await (const chunk of stream) {\n yield chunk\n }\n }\n /**\n * Taken from Next.js doc\n * https://nextjs.org/docs/app/building-your-application/routing/router-handlers#streaming\n * Itself taken from mozilla doc\n * https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream#convert_async_iterator_to_stream\n * @param {*} iterator\n * @returns {ReadableStream}\n */\n function iteratorToStream(iterator: AsyncGenerator<any>) {\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await iterator.next()\n\n if (done) {\n controller.close()\n } else {\n controller.enqueue(new Uint8Array(value))\n }\n },\n })\n }\n resolvePath = async (source: PathSource, _: Logger) => {\n const mime = require('mime-types')\n const filehandle = require('node:fs/promises')\n const fd = await filehandle.open(source.path, 'r')\n const stream = fd.createReadStream()\n const iterator = nodeStreamToIterator(stream)\n const webStream = iteratorToStream(iterator)\n\n const mimeType = source.mimeType? source.mimeType : (mime.lookup(source.path) || 'image/*')\n return {\n stream: webStream,\n mimeType: mimeType,\n }\n }\n}\n","import { Logger } from 'pino'\nimport { HttpClient } from '../options'\n\nexport let createHttpClient: (logger: Logger) => Promise<HttpClient>\n\nfunction logLineFromRequest(input: RequestInfo | URL, init?: RequestInit): string {\n const url = input instanceof Request? input.url : input;\n const method = (input instanceof Request)? input.method : (init?.method || (init?.body !== undefined? 'POST': 'GET'));\n return `${method} ${url}`;\n}\n\nif ('document' in globalThis && 'implementation' in globalThis.document) {\n class BrowserHttpClient {\n private readonly _logger: Logger\n constructor(logger: Logger) {\n this._logger = logger;\n }\n\n public async fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {\n const logLine = logLineFromRequest(input, init);\n this._logger.debug(`Browser fetch() BEFORE ${logLine}`)\n const response = await fetch(input, init)\n this._logger.debug(`AFTER ${logLine} -> ${response.status}`)\n return response;\n }\n\n public async close(): Promise<void> {}\n public isFullDuplex() {\n return false\n }\n }\n\n createHttpClient = async (logger: Logger) => {\n return new BrowserHttpClient(logger)\n }\n} else {\n class NodeHttpClient {\n private readonly _agent: any\n private readonly _logger: Logger\n constructor(agent: any, logger: Logger) {\n this._agent = agent\n this._logger = logger;\n }\n\n public async fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {\n init ||= {}\n // @ts-ignore\n init.dispatcher = this._agent\n const logLine = logLineFromRequest(input, init);\n this._logger.debug(`Node fetch() BEFORE ${logLine}`)\n const response = await fetch(input, init)\n this._logger.debug(`AFTER ${logLine} -> ${response.status}`)\n return response;\n }\n\n public async close(): Promise<void> {\n return this._agent.close()\n }\n public isFullDuplex() {\n return false\n }\n }\n\n createHttpClient = async (logger: Logger) => {\n const undici = require('undici')\n const agent = new undici.Agent({\n keepAliveTimeout: 10000,\n connections: 5,\n // two parallel streaming requests to the same host seem to deadlock with pipelining > 0\n pipelining: 0,\n })\n logger.debug('Using node fetch with undici agent as http client')\n return new NodeHttpClient(agent, logger)\n }\n}\n","/** Semaphores are initialized with a number of permits that get aquired and released\n * over the lifecycle of the semaphore. These permits limit the number of simultaneous\n * executions of the code that the semaphore synchronizes. Functions can wait on a semaphore\n * and stop executing until a permit becomes available.\n *\n * Locks are a special case of semaphores that only allow one execution of a critical section.\n * If you need a lock, you can import the Lock class from this package.\n *\n * This Semaphore class is implemented with the help of promises that get returned\n * by functions that wait for permits to become available. This makes it possible\n * to use async/await to synchronize your code.\n */\nexport class Semaphore {\n private permits: number\n private promiseResolverQueue: Array<(v: boolean) => void> = []\n\n /**\n * Creates a semaphore.\n * @param permits The number of permits, i.e. strands of execution being allowed\n * to run in parallel.\n * This number can be initialized with a negative integer.\n */\n constructor(permits: number) {\n this.permits = permits\n }\n\n /**\n * Returns the number of available permits.\n * @returns The number of available permits.\n */\n public getPermits(): number {\n return this.permits\n }\n\n /**\n * Returns a promise used to wait for a permit to become available. This method should be awaited on.\n * @returns A promise that gets resolved when execution is allowed to proceed.\n */\n public async wait(): Promise<boolean> {\n if (this.permits > 0) {\n this.permits -= 1\n return Promise.resolve(true)\n }\n\n // If there is no permit available, we return a promise that resolves once the semaphore gets\n // signaled enough times that permits is equal to one.\n return new Promise<boolean>(resolver => this.promiseResolverQueue.push(resolver))\n }\n\n /**\n * Alias for {@linkcode Semaphore.wait}.\n * @returns A promise that gets resolved when execution is allowed to proceed.\n */\n public async acquire(): Promise<boolean> {\n return this.wait()\n }\n\n /**\n * Same as {@linkcode Semaphore.wait} except the promise returned gets resolved with false if no\n * permit becomes available in time.\n * @param milliseconds The time spent waiting before the wait is aborted. This is a lower bound,\n * you shouldn't rely on it being precise.\n * @returns A promise that gets resolved to true when execution is allowed to proceed or\n * false if the time given elapses before a permit becomes available.\n */\n public async waitFor(milliseconds: number): Promise<boolean> {\n if (this.permits > 0) {\n this.permits -= 1\n return Promise.resolve(true)\n }\n\n // We save the resolver function in the current scope so that we can resolve the promise\n // to false if the time expires.\n let resolver: (v: boolean) => void = _ => void 0\n const promise = new Promise<boolean>(r => {\n resolver = r\n })\n\n // The saved resolver gets added to our list of promise resolvers so that it gets a chance\n // to be resolved as a result of a call to signal().\n this.promiseResolverQueue.push(resolver)\n\n setTimeout(() => {\n // We have to remove the promise resolver from our list. Resolving it twice would not be\n // an issue but signal() always takes the next resolver from the queue and resolves it which\n // would swallow a permit if we didn't remove it.\n const index = this.promiseResolverQueue.indexOf(resolver)\n if (index !== -1) {\n this.promiseResolverQueue.splice(index, 1)\n } else {\n // This shouldn't happen, not much we can do at this point\n console.warn(`Semaphore.waitFor couldn't find its promise resolver in the queue`)\n }\n\n // false because the wait was unsuccessful.\n resolver(false)\n }, milliseconds)\n\n return promise\n }\n\n /**\n * Synchronous function that tries to acquire a permit and returns true if successful, false otherwise.\n * @returns Whether a permit could be acquired.\n */\n public tryAcquire(): boolean {\n if (this.permits > 0) {\n this.permits -= 1\n return true\n }\n\n return false\n }\n\n /**\n * Acquires all permits that are currently available and returns the number of acquired permits.\n * @returns Number of acquired permits.\n */\n public drainPermits(): number {\n if (this.permits > 0) {\n const permitCount = this.permits\n this.permits = 0\n return permitCount\n }\n\n return 0\n }\n\n /**\n * Increases the number of permits by one. If there are other functions waiting, one of them will\n * continue to execute in a future iteration of the event loop.\n */\n public signal(): void {\n this.permits += 1\n\n if (this.permits > 1 && this.promiseResolverQueue.length > 0) {\n console.warn('Semaphore.permits should never be > 0 when there is someone waiting.')\n } else if (this.permits === 1 && this.promiseResolverQueue.length > 0) {\n // If there is someone else waiting, immediately consume the permit that was released\n // at the beginning of this function and let the waiting function resume.\n this.permits -= 1\n\n const nextResolver = this.promiseResolverQueue.shift()\n if (nextResolver) {\n nextResolver(true)\n }\n }\n }\n\n /**\n * Alias for {@linkcode Semaphore.signal}.\n */\n public release(): void {\n this.signal()\n }\n\n /**\n * Schedules func to be called once a permit becomes available.\n * Returns a promise that resolves to the return value of func.\n * @typeparam T The return type of func.\n * @param func The function to be executed.\n * @return A promise that gets resolved with the return value of the function.\n */\n public async execute<T>(func: () => T | PromiseLike<T>): Promise<T> {\n await this.wait()\n try {\n return await func()\n } finally {\n this.signal()\n }\n }\n}\n","import { Auth0Options, HttpClient, LocalAuth, OAuth2Auth, Options, ApiKeyAuth, SessionAuth } from './options'\nimport { EndpointState, Session } from './types'\nimport { createHttpClient } from './shims/http_client'\nimport { Semaphore } from './semaphore'\n\nimport { Logger, pino } from 'pino'\nimport { authenticateBrowserSession } from './shims/browser_session'\n\ninterface AccessToken {\n access_token: string\n expires_in: number\n token_type: string\n}\n\nexport class Endpoint<T extends Endpoint<T>> {\n protected _options: Options\n private _token: string | null\n private _expire_token_time: number | null\n\n protected _client: HttpClient | null\n private _statusRetryHandlers: Map<number, Function>\n\n protected _limit: Semaphore\n private _state: EndpointState\n private _message: null | string\n private _stateChangeHandler: null | ((fromState: EndpointState, toState: EndpointState) => void)\n\n protected _logger: Logger\n protected readonly _requestLogger: Logger\n\n constructor(options: Options) {\n this._options = options\n this._token = null\n this._expire_token_time = null\n this._client = null\n this._statusRetryHandlers = new Map()\n this._statusRetryHandlers.set(401, this.statusHandler401)\n\n this._limit = new Semaphore(this._options.jobQueueLength ?? 1024)\n this._state = EndpointState.Idle\n this._message = null\n this._stateChangeHandler = null\n\n let rootLogger\n if (options.logger) {\n rootLogger = options.logger\n } else {\n rootLogger = pino()\n }\n this._logger = rootLogger.child({ module: 'eyepop' })\n this._requestLogger = this._logger.child({ module: 'requests' })\n }\n\n protected setStatusRetryHandlers(statusRetryHandlers: Map<number, Function> | undefined = undefined) {\n this._statusRetryHandlers = new Map(statusRetryHandlers)\n this._statusRetryHandlers.set(401, this.statusHandler401)\n }\n\n public eyepopUrl(): string {\n if (this._options.eyepopUrl) {\n return this._options.eyepopUrl.replace(/\\/+$/, '')\n } else {\n return 'https://compute.eyepop.ai'\n }\n }\n\n // TODO: deprecated Web API endpoint needed for POP_ID support\n public eyepopWebApiUrl(): string {\n if (this._options.eyepopUrl) {\n return this._options.eyepopUrl.replace(/\\/+$/, '').replace(/compute\\./, 'web-api.')\n } else {\n return 'https://api.eyepop.ai'\n }\n }\n\n public pendingJobs(): number {\n return (this._options.jobQueueLength ?? 1024) - this._limit.getPermits()\n }\n\n public state(): EndpointState {\n return this._state\n }\n\n public lastMessage(): string | null {\n return this._message\n }\n\n public onStateChanged(handler: (fromState: EndpointState, toState: EndpointState) => void): T {\n this._stateChangeHandler = handler\n return <T>(<unknown>this)\n }\n\n protected updateState(newState: EndpointState | undefined = undefined, message: string | undefined = undefined) {\n const fromState = this._state\n if (newState == undefined) {\n if (this._limit.getPermits() == this._options.jobQueueLength) {\n newState = EndpointState.Idle\n } else {\n newState = EndpointState.Busy\n }\n }\n this._state = newState\n this._message = message ? message : null\n\n if (this._stateChangeHandler) {\n this._stateChangeHandler(fromState, this._state)\n }\n }\n\n public async connect(): Promise<T> {\n if (this._client) {\n this._logger.warn('endpoint already connected')\n return <T>(<unknown>this)\n }\n if (!this._options.eyepopUrl) {\n return Promise.reject('option eyepopUrl or environment variable EYEPOP_URL is required')\n }\n if (this._options.auth === undefined) {\n return Promise.reject('cannot connect without defined auth option')\n }\n if ((this._options.auth as SessionAuth).session !== undefined) {\n this._token = (this._options.auth as SessionAuth).session.accessToken\n this._expire_token_time = (this._options.auth as SessionAuth).session.validUntil / 1000\n } else if ((this._options.auth as OAuth2Auth).oAuth2 !== undefined) {\n } else if ((this._options.auth as ApiKeyAuth).apiKey !== undefined) {\n } else if ((this._options.auth as LocalAuth).isLocal !== undefined) {\n } else {\n return Promise.reject('option apiKey or environment variable EYEPOP_API_KEY is required')\n }\n\n if (this._options.platformSupport?.createHttpClient !== undefined) {\n this._client = await this._options.platformSupport.createHttpClient(this._requestLogger)\n } else {\n this._client = await createHttpClient(this._requestLogger)\n }\n\n return await this.reconnect()\n }\n\n public async disconnect(wait: boolean = true): Promise<void> {\n if (wait && this._limit) {\n // @ts-ignore\n for (let j = 0; j < this._options.jobQueueLength; j++) {\n await this._limit.acquire()\n }\n }\n\n this._limit = new Semaphore(this._options.jobQueueLength ?? 1024)\n\n if (this._client) {\n await this._client.close()\n this._client = null\n }\n }\n\n public async session(): Promise<Session> {\n await this.currentAccessToken()\n if (this._token == null || this._expire_token_time == null) {\n return Promise.reject('endpoint not connected')\n }\n return {\n eyepopUrl: <string>this._options.eyepopUrl,\n accessToken: this._token,\n validUntil: this._expire_token_time * 1000,\n }\n }\n\n protected statusHandler401(_statusCode: number): void {\n this._token = null\n this._expire_token_time = null\n }\n\n protected async fetchWithRetry(fetcher: () => Promise<Response>, retries: number = 1): Promise<Response> {\n while (true) {\n try {\n const response = await fetcher()\n if (response.ok) {\n return response\n } else {\n const handler = this._statusRetryHandlers.get(response.status)\n if (handler != null) {\n handler(response.status)\n if (retries--) {\n this._requestLogger.info('received %d response, retry', response.status)\n } else {\n return response\n }\n } else {\n return response\n }\n }\n } catch (error) {\n // handle connection errors like 404s\n const handler = this._statusRetryHandlers.get(404)\n if (handler != null) {\n handler(error)\n if (retries--) {\n this._requestLogger.info('error %s, retry', error)\n } else {\n return Promise.reject(`error ${error}`)\n }\n } else {\n return Promise.reject(`error ${error}`)\n }\n }\n }\n }\n\n protected async reconnect(): Promise<T> {\n throw new Error('reconnect() not implemented')\n }\n\n protected async authorizationHeader(): Promise<string> {\n if ((this._options.auth as LocalAuth).isLocal !== undefined) {\n return `Implicit`\n }\n return `Bearer ${await this.currentAccessToken()}`\n }\n\n private async currentAccessToken(): Promise<string> {\n const now = Date.now() / 1000\n if (!this._token || <number>this._expire_token_time < now) {\n this.updateState(EndpointState.Authenticating)\n try {\n if (!this._client) {\n return Promise.reject('endpoint not connected')\n } else if ((this._options.auth as LocalAuth).isLocal !== undefined) {\n this._token = \"implicit\"\n this._expire_token_time = Number.MAX_VALUE\n } else if ((this._options.auth as SessionAuth).session !== undefined) {\n return Promise.reject('temporary access token expired')\n } else if ((this._options.auth as OAuth2Auth).oAuth2 !== undefined && this._options.eyepopUrl) {\n const session = await authenticateBrowserSession((this._options.auth as OAuth2Auth).oAuth2 as Auth0Options, this._options)\n this._token = session.accessToken\n this._expire_token_time = session.validUntil / 1000\n } else if ((this._options.auth as ApiKeyAuth).apiKey !== undefined && this._options.eyepopUrl) {\n const headers = { 'Authorization': `Bearer ${(this._options.auth as ApiKeyAuth).apiKey}` }\n const post_url = `${this.eyepopUrl()}/v1/auth/authenticate`\n const response = await this._client.fetch(post_url, {\n method: 'POST',\n headers: headers,\n })\n if (response.status != 200) {\n const message = await response.text()\n return Promise.reject(`Unexpected status ${response.status}: ${message}`)\n }\n const data = await response.json()\n const token: AccessToken = data as AccessToken\n this._token = token.access_token\n this._expire_token_time = now + token.expires_in - 60\n } else {\n return Promise.reject('no valid auth option')\n }\n } finally {\n this.updateState()\n }\n }\n this._logger.debug('using access token, valid for at least %d seconds', <number>this._expire_token_time - now)\n return <string>this._token\n }\n}\n","import { Session } from '../types'\nimport { Auth0Options, Options } from '../options'\nimport { createAuth0Client } from '@auth0/auth0-spa-js'\nimport { Auth0ClientOptions } from '@auth0/auth0-spa-js/src/global'\nimport { WorkerOptions, WorkerSession } from '../index'\n\nexport let authenticateBrowserSession: (auth0: Auth0Options, options: Options) => Promise<Session>\n\nif ('document' in globalThis && 'implementation' in globalThis.document) {\n authenticateBrowserSession = async (auth0: Auth0Options, options: Options) => {\n if (options.eyepopUrl == null) {\n return Promise.reject('options.eyepopUrl cannot be null')\n }\n const auth0ClientOptions: Auth0ClientOptions = {\n clientId: auth0.clientId,\n domain: auth0.domain,\n authorizationParams: {\n scope: auth0.scope,\n audience: auth0.audience,\n },\n }\n const auth0Client = await createAuth0Client(auth0ClientOptions)\n if (!(await auth0Client.isAuthenticated())) {\n await auth0Client.loginWithPopup()\n }\n const accessToken = await auth0Client.getTokenSilently()\n if (!accessToken) {\n return Promise.reject('auth0 login failed')\n }\n let session: Session\n const workerOptions = options as WorkerOptions\n if (typeof workerOptions.popId != 'undefined') {\n const workerSession: WorkerSession = {\n eyepopUrl: options.eyepopUrl,\n accessToken: accessToken,\n validUntil: Date.now() + 60 * 60 * 1000,\n popId: workerOptions.popId,\n baseUrl: undefined,\n pipelineId: undefined,\n authenticationHeaders: () => {\n return { Authorization: `Bearer ${accessToken}` }\n }\n }\n session = workerSession\n } else {\n session = {\n eyepopUrl: options.eyepopUrl,\n accessToken: accessToken,\n validUntil: Date.now() + 60 * 60 * 1000,\n }\n }\n return session\n }\n} else {\n authenticateBrowserSession = (_auth0: Auth0Options, _options: Options) => {\n return Promise.reject('auth0 login not supported server-side')\n }\n}\n","import { Options } from '../options'\n\nexport enum TransientPopId {\n Transient = 'transient',\n}\n\nexport interface WorkerOptions extends Options {\n /**\n * TODO: deprecated, defaults to process.env['EYEPOP_POP_ID'].\n */\n popId?: string | TransientPopId | undefined\n autoStart?: boolean\n stopJobs?: boolean\n isLocalMode?: boolean\n}\n","import { LocalAuth } from '../options'\nimport { EndpointState, Session } from '../types'\nimport { AbstractJob, LoadFromAssetUuidJob, LoadFromJob, LoadMediaStreamJob, UploadJob } from './jobs'\nimport { resolvePath } from '../shims/local_file'\nimport { Endpoint } from '../endpoint'\nimport { TransientPopId, WorkerOptions } from '../worker/worker_options'\nimport {\n AssetUuidSource,\n ComponentParams,\n FileSource,\n MediaStreamSource,\n MotionDetectConfig,\n PathSource,\n Pop,\n ProcessParams,\n ProcessRequest,\n ResultStream,\n Source,\n StreamSource,\n UrlSource,\n WorkerSession,\n} from '../worker/worker_types'\nimport { Area } from 'EyePop/data/data_types'\n\ninterface PopConfig {\n base_url: string\n pipeline_id: string\n name: string\n}\n\ninterface Pipeline {\n id: string\n startTime: string\n state: string\n pop?: Pop\n}\n\nexport enum SessionStatus {\n UNKNOWN = 'unknown',\n PENDING = 'pending',\n RUNNING = 'running',\n STOPPED = 'stopped',\n FAILED = 'failed',\n ERROR = 'error',\n\n PIPELINE_CREATING = 'pipeline_creating',\n PIPELINE_OK = 'pipeline_ok',\n PIPELINE_CHECKING = 'pipeline_checking',\n PIPELINE_ERROR = 'pipeline_error',\n}\n\ninterface ComputeSession {\n session_uuid: string\n session_endpoint: string\n pipeline_uuid: string\n session_status: SessionStatus\n session_message: string\n session_name: string\n user_uuid: string\n created_at: string\n uptime: number\n pipeline_ttl?: number | undefined\n session_active: boolean\n}\n\nconst sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))\n\nexport class WorkerEndpoint extends Endpoint<WorkerEndpoint> {\n private _baseUrl: string | null\n private _pipelineId: string | null\n\n private _popName: string | null\n\n private _pipeline: Pipeline | null\n\n constructor(options: WorkerOptions) {\n super(options)\n this.setStatusRetryHandlers(new Map<number, Function>([[404, (statusCode: number) => this.statusHandler404(statusCode)]]))\n this._baseUrl = null\n this._pipelineId = null\n this._popName = null\n this._pipeline = null\n }\n\n private options(): WorkerOptions {\n return this._options as WorkerOptions\n }\n\n public override async disconnect(wait: boolean = true): Promise<void> {\n if (this.options().popId == TransientPopId.Transient && this._pipelineId) {\n const deleteUrl = `${this._baseUrl}/pipelines/${this._pipelineId}`\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n let response = await this._client?.fetch(deleteUrl, {\n method: 'DELETE',\n headers: headers,\n })\n if (response?.status != 204) {\n const message = await response?.text()\n this._logger.info(`stopping pipeline failed, status ${response?.status}: ${message}`)\n }\n }\n return super.disconnect(wait)\n }\n\n protected statusHandler404(_: number): void {\n this._pipelineId = null\n this._baseUrl = null\n }\n\n public override async session(): Promise<WorkerSession> {\n const session = await super.session()\n if (this._baseUrl == null || this._pipelineId == null) {\n await this.reconnect()\n if (this._baseUrl == null || this._pipelineId == null) {\n return Promise.reject('endpoint not connected')\n }\n }\n return {\n eyepopUrl: session.eyepopUrl,\n accessToken: session.accessToken,\n validUntil: session.validUntil,\n popId: this.options().popId as string,\n baseUrl: this._baseUrl as string,\n pipelineId: this._pipelineId as string,\n authenticationHeaders: () => this._authenticationHeaders(session),\n }\n }\n\n public popName(): string | null {\n return this._popName\n }\n\n public pop(): Pop | null {\n if (this._pipeline) {\n return this._pipeline.pop || null\n } else {\n return null\n }\n }\n\n public async changePop(pop: Pop): Promise<void> {\n const client = this._client\n const baseUrl = this._baseUrl\n if (!baseUrl || !client) {\n return Promise.reject('endpoint not connected, use connect()')\n }\n\n let response = await this.fetchWithRetry(async () => {\n const session = await this.session()\n let headers = {\n 'Content-Type': 'application/json',\n ...this._authenticationHeaders(session),\n }\n const patch_url = `${session.baseUrl}/pipelines/${session.pipelineId}/pop`\n return await client.fetch(patch_url, {\n method: 'PATCH',\n body: JSON.stringify(pop),\n headers: headers,\n })\n })\n if (response.status != 204) {\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n if (this._pipeline) {\n this._pipeline.pop = pop\n } else {\n this._pipeline = {\n id: this._pipelineId || 'unknown',\n state: 'idle',\n startTime: new Date().toString(),\n pop: pop,\n }\n }\n }\n\n private _authenticationHeaders(session: Session): any {\n return (this._options.auth as LocalAuth).isLocal !== undefined ? {} : { Authorization: `Bearer ${session.accessToken}` }\n }\n\n public popId(): string | null {\n return this.options().popId || null\n }\n\n /**\n * V1 call to process media as a source with optional component params\n *\n * @deprecated use V2 call process() with named parameters\n * @param source\n * @param params\n */\n public async process(source: Source, params?: ComponentParams[]): Promise<ResultStream>\n\n /**\n * V2 call to process media as a source with extensible named parameters\n *\n * @param source\n * @param componentParams\n * @param motionDetect\n * @param roi\n */\n public async process({ source, componentParams, motionDetect, roi }: ProcessRequest): Promise<ResultStream>\n\n public async process(param1: any, param2?: any): Promise<ResultStream> {\n if ((param1 as ProcessRequest).source !== undefined) {\n return await this.processV2(param1)\n } else {\n return await this.processV1(param1, param2)\n }\n }\n\n private async processV1(source: Source, params?: ComponentParams[]): Promise<ResultStream> {\n if ((source as FileSource).file !== undefined) {\n return this.uploadFile(source as FileSource, {componentParams: params})\n } else if ((source as StreamSource).stream !== undefined) {\n return this.uploadStream(source as StreamSource, { componentParams: params })\n } else if ((source as PathSource).path !== undefined) {\n return this.uploadPath(source as PathSource, { componentParams: params })\n } else if ((source as UrlSource).url !== undefined) {\n return this.loadFrom(source as UrlSource, { componentParams: params })\n } else if ((source as AssetUuidSource).assetUuid !== undefined) {\n return this.loadFromAssetUuid(source as AssetUuidSource, { componentParams: params })\n } else if ((source as MediaStreamSource).mediaStream !== undefined) {\n return this.loadMediaStream(source as MediaStreamSource, { componentParams: params })\n } else {\n return Promise.reject('unknown source type')\n }\n }\n\n private async processV2(request: ProcessRequest): Promise<ResultStream> {\n if ((request.source as FileSource).file !== undefined) {\n return this.uploadFile(request.source as FileSource, request)\n } else if ((request.source as StreamSource).stream !== undefined) {\n return this.uploadStream(request.source as StreamSource, request)\n } else if ((request.source as PathSource).path !== undefined) {\n return this.uploadPath(request.source as PathSource, request)\n } else if ((request.source as UrlSource).url !== undefined) {\n return this.loadFrom(request.source as UrlSource, request)\n } else if ((request.source as AssetUuidSource).assetUuid !== undefined) {\n return this.loadFromAssetUuid(request.source as AssetUuidSource, request)\n } else if ((request.source as MediaStreamSource).mediaStream !== undefined) {\n return this.loadMediaStream(request.source as MediaStreamSource, request)\n } else {\n return Promise.reject('unknown source type')\n }\n }\n\n private async uploadFile(source: FileSource, params: ProcessParams): Promise<ResultStream> {\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n return Promise.reject('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new UploadJob(\n source.file,\n source.file.type,\n source.file.size,\n source.videoMode,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job cannot be started\n this._limit.release()\n throw e\n }\n }\n\n private async uploadStream(source: StreamSource, params: ProcessParams): Promise<ResultStream> {\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n return Promise.reject('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new UploadJob(\n source.stream,\n source.mimeType,\n source.size,\n source.videoMode,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job canot be started\n this._limit.release()\n throw e\n }\n }\n\n private async uploadPath(source: PathSource, params: ProcessParams): Promise<ResultStream> {\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n let streamSource\n if (this._options.platformSupport?.resolvePath) {\n streamSource = await this._options.platformSupport.resolvePath(source as PathSource, this._logger)\n } else {\n streamSource = await resolvePath(source as PathSource, this._logger)\n }\n const job = new UploadJob(\n streamSource.stream,\n streamSource.mimeType,\n streamSource.size,\n source.videoMode,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job canot be started\n this._limit.release()\n throw e\n }\n }\n\n private async loadFrom(source: UrlSource, params: ProcessParams): Promise<ResultStream> {\n if (source.url.startsWith('file://')) {\n return await this.uploadPath(\n {\n path: source.url.substring('file://'.length),\n },\n params,\n )\n }\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new LoadFromJob(\n source.url,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job canot be started\n this._limit.release()\n throw e\n }\n }\n\n private async loadFromAssetUuid(source: AssetUuidSource, params: ProcessParams): Promise<ResultStream> {\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new LoadFromAssetUuidJob(\n source.assetUuid,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job canot be started\n this._limit.release()\n throw e\n }\n }\n\n private async loadMediaStream(source: MediaStreamSource, params: ProcessParams): Promise<ResultStream> {\n if (!this._baseUrl || !this._pipelineId || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new LoadMediaStreamJob(\n source.mediaStream,\n params,\n async () => {\n return this.session()\n },\n this._client,\n this._requestLogger,\n )\n return job.start(\n () => {\n this.jobDone(job)\n },\n (statusCode: number) => {\n this.jobStatus(job, statusCode)\n },\n )\n } catch (e) {\n // we'll have to reset our queue counter in case the job cannot be started\n this._limit.release()\n throw e\n }\n }\n\n private jobDone(_: AbstractJob) {\n this._limit?.release()\n this.updateState()\n }\n\n private jobStatus(_: AbstractJob, statusCode: number) {\n if (statusCode == 404) {\n this.statusHandler404(statusCode)\n } else if (statusCode == 401) {\n this.statusHandler401(statusCode)\n }\n }\n\n protected override async reconnect(): Promise<WorkerEndpoint> {\n if (this.options().popId == TransientPopId.Transient) {\n await this.startComputeSession()\n this._pipelineId = await this.startTransientPipeline()\n } else {\n await this.startWebApiSessionWithPopId()\n }\n this.updateState()\n return Promise.resolve(this)\n }\n\n private async startWebApiSessionWithPopId(): Promise<void> {\n if (!this._client) {\n throw new Error('endpoint not initialized')\n }\n const config_url = `${this.eyepopWebApiUrl()}/pops/${this.options().popId}/config?auto_start=false`\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n this.updateState(EndpointState.FetchConfig)\n let response = await this._client.fetch(config_url, { headers: headers })\n if (response.status == 401) {\n this._requestLogger.debug('GET %s: 401, about to retry with fresh access token', config_url)\n // one retry, the token might have just expired\n this.statusHandler401(response.status)\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n this.updateState(EndpointState.FetchConfig)\n response = await this._client.fetch(config_url, {\n headers: headers,\n })\n }\n\n if (response.status != 200) {\n const message = await response.text()\n if (response.status == 429) {\n this.updateState(EndpointState.NotAvailable, message)\n } else {\n this.updateState(EndpointState.Error, message)\n }\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n let config = (await response.json()) as PopConfig\n if (!config.base_url && this.options().autoStart) {\n const auto_start_config_url = `${this.eyepopWebApiUrl()}/pops/${this.options().popId}/config?auto_start=true`\n this._requestLogger.debug('pop was not running, trying to autostart with: %s', auto_start_config_url)\n // one retry the pop might just have stopped\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n response = await this._client.fetch(auto_start_config_url, {\n headers: headers,\n })\n if (response.status != 200) {\n this.updateState(EndpointState.Error)\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n config = (await response.json()) as PopConfig\n }\n\n const baseUrl = new URL(config.base_url, this.eyepopUrl())\n this._baseUrl = baseUrl.toString()\n\n if (this._baseUrl) {\n this._baseUrl = this._baseUrl.replace(/\\/+$/, '')\n this._pipelineId = config.pipeline_id\n this._popName = config.name\n if (!this._pipelineId || !this._baseUrl) {\n throw new Error('Pop not started')\n }\n\n const get_url = `${this._baseUrl}/pipelines/${this._pipelineId}`\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n let response = await this._client.fetch(get_url, {\n method: 'GET',\n headers: headers,\n })\n if (response.status > 200) {\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n this._pipeline = (await response.json()) as Pipeline\n\n if (this.options().stopJobs) {\n const body = { sourceType: 'NONE' }\n const headers = {\n Authorization: await this.authorizationHeader(),\n 'Content-Type': 'application/json',\n }\n const stop_url = `${this._baseUrl}/pipelines/${this._pipeline.id}/source?mode=preempt&processing=sync`\n let response = await this._client.fetch(stop_url, {\n method: 'PATCH',\n headers: headers,\n body: JSON.stringify(body),\n })\n if (response.status >= 300) {\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n }\n }\n }\n\n private static SESSION_DEAD = new Set<SessionStatus>([SessionStatus.ERROR, SessionStatus.FAILED, SessionStatus.STOPPED, SessionStatus.PIPELINE_ERROR, SessionStatus.UNKNOWN])\n\n private static WAIT_FOR_IS_READY: number = 60 * 1000\n private static CHECK_FOR_IS_READY_INTERVAL: number = 250\n\n private async startComputeSession(): Promise<void> {\n if (!this._client) {\n throw new Error('endpoint not initialized')\n }\n let session: ComputeSession | null = null\n const sessionsUrl = `${this.eyepopUrl()}/v1/sessions`\n this._requestLogger.debug('fetching sessions from: %s', sessionsUrl)\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n let response = await this._client.fetch(sessionsUrl, {\n headers: headers,\n })\n let sessions: ComputeSession[]\n\n if (response.status == 404) {\n sessions = []\n } else if (response.status != 200) {\n this.updateState(EndpointState.Error)\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status} fetching compute sessions: ${message}`)\n } else {\n const response_content = await response.json()\n sessions = response_content as ComputeSession[]\n }\n console.log(sessions)\n if (sessions.length > 0) {\n this._logger.debug(`User has ${sessions.length} sessions, inspecting for active session`)\n for (let s of sessions) {\n if (!WorkerEndpoint.SESSION_DEAD.has(s.session_status)) {\n session = s\n this._logger.debug(`Use active session ${s.session_uuid} with pipeline ${s.pipeline_uuid}`)\n break\n }\n }\n }\n if (!session) {\n this._requestLogger.debug('creating a new session at: %s', sessionsUrl)\n response = await this._client.fetch(`${sessionsUrl}?wait=true`, {\n headers: headers,\n method: 'POST',\n })\n if (response.status != 200) {\n this.updateState(EndpointState.Error)\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status} creating a compute session: ${message}`)\n } else {\n sessions = (await response.json()) as ComputeSession[]\n }\n if (sessions.length == 0) {\n throw new Error('Unexpected, no compute session after attempt to create one')\n }\n session = sessions[0] || null\n }\n if (!session) {\n throw new Error('unexpected undefined session')\n }\n let isReady: boolean = false\n const deadline: number = Date.now() + WorkerEndpoint.WAIT_FOR_IS_READY\n while (!isReady) {\n const health_url = `${session.session_endpoint}/health`\n response = await this._client.fetch(health_url, {\n headers: headers,\n })\n if (response.status < 300) {\n isReady = true\n } else if (Date.now() > deadline) {\n throw new Error(`Created session ${session.session_uuid} did not become healthy after ${WorkerEndpoint.WAIT_FOR_IS_READY / 1000} seconds`)\n } else {\n this._logger.debug(`session ${session.session_uuid} health check status ${response.status}, wait and poll for update`)\n await sleep(WorkerEndpoint.CHECK_FOR_IS_READY_INTERVAL)\n }\n }\n this._baseUrl = session.session_endpoint\n this._pipeline = null\n if (session.pipeline_uuid) {\n this._pipelineId = session.pipeline_uuid\n } else {\n this._pipelineId = null\n }\n }\n\n private async startTransientPipeline(): Promise<string> {\n const client = this._client\n const baseUrl = this._baseUrl\n\n if (client == null || baseUrl == null) {\n throw new Error('endpoint not initialized')\n }\n\n let pop: Pop\n if (this._pipeline && this._pipeline.pop) {\n pop = this._pipeline.pop\n } else {\n pop = {\n components: [],\n }\n }\n\n const body = {\n pop: pop,\n source: {\n sourceType: 'NONE',\n },\n idleTimeoutSeconds: 30,\n logging: ['out_meta'],\n videoOutput: 'no_output',\n }\n\n const post_url = `${baseUrl.replace(/\\/+$/, '')}/pipelines`\n\n let response = await this.fetchWithRetry(async () => {\n let headers = {\n 'Content-Type': 'application/json',\n Authorization: await this.authorizationHeader(),\n }\n return client.fetch(post_url, {\n method: 'POST',\n body: JSON.stringify(body),\n headers: headers,\n })\n })\n if (response.status != 200) {\n const message = await response.text()\n throw new Error(`Unexpected status ${response.status}: ${message}`)\n }\n const result = await response.json()\n return result['id']\n }\n}","export let createWebSocket: (url: string | URL, protocols?: string | string[]) => WebSocket\n\nif ('document' in globalThis && 'implementation' in globalThis.document) {\n createWebSocket = (url: string | URL, protocols?: string | string[]) => {\n return new WebSocket(url, protocols)\n }\n} else {\n createWebSocket = (url: string | URL, protocols?: string | string[]) => {\n const ws = require('ws')\n return new ws.WebSocket(url, protocols)\n }\n}\n","function normalize (strArray) {\n var resultArray = [];\n if (strArray.length === 0) { return ''; }\n\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n var first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (var i = 0; i < strArray.length; i++) {\n var component = strArray[i];\n\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n\n if (component === '') { continue; }\n\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[\\/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[\\/]+$/, '/');\n }\n\n resultArray.push(component);\n\n }\n\n var str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n var parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n return str;\n}\n\nexport default function urlJoin() {\n var input;\n\n if (typeof arguments[0] === 'object') {\n input = arguments[0];\n } else {\n input = [].slice.call(arguments);\n }\n\n return normalize(input);\n}\n","import { Point2d, Prediction, Session } from '../types'\n\nexport enum DataApiType {\n dataset = 'dataset',\n vlm = 'vlm'\n}\n\nexport type AutoAnnotate = string\n\nexport interface DataSession extends Session {\n readonly accountId: string\n readonly datasetApiUrl: string | undefined\n readonly vlmApiUrl: string | undefined\n}\n\nexport function getBaseUrl(session: DataSession, dataApiType: DataApiType): string {\n switch (dataApiType) {\n case DataApiType.dataset:\n return session.datasetApiUrl ?? ''\n case DataApiType.vlm:\n return session.vlmApiUrl ?? ''\n default:\n throw new Error(`unsupported type ${dataApiType}`)\n }\n}\n\nexport interface DatasetVersionAssetStats {\n total?: number\n accepted?: number\n rejected?: number\n annotated?: number\n auto_annotated?: number\n auto_annotated_approved?: number\n ground_truth_annotated?: number\n}\n\nexport interface DatasetVersion {\n version: number\n modifiable: boolean\n created_at: Date\n updated_at: Date\n assets_modified_at: Date\n last_analysed_at?: Date\n hero_asset_uuid?: string\n asset_stats?: DatasetVersionAssetStats\n default_source_model_uuid?: string\n}\n\nexport interface DatasetParent {\n dataset_uuid: string\n dataset_version: number\n}\n\nexport interface Dataset {\n uuid: string\n name: string\n description?: string\n auto_annotates: string[]\n auto_annotate_params?: AutoAnnotateParams\n tags: string[]\n account_uuid: string\n created_at: Date\n updated_at: Date\n modifiable_version?: number\n versions: DatasetVersion[]\n parent?: DatasetParent\n searchable: boolean\n}\n\nexport interface DatasetCreate {\n name: string\n description?: string\n tags?: string[]\n auto_annotates?: string[]\n auto_annotate_params?: AutoAnnotateParams\n searchable?: boolean\n}\n\nexport interface DatasetUpdate {\n name?: string\n description?: string\n tags?: string[]\n auto_annotates?: string[]\n auto_annotate_params?: AutoAnnotateParams\n searchable?: boolean\n}\n\nexport interface DatasetHeroAssetUpdate {\n uuid: string\n}\n\nexport enum AutoAnnotateStatus {\n error = \"error\",\n requested = \"requested\",\n in_progress = \"in_progress\",\n completed = \"completed\"\n}\n\nexport interface DatasetAutoAnnotateCreate {\n auto_annotate: string\n auto_annotate_params?: Map<string, any>\n source_model_uuid?: string\n status?: AutoAnnotateStatus\n status_message?: string\n source?: string\n metrics?: Map<string, any>\n}\n\n\nexport interface DatasetAutoAnnotateUpdate {\n status?: AutoAnnotateStatus\n status_message?: string\n metrics?: Map<string, any>\n}\n\nexport interface DatasetAutoAnnotate {\n created_at?: Date\n updated_at?: Date\n dataset_uuid: string\n dataset_version: number\n source_ability_uuid?: string\n source_model_uuid?: string\n auto_annotate?: string\n auto_annotate_params?: Map<string, any>\n status?: AutoAnnotateStatus\n status_message?: string\n source?: string\n metrics?: Map<string, any>\n}\n\nexport interface AssetImport {\n url: string\n ground_truth?: Prediction\n}\n\nexport enum AssetStatus {\n rejected = 'rejected',\n upload_in_progress = 'upload_in_progress',\n upload_failed = 'upload_failed',\n transform_failed = 'transform_failed',\n transform_in_progress = 'transform_in_progress',\n accepted = 'accepted',\n}\n\nexport enum AnnotationType {\n ground_truth = 'ground_truth',\n prediction = 'prediction',\n auto = 'auto',\n}\n\nexport enum UserReview {\n approved = 'approved',\n rejected = 'rejected',\n unknown = 'unknown',\n}\n\nexport enum AssetInclusionMode {\n all_assets = 'all_assets',\n annotated_only = 'annotated_only',\n manual_annotated_only = 'manual_annotated_only',\n auto_annotated_only = 'auto_annotated_only',\n}\n\nexport enum AnnotationInclusionMode {\n all = 'all',\n user_reviewed = 'user_reviewed',\n user_approved = 'user_approved',\n ground_truth = 'ground_truth',\n}\n\nexport interface AutoAnnotatePrompt {\n prompt: string\n label: string\n}\n\nexport enum AutoAnnotateTask {\n object_detection = 'object_detection',\n image_classification = 'image_classification',\n}\n\nexport interface AutoAnnotateParams {\n /**\n * @deprecated use prompts instead\n */\n candidate_labels?: string[]\n prompts?: AutoAnnotatePrompt[]\n task?: AutoAnnotateTask\n confidence_threshold?: number\n}\n\nexport interface Annotation {\n type: AnnotationType\n user_review: UserReview\n approved_threshold?: number\n auto_annotate?: string\n source?: string\n source_ability_uuid?: string\n uncertainty_score?: number\n predictions: Prediction[]\n}\n\nexport enum TranscodeMode {\n original = 'original',\n video_original_size = 'video_original_size',\n image_original_size = 'image_original_size',\n image_fit_1024 = 'image_fit_1024',\n image_fit_640 = 'image_fit_640',\n image_fit_224 = 'image_fit_224',\n image_cover_1024 = 'image_cover_1024',\n image_cover_640 = 'image_cover_640',\n image_cover_224 = 'image_cover_224',\n}\n\nexport enum AreaType {\n RECTANGLE = \"rectangle\",\n CONTOUR = \"contour\"\n}\n\nexport interface BaseArea {\n type: AreaType\n}\n\nexport interface RectangleArea extends BaseArea {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport interface ContourArea extends BaseArea {\n points: Point2d[]\n}\n\nexport type Area = RectangleArea | ContourArea\n\nexport interface TimeSpan {\n start_timestamp?: number\n end_timestamp?: number\n}\n\nexport interface Roi {\n name: string\n area?: Area\n time_span?: TimeSpan\n}\nexport interface Asset {\n uuid: string\n external_id?: string\n mime_type: string\n file_size_bytes: number\n original_image_width?: number\n original_image_height?: number\n original_duration?: number\n original_frames?: number\n status: AssetStatus\n created_at: Date\n updated_at: Date\n partition?: string\n review_priority?: number\n model_relevance?: number\n annotations: Annotation[]\n rois: Roi[]\n}\n\nexport enum ModelType {\n epdet_b1 = 'epdet_b1',\n imported = 'imported',\n vlm_ability = 'vlm_ability'\n}\n\nexport enum ModelTask {\n object_detection = 'object_detection',\n image_classification = 'image_classification',\n keypoint_detection = 'keypoint_detection'\n}\n\nexport enum ModelStatus {\n error = 'error',\n draft = 'draft',\n requested = 'requested',\n in_progress = 'in_progress',\n available = 'available',\n published = 'published',\n}\n\nexport interface ModelMetrics {\n cpr?: number[][3]\n}\n\nexport enum ModelExportStatus {\n in_progress = 'in_progress',\n finished = 'finished',\n error = 'error',\n}\n\nexport enum ExportedBy {\n eyepop = 'eyepop',\n qc_ai_hub = 'qc_ai_hub',\n}\n\nexport enum ArtifactType {\n eyepop_bundle = 'eyepop_bundle',\n weights_file = 'weights_file',\n}\n\nexport interface QcAiHubExportParams {\n device_name: string\n}\n\nexport interface ModelExport {\n format: ModelFormat\n exported_by: ExportedBy\n export_params?: QcAiHubExportParams\n status: ModelExportStatus\n status_message?: string\n}\n\nexport interface Model {\n uuid: string\n name: string\n description?: string\n external_id?: string\n pretrained_model_uuid?: string\n extra_params?: Map<string, any>\n task?: ModelTask\n classes?: string[]\n type: ModelType\n status: ModelStatus\n status_message?: string\n metrics?: ModelMetrics\n account_uuid: string\n created_at: Date\n updated_at: Date\n dataset_uuid: string\n dataset_version: number\n exports?: ModelExport[]\n}\n\nexport interface ModelCreate {\n name: string\n description: string\n external_id?: string\n pretrained_model_uuid?: string\n extra_params?: Map<string, any>\n task?: ModelTask\n classes?: string[]\n}\n\nexport interface ModelUpdate {\n name: string\n description: string\n external_id?: string\n task?: ModelTask\n classes?: string[]\n}\n\nexport enum ModelTrainingStage {\n waiting = 'waiting',\n scheduling = 'scheduling',\n preparing = 'preparing',\n training = 'training',\n exporting = 'exporting',\n}\n\nexport interface ModelSample {\n asset_uuid: string\n prediction: Prediction\n}\n\nexport interface ModelTrainingProgress {\n stage: ModelTrainingStage\n queue_length?: number\n started_at: Date\n finished_at?: Date\n metrics?: ModelMetrics\n samples?: ModelSample[]\n remaining_seconds_min?: number\n remaining_seconds_max?: number\n}\n\nexport enum ChangeType {\n dataset_added = 'dataset_added',\n dataset_removed = 'dataset_removed',\n dataset_modified = 'dataset_modified',\n dataset_version_modified = 'dataset_version_modified',\n asset_added = 'asset_added',\n asset_removed = 'asset_removed',\n asset_status_modified = 'asset_status_modified',\n asset_annotation_modified = 'asset_annotation_modified',\n model_added = 'model_added',\n model_removed = 'model_removed',\n model_modified = 'model_modified',\n model_status_modified = 'model_status_modified',\n model_progress = 'model_progress',\n events_lost = 'events_lost',\n workflow_started = 'workflow_started',\n workflow_succeeded = 'workflow_succeeded',\n workflow_failed = 'workflow_failed',\n workflow_task_started = 'workflow_task_started',\n workflow_task_succeeded = 'workflow_task_succeeded',\n workflow_task_failed = 'workflow_task_failed',\n}\n\n\nexport interface ChangeEvent {\n change_type: ChangeType\n account_uuid: string\n dataset_uuid: string\n dataset_version?: number\n asset_uuid?: string\n mdl_uuid?: string\n message?: string\n workflow_task_name?: string\n}\n\nexport type OnChangeEvent = (event: ChangeEvent) => Promise<void>\n\nexport interface CreateWorkflowConfig {\n dataset_uuid?: string\n dataset_version?: number\n model_uuid?: string\n config?: Record<string, any>\n}\n\nexport interface CreateWorkflow {\n parameters?: CreateWorkflowConfig\n}\n\nexport interface Workflow {\n workflow_id: string\n}\n\nexport interface ListWorkflowItemMetadataLabels {\n account_uuid: string\n dataset_uuid?: string\n model_uuid?: string\n phase: WorkflowPhase\n}\n\nexport interface ListWorkFlowItemMetadata {\n workflow_id: string\n created_at: Date\n labels: ListWorkflowItemMetadataLabels\n}\n\nexport interface ListWorkFlowItem {\n metadata: ListWorkFlowItemMetadata\n}\n\nexport enum WorkflowPhase {\n unknown = 'Unknown',\n pending = 'Pending',\n running = 'Running',\n succeeded = 'Succeeded',\n failed = 'Failed',\n error = 'Error',\n}\n\nexport enum ModelFormat {\n TensorFlowLite = 'TensorFlowLite',\n TensorFlowGraphDef = 'TensorFlowGraphDef',\n ONNX = 'ONNX',\n TorchScript = 'TorchScript',\n TorchScriptCpu = 'TorchScriptCpu',\n TorchScriptCuda = 'TorchScriptCuda',\n PyTorch = 'PyTorch',\n ModelLess = 'ModelLess',\n}\n\nexport enum ModelPrecisionType {\n float32 = 'float32',\n float16 = 'float16',\n int32 = 'int32',\n int8 = 'int8',\n uint8 = 'uint8',\n}\n\nexport enum AssetUrlType {\n gcs = 'gcs',\n s3 = 's3',\n https_signed = 'https_signed'\n}\n\nexport interface DownloadResponse {\n url: string\n url_type: AssetUrlType\n}\n\n/** Experimental VLM API */\n\nexport interface InferRuntimeConfig {\n max_new_tokens?: number\n image_size?: number\n fps?: number\n max_frames?: number\n min_frames?: number\n max_aspect_ratio?: number\n context_length?: number\n roi?: Area\n}\n\nexport interface TransformInto {\n classes?: string[]\n}\n\nexport interface InferRequest {\n worker_release?: string\n text_prompt?: string\n config: InferRuntimeConfig\n refresh?: boolean\n transform_into?: TransformInto\n}\n\nexport interface EvaluateFilter {\n partitions?: string[]\n ground_truth_classes?: string[]\n}\n\nexport interface EvaluateConfig {\n dataset_uuid: string\n filter?: EvaluateFilter\n video_chunk_length_ns?: number\n video_chunk_overlap?: number\n}\n\nexport interface EvaluateRequest extends EvaluateConfig {\n ability_uuid?: string\n infer?: InferRequest\n}\n\nexport enum EvaluationStatus {\n success = \"success\",\n failed = \"failed\"\n}\n\nexport interface EvaluateRunInfo {\n num_images: number\n num_ground_truth_images: number\n num_videos: number\n num_ground_truth_videos: number\n total_tokens: number\n visual_tokens: number\n text_tokens: number\n output_tokens: number\n}\n\nexport interface EvaluateResponse {\n dataset_uuid: string\n dataset_version: number\n status: EvaluationStatus\n status_message?: string\n source: string\n metrics?: Map<string, any>\n run_info: EvaluateRunInfo\n}\n\nexport interface InferRunInfo {\n fps?: number\n image_size?: number\n total_tokens?: number\n visual_tokens?: number\n text_tokens?: number\n output_tokens?: number\n aspect_ratio?: number\n}\n\nexport interface AutoPromptConfig {\n num_samples: number\n task_description?: string\n infer: InferRequest\n evaluate: EvaluateConfig\n}\n\nexport enum TaskType {\n classification = \"classification\"\n}\n\nexport interface BaseTask {\n type: TaskType\n task_description?: string\n}\n\nexport interface ClassificationTask extends BaseTask {\n classes: string[]\n dataset_uuid: string\n num_samples: number\n}\n\nexport type AutoTask = ClassificationTask\n\nexport enum VlmAbilityStatus {\n in_progress = \"in_progress\",\n draft = \"draft\",\n published = \"published\",\n}\n\nexport interface AbilityAliasEntry {\n alias: string\n tag: string\n}\n\nexport interface VlmAbilityCreate {\n name: string\n description: string\n worker_release: string\n text_prompt: string\n transform_into: TransformInto\n config: InferRuntimeConfig\n is_public: boolean\n video_chunk_length_ns?: number\n video_chunk_overlap?: number\n}\n\nexport interface VlmAbilityUpdate {\n name?: string\n description?: string\n worker_release?: string\n text_prompt?: string\n transform_into?: TransformInto\n config?: InferRuntimeConfig\n is_public?: boolean\n video_chunk_length_ns?: number\n video_chunk_overlap?: number\n}\n\nexport interface VlmAbility {\n uuid: string\n created_at?: Date\n updated_at?: Date\n account_uuid: string\n status: VlmAbilityStatus\n is_public: boolean\n name: string\n description: string\n vlm_ability_group_uuid?: string\n worker_release?: string\n text_prompt?: string\n transform_into?: TransformInto\n config?: InferRuntimeConfig\n video_chunk_length_ns?: number\n video_chunk_overlap?: number\n alias_entries?: AbilityAliasEntry[]\n auto_prompt?: AutoPromptConfig\n auto_task?: AutoTask\n}\n\nexport interface VlmAbilityGroupCreate {\n name: string\n description: string\n auto_prompt?: AutoPromptConfig\n auto_task?: AutoTask\n default_alias_name?: string\n default_dataset_uuid?: string\n}\n\nexport interface VlmAbilityGroupUpdate {\n name: string\n description: string\n default_alias_name?: string\n default_dataset_uuid?: string\n}\n\nexport interface VlmAbilityGroup {\n uuid: string\n created_at?: Date\n updated_at?: Date\n account_uuid: string\n name: string\n description: string\n default_alias_name?: string\n default_dataset_uuid?: string\n}\n\nexport interface AliasResolution {\n alias: string\n model_uuid: string | null\n}","import { ResultStream } from '../worker/worker_types'\nimport { Logger } from 'pino'\nimport { Prediction } from '../types'\nimport { EvaluateRequest, EvaluateResponse, InferRequest, InferRunInfo } from './data_types'\n\ntype VlmFetch = (path: string, options: RequestInit) => Promise<any>\n\nexport class InferAssetJob implements ResultStream {\n protected _vlmFetch: VlmFetch\n protected _assetUrl: string\n protected _inferRequest: InferRequest\n\n protected _response: Promise<Prediction[]> | null = null\n protected _runInfo: InferRunInfo | null = null\n protected _controller: AbortController = new AbortController()\n\n protected _requestLogger: Logger;\n\n [Symbol.asyncIterator](): AsyncIterator<Prediction> {\n if (!this._response) {\n throw Error('logical bug')\n }\n let consumed = false\n const response_promise = this._response\n const controller = this._controller\n async function* iterator(): AsyncIterator<Prediction> {\n if (consumed) {\n throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.')\n }\n consumed = true\n let done = false\n try {\n const predictions = await response_promise\n if (predictions) {\n for (let prediction of predictions) {\n yield prediction\n }\n }\n done = true\n } catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (e instanceof Error && e.name === 'AbortError') return\n throw e\n } finally {\n // If the user breaks, abort the ongoing request.\n if (!done) controller.abort()\n }\n }\n\n return iterator()\n }\n\n public constructor(assetUrl: string, inferRequest: InferRequest, vlmFetch: VlmFetch, requestLogger: Logger) {\n this._vlmFetch = vlmFetch\n\n this._assetUrl = assetUrl\n this._inferRequest = inferRequest\n\n this._requestLogger = requestLogger\n }\n\n public start(done: () => void): InferAssetJob {\n this._response = new Promise<Prediction[]>(async (resolve, reject) => {\n try {\n let requestId = null\n while (true) {\n let response = null\n if (requestId) {\n response = await this._vlmFetch(`/api/v1/requests/${requestId}?timeout=20`, {\n method: 'POST',\n })\n } else {\n const infer_request = new Map(Object.entries(this._inferRequest))\n infer_request.set('url', this._assetUrl)\n const body = new FormData();\n body.append('infer_request', JSON.stringify(Object.fromEntries(infer_request)))\n response = await this._vlmFetch(`/api/v1/infer?timeout=20`, {\n method: 'POST',\n body: body,\n })\n }\n const predictions = response['predictions']\n const runInfo = response['run_info']\n if (predictions) {\n this._runInfo = runInfo\n resolve(predictions)\n break\n } else {\n requestId = response['request_id']\n if (!requestId) {\n reject(`missing request_id in response: ${JSON.stringify(response)}`)\n break\n }\n }\n }\n } catch (reason) {\n reject(reason)\n } finally {\n done()\n }\n })\n return this\n }\n\n public cancel(): void {\n this._controller.abort('cancelled')\n }\n}\n\n\nexport class EvaluateDatasetJob {\n protected _vlmFetch: VlmFetch\n protected _evaluateRequest: EvaluateRequest\n protected _workerRelease: string | null\n\n protected _response: Promise<EvaluateResponse> | null = null\n protected _controller: AbortController = new AbortController()\n\n protected _requestLogger: Logger;\n\n public async response(): Promise<EvaluateResponse> {\n if (!this._response) {\n throw Error('logical bug')\n }\n return await this._response\n }\n\n public constructor(evaluateRequest: EvaluateRequest, workerRelease: string | null, vlmFetch: VlmFetch, requestLogger: Logger) {\n this._vlmFetch = vlmFetch\n\n this._evaluateRequest = evaluateRequest\n this._workerRelease = workerRelease\n\n this._requestLogger = requestLogger\n }\n\n public start(done: () => void): EvaluateDatasetJob {\n this._response = new Promise<EvaluateResponse>(async (resolve, reject) => {\n try {\n let requestId = null\n while (true) {\n let response = null\n if (requestId) {\n response = await this._vlmFetch(`/api/v1/evaluations/${requestId}?timeout=20`, {\n method: 'GET',\n })\n } else {\n const workerReleaseQuery = this._workerRelease? `&worker_release=${this._workerRelease}`: ''\n response = await this._vlmFetch(`/api/v1/evaluations?timeout=20${workerReleaseQuery}`, {\n method: 'POST',\n body: JSON.stringify(this._evaluateRequest),\n headers: { 'Content-Type': 'application/json' }\n })\n }\n const runInfo = response['run_info']\n if (runInfo) {\n resolve(response)\n break\n } else {\n requestId = response['request_id']\n if (!requestId) {\n reject(`missing request_id in response: ${JSON.stringify(response)}`)\n break\n }\n }\n }\n } catch (reason) {\n reject(reason)\n } finally {\n done()\n }\n })\n return this\n }\n\n public cancel(): void {\n this._controller.abort('cancelled')\n }\n}\n","import { SessionAuth } from '../options'\nimport { EndpointState } from '../types'\nimport { createWebSocket } from '../shims/websockets'\nimport { Endpoint } from '../endpoint'\nimport urljoin from 'url-join'\nimport { DataOptions } from './data_options'\nimport {\n Annotation,\n AnnotationInclusionMode,\n ArtifactType,\n Asset,\n AssetImport,\n AssetInclusionMode,\n AssetUrlType,\n AutoAnnotate,\n AutoAnnotateParams,\n AutoPromptConfig,\n AutoTask,\n ChangeEvent,\n ChangeType,\n CreateWorkflow,\n DataApiType,\n DataSession,\n Dataset,\n DatasetAutoAnnotate,\n DatasetAutoAnnotateCreate,\n DatasetAutoAnnotateUpdate,\n DatasetCreate,\n DatasetHeroAssetUpdate,\n DatasetUpdate,\n DownloadResponse,\n EvaluateRequest,\n ExportedBy,\n getBaseUrl,\n InferRequest,\n ListWorkFlowItem,\n Model,\n ModelCreate,\n ModelFormat,\n ModelTrainingProgress,\n ModelUpdate,\n OnChangeEvent,\n QcAiHubExportParams,\n Roi,\n TranscodeMode,\n UserReview,\n VlmAbility,\n VlmAbilityCreate,\n VlmAbilityGroup,\n VlmAbilityGroupCreate,\n VlmAbilityGroupUpdate,\n VlmAbilityUpdate,\n AliasResolution,\n Workflow,\n WorkflowPhase,\n} from './data_types'\nimport { Prediction } from '@eyepop.ai/eyepop'\nimport { EvaluateDatasetJob, InferAssetJob } from './jobs'\n\ninterface DataConfig {\n dataset_api_url: string\n vlm_api_url: string\n}\n\nconst WS_INITIAL_RECONNECT_DELAY = 1000\nconst WS_MAX_RECONNECT_DELAY = 60000\n\nfunction omit_nulls(_: any, value: any) {\n if (value === null) {\n return undefined\n }\n return value\n}\n\nexport class DataEndpoint extends Endpoint<DataEndpoint> {\n private datasetApiUrl: string | null\n private vlmApiUrl: string | null\n private _accountId: string | null\n\n private _ws: WebSocket | null\n private _ws_current_reconnect_delay: number | null\n\n private _account_event_handlers: OnChangeEvent[]\n private _dataset_uuid_to_event_handlers: Map<string, OnChangeEvent[]>\n\n constructor(options: DataOptions) {\n super(options)\n this.datasetApiUrl = null\n this.vlmApiUrl = null\n this._ws = null\n this._ws_current_reconnect_delay = null\n this._accountId = options.accountId || null\n this._account_event_handlers = []\n this._dataset_uuid_to_event_handlers = new Map<string, OnChangeEvent[]>()\n const sessionAuth: SessionAuth = options.auth as SessionAuth\n if (sessionAuth.session !== undefined) {\n const dataSession = sessionAuth.session as DataSession\n if (dataSession.accountId) {\n this._accountId = dataSession.accountId\n }\n }\n }\n\n public override async session(): Promise<DataSession> {\n const session = await super.session()\n return {\n eyepopUrl: session.eyepopUrl,\n accessToken: session.accessToken,\n validUntil: session.validUntil,\n accountId: this.options().accountId as string,\n datasetApiUrl: this.datasetApiUrl as string,\n vlmApiUrl: this.vlmApiUrl as string,\n }\n }\n\n public override async disconnect(wait: boolean = true): Promise<void> {\n this.datasetApiUrl = null\n this.vlmApiUrl = null\n if (this._ws) {\n try {\n this._ws.close()\n } catch (e) {\n this._logger.warn('ignored exception', e)\n }\n this._ws = null\n }\n await super.disconnect(wait)\n }\n\n protected override async reconnect(): Promise<DataEndpoint> {\n if (!this._client) {\n return Promise.reject('endpoint not initialized')\n }\n const accountUuidQuery = this._accountId ? `?account_uuid=${this._accountId}` : ''\n const config_url = `${this.eyepopUrl()}/v1/configs${accountUuidQuery}`\n let headers = {\n Authorization: await this.authorizationHeader(),\n }\n this.updateState(EndpointState.FetchConfig)\n let response = await this._client.fetch(config_url, { headers: headers })\n if (response.status == 401) {\n this._requestLogger.debug('GET %s: 401, about to retry with fresh access token', config_url)\n // one retry, the token might have just expired\n this.statusHandler401(response.status)\n headers = {\n Authorization: await this.authorizationHeader(),\n }\n this.updateState(EndpointState.FetchConfig)\n response = await this._client.fetch(config_url, {\n headers: headers,\n })\n }\n\n if (response.status != 200) {\n this.updateState(EndpointState.Error)\n const message = await response.text()\n return Promise.reject(`Unexpected status ${response.status} for ${config_url}: ${message}`)\n }\n let config = (await response.json()) as DataConfig\n\n const datasetApiUrl = new URL(config.dataset_api_url, this.eyepopUrl())\n this.datasetApiUrl = datasetApiUrl.toString()\n const vlmApiUrl = new URL(config.vlm_api_url, this.eyepopUrl())\n this.vlmApiUrl = vlmApiUrl.toString()\n\n if (this.options().disableWs) {\n this._logger.info('disabled ws connection')\n } else {\n await this.reconnect_ws()\n }\n\n if (this.options().useCookie) {\n const client = this._client\n const url = urljoin(this.datasetApiUrl, 'security', 'check?set_cookie=true')\n const headers = {\n Authorization: await this.authorizationHeader(),\n }\n response = await client.fetch(url, {\n headers: headers,\n })\n if (response.status != 204) {\n this.updateState(EndpointState.Error)\n const message = await response.text()\n return Promise.reject(`Unexpected status ${response.status}: ${message}`)\n }\n }\n\n this.updateState()\n return Promise.resolve(this)\n }\n\n private async reconnect_ws(): Promise<void> {\n if (this._ws) {\n this._ws.close()\n this._ws = null\n }\n const baseUrl = this.datasetApiUrl?.replace('https://', 'wss://').replace('http://', 'ws://')\n if (!baseUrl) {\n return\n }\n const ws_url = urljoin(baseUrl, 'events')\n this._requestLogger.debug('about to connect ws to: %s', ws_url)\n return new Promise((resolve, reject) => {\n const ws = createWebSocket(ws_url)\n if (!ws) {\n return resolve()\n }\n this._ws = ws\n\n ws.onopen = async () => {\n const auth_header = await this.authorizationHeader()\n let msg = JSON.stringify({ authorization: auth_header })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n msg = JSON.stringify({ subscribe: { account_uuid: this._accountId } })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n for (let dataset_uuid in this._dataset_uuid_to_event_handlers.keys()) {\n const msg = JSON.stringify({ subscribe: { dataset_uuid: dataset_uuid } })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n }\n this._ws_current_reconnect_delay = WS_INITIAL_RECONNECT_DELAY\n resolve()\n }\n\n ws.onmessage = event => {\n const data = JSON.parse(event.data)\n this._requestLogger.debug('received ws: %s', JSON.stringify(data))\n const change_event = data as ChangeEvent\n this.dispatchChangeEvent(change_event)\n }\n\n ws.onclose = (event: CloseEvent) => {\n const { code, reason } = event\n this._requestLogger.debug('ws closed: %d %s', code, reason)\n\n if (reason !== 'unsubscribe') {\n if (!this._ws_current_reconnect_delay) {\n this._ws_current_reconnect_delay = WS_INITIAL_RECONNECT_DELAY\n } else if (this._ws_current_reconnect_delay < WS_MAX_RECONNECT_DELAY) {\n this._ws_current_reconnect_delay *= 1.5\n }\n setTimeout(async () => {\n await this.reconnect_ws()\n }, this._ws_current_reconnect_delay)\n }\n }\n\n ws.onerror = (event: Event): any => {\n this._logger.error(event)\n reject(event)\n return null\n }\n })\n }\n\n private options(): DataOptions {\n return this._options as DataOptions\n }\n\n private async request(path: string, options: RequestInit = {}, disableAuth: boolean = false, dataApiType: DataApiType = DataApiType.dataset) {\n const client = this._client\n if (!client) {\n return Promise.reject('endpoint not connected')\n }\n let response = await this.fetchWithRetry(async () => {\n const session = await this.session()\n\n const baseUrl = getBaseUrl(session, dataApiType)\n const headers = {\n ...(disableAuth ? {} : { Authorization: `Bearer ${session.accessToken}` }),\n ...(options.headers || {}),\n }\n\n if (!options.body) {\n options.body = null\n }\n\n const ri = {\n headers: headers,\n method: options.method || 'GET',\n body: options.body,\n }\n this._requestLogger.debug('Request - ' + ri.method + ' ' + path + ' BODY: ' + (ri.body ? ri.body : ''))\n\n return await client.fetch(urljoin(baseUrl ?? '', path), ri)\n })\n\n if (response.status === 204) {\n return null // Return null if the response is completely empty\n }\n\n const contentType = response.headers.get('Content-Type')\n this._requestLogger.debug('Response - ' + response.status + ' ' + response.statusText)\n\n if (!response.ok) {\n if (contentType && (contentType.toLowerCase().startsWith('application/json') || contentType.toLowerCase().startsWith('text/'))) {\n throw new Error(`Request failed with ${response.status} ${response.statusText}: ${await response.text()}`)\n } else {\n throw new Error(`Request failed with ${response.status} ${response.statusText}`)\n }\n }\n\n if (contentType && contentType.toLowerCase().startsWith('application/json')) {\n return await response.json()\n }\n\n return await response.blob()\n }\n\n async listDatasets(include_stats: boolean = true, modifiable_version_only?: boolean): Promise<Dataset[]> {\n const modifiableVersionQuery = typeof modifiable_version_only !== 'undefined' ? `&modifiable_version_only=${modifiable_version_only}` : ''\n return this.request(`/datasets?account_uuid=${this._accountId}&include_stats=${include_stats}${modifiableVersionQuery}`, {\n method: 'GET',\n })\n }\n\n async createDataset(data: DatasetCreate): Promise<Dataset> {\n return this.request(`/datasets?account_uuid=${this._accountId}`, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async getDataset(dataset_uuid: string, include_stats: boolean = true, dataset_version?: number, modifiable_version_only?: boolean): Promise<Dataset> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const modifiableVersionQuery = typeof modifiable_version_only !== 'undefined' ? `&modifiable_version_only=${modifiable_version_only}` : ''\n return this.request(`/datasets/${dataset_uuid}?include_stats=${include_stats}${versionQuery}${modifiableVersionQuery}`, {\n method: 'GET',\n })\n }\n\n async updateDataset(dataset_uuid: string, data: DatasetUpdate, start_auto_annotate: boolean = true): Promise<Dataset> {\n return this.request(`/datasets/${dataset_uuid}?start_auto_annotate=${start_auto_annotate}`, {\n method: 'PATCH',\n body: JSON.stringify(data),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async updateDatasetHeroAsset(dataset_uuid: string, update: DatasetHeroAssetUpdate): Promise<Dataset> {\n return this.request(`/datasets/${dataset_uuid}/hero_asset`, {\n method: 'PATCH',\n body: JSON.stringify(update),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async deleteDataset(dataset_uuid: string): Promise<void> {\n return this.request(`/datasets/${dataset_uuid}`, {\n method: 'DELETE',\n })\n }\n\n async freezeDatasetVersion(dataset_uuid: string, dataset_version?: number): Promise<Dataset> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n return this.request(`/datasets/${dataset_uuid}/freeze?${versionQuery}`, {\n method: 'POST',\n })\n }\n\n async analyzeDatasetVersion(dataset_uuid: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n return this.request(`/datasets/${dataset_uuid}/analyze?${versionQuery}`, {\n method: 'POST',\n })\n }\n\n async autoAnnotateDatasetVersion(dataset_uuid: string, dataset_version?: number, max_assets?: number): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const maxAssetsQuery = max_assets ? `&max_assets=${max_assets}` : ''\n return this.request(`/datasets/${dataset_uuid}/auto_annotate?${versionQuery}${maxAssetsQuery}`, {\n method: 'POST',\n })\n }\n\n async deleteDatasetVersion(dataset_uuid: string, dataset_version: number): Promise<Dataset> {\n return this.request(`/datasets/${dataset_uuid}/versions?dataset_version=${dataset_version}`, {\n method: 'DELETE',\n })\n }\n\n async deleteAnnotations(dataset_uuid: string, dataset_version: number, user_reviews: UserReview[] = [UserReview.unknown]): Promise<void> {\n let userReviewsQuery = ''\n for (let userReview in user_reviews) {\n userReviewsQuery += `&user_review=${userReview}`\n }\n await this.request(`/datasets/${dataset_uuid}/annotations?dataset_version=${dataset_version}${userReviewsQuery}`, {\n method: 'DELETE',\n })\n }\n\n async createDatasetAutoAnnotate(create: DatasetAutoAnnotateCreate, dataset_uuid: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `dataset_version=${dataset_version}&` : ''\n return this.request(`/datasets/${dataset_uuid}/auto_annotates?${versionQuery}`, {\n method: 'POST',\n body: JSON.stringify(create),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async updateDatasetAutoAnnotate(update: DatasetAutoAnnotateUpdate, dataset_uuid: string, auto_annotate: string, source: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `dataset_version=${dataset_version}&` : ''\n return this.request(`/datasets/${dataset_uuid}/auto_annotates?auto_annotate=${auto_annotate}&source=${encodeURIComponent(source)}&${versionQuery}`, {\n method: 'PATCH',\n body: JSON.stringify(update),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async listDatasetAutoAnnotates(dataset_uuid: string, auto_annotate?: string, source?: string, dataset_version?: number): Promise<DatasetAutoAnnotate[]> {\n const versionQuery = dataset_version ? `dataset_version=${dataset_version}&` : ''\n const autoAnnotateQuery = auto_annotate ? `auto_annotate=${auto_annotate}&` : ''\n const sourceQuery = source ? `source=${source}&` : ''\n return this.request(`/datasets/${dataset_uuid}/auto_annotates?${versionQuery}&${autoAnnotateQuery}&${sourceQuery}`, {\n method: 'GET',\n })\n }\n\n // Asset methods\n async uploadAsset(dataset_uuid: string, dataset_version: number | undefined, blob: Blob, external_id: string | undefined = undefined): Promise<Asset> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n let post_path: string\n if (external_id) {\n post_path = `/assets?dataset_uuid=${dataset_uuid}${versionQuery}&external_id=${external_id}`\n } else {\n post_path = `/assets?dataset_uuid=${dataset_uuid}${versionQuery}`\n }\n\n return this.request(post_path, {\n method: 'POST',\n body: blob,\n headers: {\n 'Content-Type': blob.type || 'application/octet-stream',\n },\n })\n }\n\n async importAsset(dataset_uuid: string, dataset_version: number | undefined, asset_import: AssetImport, external_id: string | undefined = undefined): Promise<Asset> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n let post_path: string\n if (external_id) {\n post_path = `/assets/imports?dataset_uuid=${dataset_uuid}${versionQuery}&external_id=${external_id}`\n } else {\n post_path = `/assets/imports?dataset_uuid=${dataset_uuid}${versionQuery}`\n }\n\n return this.request(post_path, {\n method: 'POST',\n body: JSON.stringify(asset_import),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n }\n\n async listAssets(\n dataset_uuid: string,\n dataset_version?: number,\n include_annotations: boolean = false,\n top_k?: number,\n inclusion_mode?: AssetInclusionMode,\n annotation_inclusion_mode?: AnnotationInclusionMode,\n include_partitions?: string[],\n include_auto_annotates?: AutoAnnotate[],\n include_sources?: string[],\n ): Promise<Asset[]> {\n const params = new URLSearchParams()\n params.set('dataset_uuid', dataset_uuid)\n if (dataset_version != null) params.set('dataset_version', String(dataset_version))\n if (include_annotations) params.set('include_annotations', 'true')\n if (inclusion_mode != null) params.set('inclusion_mode', inclusion_mode)\n if (annotation_inclusion_mode != null) params.set('annotation_inclusion_mode', annotation_inclusion_mode)\n for (const p of include_partitions ?? []) params.append('include_partition', p)\n for (const a of include_auto_annotates ?? []) params.append('include_auto_annotate', a)\n for (const s of include_sources ?? []) params.append('include_source', s)\n if (top_k != null) params.set('top_k', String(top_k))\n return this.request(`/assets?${params.toString()}`, {\n method: 'GET',\n })\n }\n\n async getAsset(asset_uuid: string, dataset_uuid?: string, dataset_version?: number, include_annotations: boolean = false, top_k?: number): Promise<Asset> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const annotationsQuery = include_annotations ? '&include_annotations=true' : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n const topKQuery = top_k ? `&top_k=${top_k}` : ''\n return this.request(`/assets/${asset_uuid}?${datasetQuery}${versionQuery}${annotationsQuery}${topKQuery}`, {\n method: 'GET',\n })\n }\n\n async deleteAsset(asset_uuid: string, dataset_uuid?: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n return this.request(`/assets/${asset_uuid}?${datasetQuery}${versionQuery}`, {\n method: 'DELETE',\n })\n }\n\n async resurrectAsset(asset_uuid: string, dataset_uuid: string, from_dataset_version: number, into_dataset_version?: number): Promise<void> {\n const intoVersionQuery = into_dataset_version ? `&into_dataset_version=${into_dataset_version}` : ''\n return this.request(`/assets/${asset_uuid}/resurrect?dataset_uuid=${dataset_uuid}&from_dataset_version=${from_dataset_version}${intoVersionQuery}`, {\n method: 'POST',\n })\n }\n\n async updateAssetGroundTruth(asset_uuid: string, dataset_uuid?: string, dataset_version?: number, predictions?: Prediction[]): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n return this.request(`/assets/${asset_uuid}/ground_truth?${datasetQuery}${versionQuery}`, {\n method: 'PATCH',\n body: JSON.stringify(predictions),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async deleteAssetGroundTruth(asset_uuid: string, dataset_uuid?: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n return this.request(`/assets/${asset_uuid}/ground_truth?${datasetQuery}${versionQuery}`, {\n method: 'DELETE',\n })\n }\n\n async updateAutoAnnotationStatus(asset_uuid: string, auto_annotate: string, user_review: UserReview, approved_threshold?: number): Promise<void> {\n const validStatuses = ['approved', 'rejected', 'unknown']\n if (!validStatuses.includes(user_review)) {\n throw new Error('Invalid status')\n }\n const thresholdQuery = approved_threshold ? `?approved_threshold=${approved_threshold}` : ''\n return this.request(`/assets/${asset_uuid}/auto_annotations/${auto_annotate}/user_review/${user_review}${thresholdQuery}`, {\n method: 'PATCH',\n })\n }\n\n async addAssetAnnotation(\n asset_uuid: string,\n dataset_uuid?: string,\n dataset_version?: number,\n predictions?: Prediction[],\n auto_annotate?: string,\n source?: string,\n user_review?: UserReview,\n approved_threshold?: number,\n ): Promise<void> {\n const datasetQuery = dataset_uuid ? `dataset_uuid=${dataset_uuid}&` : ''\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}&` : ''\n const autoAnnotateQuery = auto_annotate ? `&auto_annotate=${auto_annotate}&` : ''\n const sourceQuery = source ? `&source=${encodeURIComponent(source)}&` : ''\n const userReviewQuery = user_review ? `&user_review=${user_review}&` : ''\n const approvedThresholdQuery = typeof approved_threshold !== 'undefined' ? `&approved_threshold=${approved_threshold}&` : ''\n return this.request(`/assets/${asset_uuid}/annotations?${datasetQuery}${versionQuery}${autoAnnotateQuery}${sourceQuery}${userReviewQuery}${approvedThresholdQuery}`, {\n method: 'POST',\n body: JSON.stringify(predictions),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async updateAssetAnnotationApproval(\n asset_uuid: string,\n dataset_uuid?: string,\n dataset_version?: number,\n auto_annotate?: string,\n source?: string,\n user_review?: UserReview,\n approved_threshold?: number,\n ): Promise<void> {\n const datasetQuery = dataset_uuid ? `dataset_uuid=${dataset_uuid}&` : ''\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}&` : ''\n const autoAnnotateQuery = auto_annotate ? `&auto_annotate=${auto_annotate}&` : ''\n const sourceQuery = source ? `&source=${encodeURIComponent(source)}&` : ''\n const userReviewQuery = user_review ? `&user_review=${user_review}&` : ''\n const approvedThresholdQuery = approved_threshold ? `&approved_threshold=${approved_threshold}&` : ''\n return this.request(`/assets/${asset_uuid}/annotations?${datasetQuery}${versionQuery}${autoAnnotateQuery}${sourceQuery}${userReviewQuery}${approvedThresholdQuery}`, {\n method: 'PATCH',\n })\n }\n\n async downloadAsset(\n asset_uuid: string,\n dataset_uuid?: string,\n dataset_version?: number,\n transcode_mode: TranscodeMode = TranscodeMode.original,\n start_timestamp?: number,\n end_timestamp?: number,\n url_type?: AssetUrlType,\n ): Promise<Blob | DownloadResponse> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n const startTimestampQuery = start_timestamp ? `&start_timestamp=${start_timestamp}` : ''\n const endTimestampQuery = end_timestamp ? `&end_timestamp=${end_timestamp}` : ''\n const urlTypeQuery = url_type ? `&url_type=${url_type}` : ''\n\n return this.request(`/assets/${asset_uuid}/download?transcode_mode=${transcode_mode}${datasetQuery}${versionQuery}${startTimestampQuery}${endTimestampQuery}${urlTypeQuery}`, {\n method: 'GET',\n })\n }\n\n async previewAutoAnnotateAsset(asset_uuid: string, auto_annotate: string, auto_annotate_params?: AutoAnnotateParams): Promise<Annotation> {\n return this.request(`/assets/${asset_uuid}/preview_auto_annotate?auto_annotate=${auto_annotate}`, {\n method: 'POST',\n body: auto_annotate_params ? JSON.stringify(auto_annotate_params) : null,\n headers: auto_annotate_params ? { 'Content-Type': 'application/json' } : {},\n })\n }\n\n async addAssetRoi(asset_uuid: string, roi: Roi, dataset_uuid?: string, dataset_version?: number, predictions?: Prediction[]): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n return this.request(`/assets/${asset_uuid}/rois?${datasetQuery}${versionQuery}`, {\n method: 'POST',\n body: JSON.stringify(roi),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async deleteAssetRoi(asset_uuid: string, name: string, dataset_uuid?: string, dataset_version?: number): Promise<void> {\n const versionQuery = dataset_version ? `&dataset_version=${dataset_version}` : ''\n const datasetQuery = dataset_uuid ? `&dataset_uuid=${dataset_uuid}` : ''\n return this.request(`/assets/${asset_uuid}/rois/${encodeURIComponent(name)}?${datasetQuery}${versionQuery}`, {\n method: 'DELETE',\n })\n }\n\n // Model methods\n async listModels(): Promise<Model[]> {\n return this.request(`/models?account_uuid=${this._accountId}`, {\n method: 'GET',\n })\n }\n\n async findModelsForDataset(dataset_uuid: string): Promise<Model[]> {\n return this.request(`/models?dataset_uuid=${dataset_uuid}`, {\n method: 'GET',\n })\n }\n\n async createModel(dataset_uuid: string, dataset_version: number, data: ModelCreate, start_training: boolean = true): Promise<Model> {\n return this.request(`/models?dataset_uuid=${dataset_uuid}&dataset_version=${dataset_version}&start_training=${start_training}`, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async getModel(model_uuid: string): Promise<Model> {\n return this.request(`/models/${model_uuid}`, {\n method: 'GET',\n })\n }\n\n async getModelTrainingProgress(model_uuid: string): Promise<ModelTrainingProgress> {\n return this.request(`/models/${model_uuid}/progress`, {\n method: 'GET',\n })\n }\n\n async updateModel(model_uuid: string, data: ModelUpdate): Promise<Model> {\n return this.request(`/models/${model_uuid}`, {\n method: 'PATCH',\n body: JSON.stringify(data),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async deleteModel(model_uuid: string): Promise<void> {\n return this.request(`/models/${model_uuid}`, {\n method: 'DELETE',\n })\n }\n\n async trainModel(model_uuid: string): Promise<Model> {\n return this.request(`/models/${model_uuid}/train`, {\n method: 'POST',\n })\n }\n\n async publishModel(model_uuid: string): Promise<Model> {\n return this.request(`/models/${model_uuid}/publish`, {\n method: 'POST',\n })\n }\n\n async exportModel(model_uuid: string, export_by: ExportedBy, params: QcAiHubExportParams[]): Promise<void> {\n if (export_by != ExportedBy.qc_ai_hub) {\n return Promise.reject(`Unexpected export_by ${export_by}, must be 'qc_ai_hub'`)\n }\n await this.request(`/models/${model_uuid}/exports/qc_ai_hub`, {\n method: 'POST',\n body: JSON.stringify(params),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async downloadModelArtifacts(model_uuid: string, model_formats?: ModelFormat[], device_name?: string, artifact_type?: ArtifactType) {\n const artifactTypeQuery = artifact_type ? `artifact_type=${artifact_type}&` : ''\n const deviceNameQuery = device_name ? `device_name=${encodeURIComponent(device_name)}&` : ''\n let modelFormatQuery = ''\n if (model_formats) {\n for (const model_format of model_formats) {\n modelFormatQuery += `model_format=${model_format}&`\n }\n }\n return this.request(`/exports/model_artifacts/?model_uuid=${model_uuid}&${artifactTypeQuery}${deviceNameQuery}${modelFormatQuery}`, {\n method: 'GET',\n })\n }\n\n public addAccountEventHandler(eventHandler: OnChangeEvent) {\n this._account_event_handlers.push(eventHandler)\n }\n\n public removeAccountEventHandler(eventHandler: OnChangeEvent) {\n this._account_event_handlers = this._account_event_handlers.filter(h => h !== eventHandler)\n }\n\n public addDatasetEventHandler(dataset_uuid: string, eventHandler: OnChangeEvent) {\n let event_handlers = this._dataset_uuid_to_event_handlers.get(dataset_uuid)\n this._logger.debug('addDatasetEventHandler %s', event_handlers)\n if (event_handlers === undefined) {\n event_handlers = []\n this._dataset_uuid_to_event_handlers.set(dataset_uuid, event_handlers)\n const ws = this._ws\n if (ws) {\n const msg = JSON.stringify({ subscribe: { dataset_uuid: dataset_uuid } })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n }\n }\n if (event_handlers.find(h => h === eventHandler) !== eventHandler) {\n this._logger.debug('addDatasetEventHandler event_handlers=%s', event_handlers)\n event_handlers.push(eventHandler)\n }\n }\n\n public removeDatasetEventHandler(dataset_uuid: string, eventHandler: OnChangeEvent) {\n let event_handlers = this._dataset_uuid_to_event_handlers.get(dataset_uuid)\n if (event_handlers === undefined) {\n return\n }\n event_handlers = event_handlers.filter(h => h !== eventHandler)\n if (event_handlers.length == 0) {\n const ws = this._ws\n if (ws) {\n const msg = JSON.stringify({ unsubscribe: { dataset_uuid: dataset_uuid } })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n }\n this._dataset_uuid_to_event_handlers.delete(dataset_uuid)\n }\n }\n\n public removeAllDatasetEventHandlers(dataset_uuid: string) {\n let event_handlers = this._dataset_uuid_to_event_handlers.get(dataset_uuid)\n if (event_handlers === undefined) {\n return\n }\n const ws = this._ws\n if (ws) {\n const msg = JSON.stringify({ unsubscribe: { dataset_uuid: dataset_uuid } })\n this._requestLogger.debug('ws send: %s', msg)\n ws.send(msg)\n }\n this._dataset_uuid_to_event_handlers.delete(dataset_uuid)\n }\n\n public async startWorkflow(account_uuid: string, template_name: string, workflow: CreateWorkflow): Promise<Workflow> {\n return this.request(`/workflows?account_uuid=${account_uuid}&template_name=${template_name}`, {\n method: 'POST',\n body: JSON.stringify(workflow),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n public async getWorkflow(workflow_id: string, account_uuid: string): Promise<ListWorkFlowItem> {\n return this.request(`/workflows/${workflow_id}?account_uuid=${account_uuid}`, {\n method: 'GET',\n })\n }\n\n public async listWorkflows(account_uuid: string, dataset_uuids?: string[], model_uuids?: string[], phases?: WorkflowPhase[]): Promise<ListWorkFlowItem[]> {\n const datasetQuery = dataset_uuids?.map(uuid => `dataset_uuid=${uuid}`).join('&') || ''\n const modelQuery = model_uuids?.map(uuid => `model_uuid=${uuid}`).join('&') || ''\n const phaseQuery = phases?.map(p => `phase=${p}`).join('&') || ''\n const queryParams = [datasetQuery, modelQuery, phaseQuery].filter(q => q).join('&')\n\n return this.request(`/workflows?account_uuid=${account_uuid}${queryParams ? `&${queryParams}` : ''}`, {\n method: 'GET',\n })\n }\n\n public async inferAsset(\n asset_uuid: string,\n infer_request: InferRequest,\n dataset_uuid?: string,\n dataset_version?: number,\n transcode_mode?: TranscodeMode,\n start_timestamp?: number,\n end_timestamp?: number,\n ): Promise<InferAssetJob> {\n const datasetQuery = dataset_uuid ? `dataset_uuid=${dataset_uuid}&` : ''\n const versionQuery = dataset_version ? `dataset_version=${dataset_version}&` : ''\n const transcodeModeQuery = transcode_mode ? `transcode_mode=${transcode_mode}&` : ''\n const startTimestampQuery = start_timestamp ? `start_timestamp=${start_timestamp}&` : ''\n const endTimestampQuery = end_timestamp ? `end_timestamp=${end_timestamp}&` : ''\n\n const assetUrl = `ai.eyepop://data/assets/${asset_uuid}?${transcodeModeQuery}${datasetQuery}${versionQuery}${startTimestampQuery}${endTimestampQuery}`\n\n if (!this.vlmApiUrl || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new InferAssetJob(\n assetUrl,\n infer_request,\n async (path: string, options: any) => {\n return await this.request(path, options, false, DataApiType.vlm)\n },\n this._requestLogger,\n )\n return job.start(() => {\n this.jobDone(job)\n })\n } catch (e) {\n // we'll have to reset our queue counter in case the job cannot be started\n this._limit.release()\n throw e\n }\n }\n\n public async evaluateDataset(evaluate_request: EvaluateRequest, worker_release?: string): Promise<EvaluateDatasetJob> {\n if (!this.vlmApiUrl || !this._client || !this._limit) {\n throw new Error('endpoint not connected, use connect()')\n }\n await this._limit.acquire()\n try {\n this.updateState()\n const job = new EvaluateDatasetJob(\n evaluate_request,\n worker_release ?? null,\n async (path: string, options: any) => {\n return await this.request(path, options, false, DataApiType.vlm)\n },\n this._requestLogger,\n )\n return job.start(() => {\n this.jobDone(job)\n })\n } catch (e) {\n // we'll have to reset our queue counter in case the job cannot be started\n this._limit.release()\n throw e\n }\n }\n\n private jobDone(_job: object) {\n this._limit?.release()\n }\n\n private async dispatchChangeEvent(change_event: ChangeEvent): Promise<void> {\n switch (change_event.change_type) {\n // account event types\n case ChangeType.dataset_added:\n case ChangeType.dataset_modified:\n case ChangeType.dataset_removed:\n case ChangeType.dataset_version_modified:\n case ChangeType.workflow_started:\n case ChangeType.workflow_succeeded:\n case ChangeType.workflow_failed:\n case ChangeType.workflow_task_started:\n case ChangeType.workflow_task_succeeded:\n case ChangeType.workflow_task_failed:\n this._logger.debug('dispatchChangeEvent account_event_handlers=%s', this._account_event_handlers)\n for (let handler of this._account_event_handlers) {\n await handler(change_event)\n }\n break\n // dataset event types\n case ChangeType.asset_added:\n case ChangeType.asset_removed:\n case ChangeType.asset_status_modified:\n case ChangeType.asset_annotation_modified:\n case ChangeType.model_added:\n case ChangeType.model_modified:\n case ChangeType.model_removed:\n case ChangeType.model_status_modified:\n case ChangeType.model_progress:\n const event_handlers = this._dataset_uuid_to_event_handlers.get(change_event.dataset_uuid)\n this._logger.debug('dispatchChangeEvent event_handlers=%s', event_handlers)\n if (event_handlers !== undefined) {\n for (let handler of event_handlers) {\n await handler(change_event)\n }\n }\n break\n }\n }\n\n // Vlm Ability Management\n\n async listVlmAbilityGroups(): Promise<VlmAbilityGroup[]> {\n return this.request(`/vlm_ability_groups?account_uuid=${this._accountId}`, {\n method: 'GET',\n })\n }\n\n async createVlmAbilityGroup(create: VlmAbilityGroupCreate): Promise<VlmAbilityGroup> {\n return this.request(`/vlm_ability_groups?account_uuid=${this._accountId}`, {\n method: 'POST',\n body: JSON.stringify(create, omit_nulls),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async getVlmAbilityGroup(vlm_ability_group_uuid: string): Promise<VlmAbilityGroup> {\n return this.request(`/vlm_ability_groups/${vlm_ability_group_uuid}`, {\n method: 'GET',\n })\n }\n\n async deleteVlmAbilityGroup(vlm_ability_group_uuid: string): Promise<void> {\n return this.request(`/vlm_ability_groups/${vlm_ability_group_uuid}`, {\n method: 'DELETE',\n })\n }\n\n async updateVlmAbilityGroup(vlm_ability_group_uuid: string, update: VlmAbilityGroupUpdate): Promise<VlmAbilityGroup> {\n return this.request(`/vlm_ability_groups/${vlm_ability_group_uuid}`, {\n method: 'PATCH',\n body: JSON.stringify(update),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async listVlmAbilities(): Promise<VlmAbility[]> {\n return this.request(`/vlm_abilities?account_uuid=${this._accountId}`, {\n method: 'GET',\n })\n }\n\n async createVlmAbility(create: VlmAbilityCreate, vlm_ability_group_uuid?: string): Promise<VlmAbility> {\n const groupQuery = vlm_ability_group_uuid ? `&vlm_ability_group_uuid=${vlm_ability_group_uuid}` : ''\n return this.request(`/vlm_abilities?account_uuid=${this._accountId}${groupQuery}`, {\n method: 'POST',\n body: JSON.stringify(create, omit_nulls),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async getVlmAbility(vlm_ability_uuid: string): Promise<VlmAbility> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}`, {\n method: 'GET',\n })\n }\n\n async deleteVlmAbility(vlm_ability_uuid: string): Promise<void> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}`, {\n method: 'DELETE',\n })\n }\n\n async updateVlmAbility(vlm_ability_uuid: string, update: VlmAbilityUpdate): Promise<VlmAbility> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}`, {\n method: 'PATCH',\n body: JSON.stringify(update),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async refineVlmAbility(vlm_ability_uuid: string, auto_prompt: AutoPromptConfig | undefined, auto_task?: AutoTask | undefined): Promise<VlmAbility> {\n if (auto_prompt !== undefined) {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/refine`, {\n method: 'POST',\n body: JSON.stringify(auto_prompt, omit_nulls),\n headers: {'Content-Type': 'application/json'},\n })\n } else if (auto_task !== undefined) {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/refine_task`, {\n method: 'POST',\n body: JSON.stringify(auto_task, omit_nulls),\n headers: {'Content-Type': 'application/json'},\n })\n } else {\n return Promise.reject(\"refine vlm ability requires auto_prompt or auto_config parameter\")\n }\n }\n\n async cloneVlmAbility(vlm_ability_uuid: string, account_uuid?: string, name?: string, default_alias_name?: string): Promise<VlmAbility> {\n const params = new URLSearchParams()\n if (account_uuid) {\n params.set('account_uuid', account_uuid)\n } else if (this._accountId) {\n params.set('account_uuid', this._accountId)\n }\n if (name) {\n params.set('name', name)\n }\n if (default_alias_name) {\n params.set('default_alias_name', default_alias_name)\n }\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/clone?${params.toString()}`, {\n method: 'POST'\n })\n }\n\n async publishVlmAbility(vlm_ability_uuid: string, alias_name?: string, tag_name?: string): Promise<VlmAbility> {\n const alias_name_query = alias_name ? `alias_name=${encodeURIComponent(alias_name)}&` : ''\n const tag_name_query = tag_name ? `tag_name=${encodeURIComponent(tag_name)}&` : ''\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/publish?${alias_name_query}${tag_name_query}`, {\n method: 'POST',\n })\n }\n\n async addVlmAbilityAlias(vlm_ability_uuid: string, alias_name: string, tag_name?: string): Promise<VlmAbility> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/alias/${encodeURIComponent(alias_name)}/tag/${tag_name ? encodeURIComponent(tag_name) : ''}`, {\n method: 'POST',\n })\n }\n\n async removeVlmAbilityAlias(vlm_ability_uuid: string, alias_name: string, tag_name: string): Promise<VlmAbility> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/alias/${encodeURIComponent(alias_name)}/tag/${encodeURIComponent(tag_name)}`, {\n method: 'DELETE',\n })\n }\n\n async listVlmAbilityEvaluations(vlm_ability_uuid: string): Promise<DatasetAutoAnnotate[]> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/evaluations`, {\n method: 'GET',\n })\n }\n\n async getVlmAbilityEvaluation(vlm_ability_uuid: string, source: string): Promise<DatasetAutoAnnotate> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/evaluations/${source}`, {\n method: 'GET',\n })\n }\n\n async startVlmAbilityEvaluation(vlm_ability_uuid: string, evaluate_request: EvaluateRequest): Promise<DatasetAutoAnnotate> {\n return this.request(`/vlm_abilities/${vlm_ability_uuid}/evaluations`, {\n method: 'POST',\n body: JSON.stringify(evaluate_request),\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n async resolveAliases(aliases: string[]): Promise<AliasResolution[]> {\n const params = new URLSearchParams()\n aliases.forEach(alias => {\n params.append('alias', alias)\n })\n return this.request(`/exports/aliases?${params.toString()}`, {\n method: 'GET',\n })\n }\n}\n","import { WebrtcBase } from './webrtc_base'\nimport { Logger } from 'pino'\nimport { WorkerSession } from '../worker/worker_types'\nimport { HttpClient } from '../options'\n\nexport class WebrtcWhep extends WebrtcBase {\n private _stream: MediaStream | null\n constructor(ingressId: string, getSession: () => Promise<WorkerSession>, client: HttpClient, requestLogger: Logger) {\n super(getSession, client, ingressId, 'liveIngress/whep', false, requestLogger)\n this._stream = null\n }\n public override async close(): Promise<void> {\n const stream = this._stream\n this._stream = null\n if (stream) {\n const tracks = stream.getTracks()\n tracks.forEach(track => {\n track.stop()\n })\n }\n return super.close()\n }\n\n public async stream(): Promise<MediaStream> {\n if (this._stream) {\n return Promise.resolve(this._stream)\n } else {\n return Promise.reject('fetching stream failed')\n }\n }\n\n public async start(): Promise<WebrtcWhep> {\n const session = await this._getSession()\n const egressUrl = this.gresUrl(session)\n /* According to https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html\n this should be a `OPTIONS` request. Unfortunately a lot of CORS middlewares\n hijack the OPTIONS request and only return those headers that are necessary\n for the CORS preflight protocol.\n As workaround, our media endpoint expose a equivalent `GET` request to fake\n the `OPTIONS` request and bypass the CORS preflight trap\n */\n const response = await this._client.fetch(egressUrl, {\n headers: session.authenticationHeaders(),\n method: 'GET',\n })\n if (response.status >= 300) {\n return Promise.reject(`unknown status code for GET '${egressUrl}': ${response.status} (${response.statusText})`)\n }\n return this.onIceServers(response)\n }\n\n protected async onRemoteAnswer(answer: RTCSessionDescription): Promise<WebrtcBase> {\n if (!this._pc) {\n throw new Error('onLocalOffer no peer connection')\n }\n\n await this._pc.setRemoteDescription(new RTCSessionDescription(answer))\n\n if (this._queuedCandidates.length !== 0) {\n await this.sendLocalCandidates(this._queuedCandidates)\n this._queuedCandidates = []\n }\n return this\n }\n\n private async onIceServers(response: Response): Promise<WebrtcWhep> {\n if (this._stream) {\n throw new Error('onIceServers has stream')\n }\n const pc = new RTCPeerConnection({\n iceServers: WebrtcBase.linkToIceServers(response.headers.get('Link')),\n })\n\n const direction = 'sendrecv'\n pc.addTransceiver('video', { direction })\n pc.onicecandidate = evt => this.onLocalCandidate(evt)\n\n this._pc = pc\n\n this._requestLogger.info(`onIceServers ${pc.iceConnectionState}`)\n\n return new Promise(async (resolve, reject) => {\n pc.ontrack = evt => {\n this._requestLogger.debug(`new track: ${evt.track.kind}`)\n this._stream = evt.streams[0] || null\n resolve(this)\n }\n pc.oniceconnectionstatechange = () => {\n switch (pc.iceConnectionState) {\n case 'failed':\n case 'disconnected':\n this._requestLogger.debug('oniceconnectionstatechange disconnected')\n reject(`peer connection: ${pc.iceConnectionState}`)\n break\n case 'connected':\n this._requestLogger.debug('oniceconnectionstatechange connected')\n break\n }\n }\n await this.onLocalOffer(await pc.createOffer())\n })\n }\n}\n","import {ApiKeyAuth, LocalAuth, OAuth2Auth, Options, SessionAuth} from './options'\n\nimport { WorkerEndpoint } from './worker/worker_endpoint'\nimport { DataEndpoint } from './data/data_endpoint'\n\nimport { TransientPopId, WorkerOptions } from './worker/worker_options'\nimport { DataOptions } from './data/data_options'\nimport { WorkerSession } from './worker/worker_types'\nimport { DataSession } from './data/data_types'\n\nexport { WorkerEndpoint } from './worker/worker_endpoint'\nexport { DataEndpoint } from './data/data_endpoint'\n\nexport {\n Session,\n EndpointState,\n StreamTime,\n Prediction,\n PredictedClass,\n PredictedObject,\n PredictedMesh,\n PredictedKeyPoint,\n PredictedKeyPoints,\n PredictedMotion,\n Contour,\n Point2d,\n Point3d\n} from './types'\n\nexport {\n ChangeType,\n DataSession,\n ModelType,\n ChangeEvent,\n Asset,\n AnnotationType,\n Annotation,\n AssetStatus,\n OnChangeEvent,\n Model,\n ModelStatus,\n ModelUpdate,\n ModelCreate,\n DatasetCreate,\n Dataset,\n DatasetUpdate,\n DatasetHeroAssetUpdate,\n DatasetVersion,\n UserReview,\n TranscodeMode,\n AutoAnnotateParams,\n ModelTrainingStage,\n ModelTrainingProgress,\n ModelMetrics,\n ModelSample,\n AssetImport,\n ModelExport,\n ModelExportStatus,\n ModelPrecisionType,\n ModelFormat,\n QcAiHubExportParams,\n ExportedBy,\n ArtifactType,\n DatasetParent,\n CreateWorkflowConfig,\n CreateWorkflow,\n Workflow,\n DownloadResponse,\n AssetUrlType,\n AutoAnnotateStatus,\n DatasetAutoAnnotate,\n DatasetAutoAnnotateCreate,\n DatasetAutoAnnotateUpdate,\n InferRuntimeConfig,\n TransformInto,\n InferRequest,\n EvaluateFilter,\n EvaluateConfig,\n EvaluateRequest,\n EvaluationStatus,\n EvaluateRunInfo,\n EvaluateResponse,\n InferRunInfo,\n VlmAbilityStatus,\n AutoPromptConfig,\n AbilityAliasEntry,\n VlmAbilityCreate,\n VlmAbilityUpdate,\n VlmAbility,\n VlmAbilityGroupCreate,\n VlmAbilityGroupUpdate,\n VlmAbilityGroup,\n AliasResolution,\n AreaType,\n BaseArea,\n RectangleArea,\n ContourArea,\n TimeSpan,\n Roi,\n TaskType,\n BaseTask,\n ClassificationTask,\n AutoTask\n} from './data/data_types'\n\nexport {\n WorkerSession,\n FileSource,\n MediaStreamSource,\n Source,\n PathSource,\n UrlSource,\n AssetUuidSource,\n StreamSource,\n ResultStream,\n VideoMode,\n ComponentParams,\n ProcessParams,\n ProcessRequest,\n MotionDetectConfig,\n PredictionVersion,\n DEFAULT_PREDICTION_VERSION\n} from './worker/worker_types'\n\nexport { Options, Authentication, SessionAuth, ApiKeyAuth, OAuth2Auth, Auth0Options, HttpClient, PlatformSupport, LocalAuth } from './options'\n\nexport { DataOptions } from './data/data_options'\n\nexport { WorkerOptions, TransientPopId } from './worker/worker_options'\n\nexport { EyepopLineDecoder } from './streaming'\n\nconst readEnv = (env: string): string | undefined => {\n if (typeof process !== 'undefined') {\n return process.env?.[env] ?? undefined\n }\n return undefined\n}\n\nconst stringToBooleanSafe = (str?: string): boolean => {\n if (typeof str == 'undefined') {\n return false\n }\n const loweCaseStr = str.toLowerCase()\n return loweCaseStr == 'true' || loweCaseStr == 'yes'\n}\n\nexport namespace EyePop {\n const envApiKey = readEnv('EYEPOP_API_KEY')\n\n const defaultAuth: ApiKeyAuth | undefined =\n envApiKey ? {\n apiKey: envApiKey\n } : undefined\n\n /**\n * @deprecated use workerEndpoint() instead\n */\n export const endpoint = workerEndpoint\n\n export function workerEndpoint(opts: WorkerOptions = {}): WorkerEndpoint {\n if (opts.isLocalMode === undefined) {\n opts.isLocalMode = stringToBooleanSafe(readEnv('EYEPOP_LOCAL_MODE'))\n }\n if (opts.isLocalMode) {\n opts.eyepopUrl = 'http://127.0.0.1:8080'\n }\n _fill_default_options(opts)\n if (opts.auth === undefined) {\n if (opts.isLocalMode) {\n opts.auth = { isLocal: true } as LocalAuth\n } else {\n throw new Error('auth option or EYEPOP_API_KEY environment variable is required')\n }\n }\n if (opts.popId === undefined) {\n opts.popId = readEnv('EYEPOP_POP_ID') || TransientPopId.Transient\n }\n\n if (opts.autoStart === undefined) {\n opts.autoStart = true\n }\n\n if (opts.stopJobs === undefined) {\n opts.stopJobs = true\n }\n\n if (opts.auth !== undefined) {\n if ((opts.auth as SessionAuth).session !== undefined) {\n if (((opts.auth as SessionAuth).session as WorkerSession) !== undefined) {\n if (((opts.auth as SessionAuth).session as WorkerSession).popId) {\n opts.popId = ((opts.auth as SessionAuth).session as WorkerSession).popId\n }\n }\n }\n }\n return new WorkerEndpoint(opts)\n }\n\n export function dataEndpoint(opts: DataOptions = {}): DataEndpoint {\n _fill_default_options(opts)\n if (opts.auth === undefined) {\n throw new Error('auth option or EYEPOP_API_KEY environment variable is required')\n }\n if (opts.accountId === undefined) {\n opts.accountId = readEnv('EYEPOP_ACCOUNT_ID')\n }\n if ((opts.auth as SessionAuth).session !== undefined) {\n if (((opts.auth as SessionAuth).session as DataSession) !== undefined) {\n if (((opts.auth as SessionAuth).session as DataSession).accountId) {\n opts.accountId = ((opts.auth as SessionAuth).session as DataSession).accountId\n }\n }\n }\n return new DataEndpoint(opts)\n }\n\n function _fill_default_options(opts: Options) {\n if (!opts.auth) {\n opts.auth = defaultAuth\n }\n\n if (!opts.eyepopUrl && opts.auth && (opts.auth as SessionAuth).session && (opts.auth as SessionAuth).session.eyepopUrl) {\n // Pre-authenticated browser session may overwrite eyepopUrl\n opts.eyepopUrl = (opts.auth as SessionAuth).session.eyepopUrl\n }\n\n if (!opts.eyepopUrl) {\n opts.eyepopUrl = readEnv('EYEPOP_URL')\n }\n\n if (!opts.eyepopUrl) {\n opts.eyepopUrl = 'https://compute.eyepop.ai'\n }\n\n if (opts.auth) {\n if ((opts.auth as OAuth2Auth).oAuth2 !== undefined) {\n if (typeof (opts.auth as OAuth2Auth).oAuth2 === 'boolean') {\n if (opts.eyepopUrl && opts.eyepopUrl.match(/https:(.*).staging.eyepop.xyz/i)) {\n opts.auth = {\n oAuth2: {\n domain: 'dev-eyepop.us.auth0.com',\n clientId: 'jktx3YO2UnbkNPvr05PQWf26t1kNTJyg',\n audience: 'https://dev-app.eyepop.ai',\n scope: 'admin:clouds access:inference-api access:datasets',\n },\n }\n } else {\n opts.auth = {\n oAuth2: {\n domain: 'eyepop.us.auth0.com',\n clientId: 'Lb9ubA9Hf3jlaqWLUx8XgA0zvotgViCl',\n audience: 'https://api.eyepop.ai',\n scope: 'admin:clouds access:inference-api access:datasets',\n },\n }\n }\n }\n }\n }\n if (!opts.jobQueueLength) {\n opts.jobQueueLength = 128\n }\n }\n}\n\nexport * from './types'\nexport * from './endpoint'\nexport * from './options'\nexport * from './semaphore'\nexport * from './streaming'\nexport * from './data/data_types'\nexport * from './data/data_options'\nexport * from './data/data_endpoint'\nexport * from './worker/worker_types'\nexport * from './worker/worker_options'\nexport * from './worker/worker_endpoint'\nexport * from './worker/jobs'\nexport * from './worker/webrtc_base'\nexport * from './worker/webrtc_whep'\nexport * from './worker/webrtc_whip'\nexport default EyePop\n"],"mappings":";;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,MACE,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,aAAa;AAAA,MAC9B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAK,MAAM;AAAA,MAC5B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAO;AAAA,MAC9B;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,KAAK;AAAA,MAClC;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAK,KAAK;AAAA,MAC3B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,aAAa;AAAA,MAC9B;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,MAAK,IAAI;AAAA,MAC/B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yDAAyD;AAAA,QACvD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,MAAK,QAAO,SAAQ,OAAM,OAAM,QAAO,OAAM,UAAS,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,QAAQ;AAAA,MAC7J;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,UAAS,WAAU,UAAS,QAAQ;AAAA,MACrD;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAK,OAAM,IAAI;AAAA,MAChC;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAO;AAAA,MAC9B;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,WAAW;AAAA,MAClC;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sDAAsD;AAAA,QACpD,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sDAAsD;AAAA,QACpD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wDAAwD;AAAA,QACtD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yDAAyD;AAAA,QACvD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAO;AAAA,MAC9B;AAAA,MACA,+DAA+D;AAAA,QAC7D,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,0DAA0D;AAAA,QACxD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MAC9C;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,MACZ;AAAA,MACA,0DAA0D;AAAA,QACxD,QAAU;AAAA,MACZ;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,MACZ;AAAA,MACA,8DAA8D;AAAA,QAC5D,QAAU;AAAA,MACZ;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,MACZ;AAAA,MACA,6DAA6D;AAAA,QAC3D,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,QAAO,OAAM,MAAM;AAAA,MAC1C;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,sDAAsD;AAAA,QACpD,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yDAAyD;AAAA,QACvD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0DAA0D;AAAA,QACxD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,4DAA4D;AAAA,QAC1D,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,QAAO,UAAU;AAAA,MAClC;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,SAAQ,SAAQ,MAAM;AAAA,MAC5C;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,MACZ;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,MACZ;AAAA,MACA,4DAA4D;AAAA,QAC1D,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4CAA4C;AAAA,QAC1C,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,2CAA2C;AAAA,QACzC,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,WAAU,UAAU;AAAA,MAC3C;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sDAAsD;AAAA,QACpD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2DAA2D;AAAA,QACzD,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,MACZ;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MACpD;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yDAAyD;AAAA,QACvD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,KAAK;AAAA,MAClC;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8DAA8D;AAAA,QAC5D,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2DAA2D;AAAA,QACzD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0DAA0D;AAAA,QACxD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,MACZ;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wDAAwD;AAAA,QACtD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4DAA4D;AAAA,QAC1D,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2DAA2D;AAAA,QACzD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,gEAAgE;AAAA,QAC9D,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,MACZ;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wDAAwD;AAAA,QACtD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yDAAyD;AAAA,QACvD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,uEAAuE;AAAA,QACrE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yEAAyE;AAAA,QACvE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6DAA6D;AAAA,QAC3D,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qEAAqE;AAAA,QACnE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2EAA2E;AAAA,QACzE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2EAA2E;AAAA,QACzE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4EAA4E;AAAA,QAC1E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yEAAyE;AAAA,QACvE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mFAAmF;AAAA,QACjF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kFAAkF;AAAA,QAChF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sFAAsF;AAAA,QACpF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sEAAsE;AAAA,QACpE,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0EAA0E;AAAA,QACxE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0EAA0E;AAAA,QACxE,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mFAAmF;AAAA,QACjF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oFAAoF;AAAA,QAClF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yEAAyE;AAAA,QACvE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yEAAyE;AAAA,QACvE,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kFAAkF;AAAA,QAChF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4EAA4E;AAAA,QAC1E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wFAAwF;AAAA,QACtF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qFAAqF;AAAA,QACnF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mFAAmF;AAAA,QACjF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iFAAiF;AAAA,QAC/E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qEAAqE;AAAA,QACnE,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iFAAiF;AAAA,QAC/E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0EAA0E;AAAA,QACxE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yEAAyE;AAAA,QACvE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oFAAoF;AAAA,QAClF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wEAAwE;AAAA,QACtE,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iFAAiF;AAAA,QAC/E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wFAAwF;AAAA,QACtF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2DAA2D;AAAA,QACzD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mEAAmE;AAAA,QACjE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4DAA4D;AAAA,QAC1D,QAAU;AAAA,MACZ;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2EAA2E;AAAA,QACzE,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wFAAwF;AAAA,QACtF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oFAAoF;AAAA,QAClF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2EAA2E;AAAA,QACzE,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,oFAAoF;AAAA,QAClF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kFAAkF;AAAA,QAChF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8DAA8D;AAAA,QAC5D,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4DAA4D;AAAA,QAC1D,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,MAAM;AAAA,MACnC;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MACpD;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sDAAsD;AAAA,QACpD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wDAAwD;AAAA,QACtD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,YAAY;AAAA,MAC7B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,MAAM;AAAA,MAC9B;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,QAAO,OAAM,KAAK;AAAA,MACnC;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,sBAAsB;AAAA,QACpB,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAO;AAAA,MAC9B;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MAC9C;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MACtE;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,sCAAsC;AAAA,QACpC,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4BAA4B;AAAA,QAC1B,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,8BAA8B;AAAA,QAC5B,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,yBAAyB;AAAA,QACvB,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,aAAa;AAAA,MAC9B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MAC9C;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,KAAK;AAAA,MAClC;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,KAAK;AAAA,MAC3B;AAAA,MACA,qCAAqC;AAAA,QACnC,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,IAAI;AAAA,MAC1B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,IAAI;AAAA,MAC3B;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,WAAU,MAAM;AAAA,MACjC;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yCAAyC;AAAA,QACvC,cAAgB;AAAA,QAChB,YAAc,CAAC,cAAc;AAAA,MAC/B;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,KAAK;AAAA,MAClC;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,IAAI;AAAA,MACxD;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAQ,KAAK;AAAA,MAC9B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,SAAQ,QAAO,KAAK;AAAA,MAC5C;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAK,KAAK;AAAA,MAC3B;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,QAAO,OAAM,KAAK;AAAA,MACzC;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAM,QAAO,OAAM,OAAM,KAAK;AAAA,MACtD;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,OAAM,MAAM;AAAA,MACzC;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,cAAgB;AAAA,MAClB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,QAAO,MAAM;AAAA,MACpC;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,IAAI;AAAA,MAC3B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAM,KAAK;AAAA,MACnC;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,cAAgB;AAAA,MAClB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,QAAO,OAAM,MAAM;AAAA,MAC1C;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,OAAM,OAAM,OAAM,KAAK;AAAA,MAC7C;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc;AAAA,UACZ;AAAA,QACF;AAAA,MACF;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,QAAO,MAAM;AAAA,MACpC;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAO;AAAA,MAC/B;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAO;AAAA,MAC/B;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,YAAW,UAAU;AAAA,MACtC;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,iBAAiB;AAAA,QACf,cAAgB;AAAA,MAClB;AAAA,MACA,YAAY;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,YAAc,CAAC,UAAS,WAAW;AAAA,MACrC;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAM,OAAO;AAAA,MACrC;AAAA,MACA,aAAa;AAAA,QACX,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,YAAW,IAAI;AAAA,MAChC;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,WAAW;AAAA,QACT,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,QAAO,QAAO,OAAM,QAAO,OAAM,MAAK,KAAK;AAAA,MAClE;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,YAAc,CAAC,UAAS,MAAM;AAAA,MAChC;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAI,MAAK,QAAO,OAAM,MAAK,IAAI;AAAA,MAChD;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,SAAW;AAAA,QACX,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,QAAO,MAAM;AAAA,MACpC;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAI,KAAK;AAAA,MAC1B;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,YAAc,CAAC,KAAI,MAAK,OAAM,OAAM,KAAI,MAAK,KAAK;AAAA,MACpD;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAI,OAAM,OAAM,KAAK;AAAA,MACtC;AAAA,MACA,kBAAkB;AAAA,QAChB,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sBAAsB;AAAA,QACpB,cAAgB;AAAA,MAClB;AAAA,MACA,cAAc;AAAA,QACZ,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAI,KAAK;AAAA,MAC1B;AAAA,MACA,qBAAqB;AAAA,QACnB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,QAAO,MAAM;AAAA,MACpC;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAM,OAAM,OAAM,KAAK;AAAA,MAC/C;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAK,KAAK;AAAA,MAC3B;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,QAAO,KAAK;AAAA,MACnC;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,cAAgB;AAAA,MAClB;AAAA,IACF;AAAA;AAAA;;;ACt0QA;AAAA;AAAA;AAWA,WAAO,UAAU;AAAA;AAAA;;;ACXjB;AAAA;AAAA;AAcA,QAAI,KAAK;AACT,QAAI,UAAU,UAAQ,MAAM,EAAE;AAO9B,QAAI,sBAAsB;AAC1B,QAAI,mBAAmB;AAOvB,YAAQ,UAAU;AAClB,YAAQ,WAAW,EAAE,QAAQ,QAAQ;AACrC,YAAQ,cAAc;AACtB,YAAQ,YAAY;AACpB,YAAQ,aAAa,uBAAO,OAAO,IAAI;AACvC,YAAQ,SAAS;AACjB,YAAQ,QAAQ,uBAAO,OAAO,IAAI;AAGlC,iBAAa,QAAQ,YAAY,QAAQ,KAAK;AAS9C,aAAS,QAAS,MAAM;AACtB,UAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,eAAO;AAAA,MACT;AAGA,UAAI,QAAQ,oBAAoB,KAAK,IAAI;AACzC,UAAI,OAAO,SAAS,GAAG,MAAM,CAAC,EAAE,YAAY,CAAC;AAE7C,UAAI,QAAQ,KAAK,SAAS;AACxB,eAAO,KAAK;AAAA,MACd;AAGA,UAAI,SAAS,iBAAiB,KAAK,MAAM,CAAC,CAAC,GAAG;AAC5C,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AASA,aAAS,YAAa,KAAK;AAEzB,UAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,IAAI,QAAQ,GAAG,MAAM,KAC5B,QAAQ,OAAO,GAAG,IAClB;AAEJ,UAAI,CAAC,MAAM;AACT,eAAO;AAAA,MACT;AAGA,UAAI,KAAK,QAAQ,SAAS,MAAM,IAAI;AAClC,YAAIA,WAAU,QAAQ,QAAQ,IAAI;AAClC,YAAIA,SAAS,SAAQ,eAAeA,SAAQ,YAAY;AAAA,MAC1D;AAEA,aAAO;AAAA,IACT;AASA,aAAS,UAAW,MAAM;AACxB,UAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,eAAO;AAAA,MACT;AAGA,UAAI,QAAQ,oBAAoB,KAAK,IAAI;AAGzC,UAAI,OAAO,SAAS,QAAQ,WAAW,MAAM,CAAC,EAAE,YAAY,CAAC;AAE7D,UAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ;AACzB,eAAO;AAAA,MACT;AAEA,aAAO,KAAK,CAAC;AAAA,IACf;AASA,aAAS,OAAQC,OAAM;AACrB,UAAI,CAACA,SAAQ,OAAOA,UAAS,UAAU;AACrC,eAAO;AAAA,MACT;AAGA,UAAIC,aAAY,QAAQ,OAAOD,KAAI,EAChC,YAAY,EACZ,OAAO,CAAC;AAEX,UAAI,CAACC,YAAW;AACd,eAAO;AAAA,MACT;AAEA,aAAO,QAAQ,MAAMA,UAAS,KAAK;AAAA,IACrC;AAOA,aAAS,aAAc,YAAY,OAAO;AAExC,UAAI,aAAa,CAAC,SAAS,UAAU,QAAW,MAAM;AAEtD,aAAO,KAAK,EAAE,EAAE,QAAQ,SAAS,gBAAiB,MAAM;AACtD,YAAI,OAAO,GAAG,IAAI;AAClB,YAAI,OAAO,KAAK;AAEhB,YAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ;AACzB;AAAA,QACF;AAGA,mBAAW,IAAI,IAAI;AAGnB,iBAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,cAAIA,aAAY,KAAK,CAAC;AAEtB,cAAI,MAAMA,UAAS,GAAG;AACpB,gBAAI,OAAO,WAAW,QAAQ,GAAG,MAAMA,UAAS,CAAC,EAAE,MAAM;AACzD,gBAAI,KAAK,WAAW,QAAQ,KAAK,MAAM;AAEvC,gBAAI,MAAMA,UAAS,MAAM,+BACtB,OAAO,MAAO,SAAS,MAAM,MAAMA,UAAS,EAAE,OAAO,GAAG,EAAE,MAAM,iBAAkB;AAEnF;AAAA,YACF;AAAA,UACF;AAGA,gBAAMA,UAAS,IAAI;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,IACH;AAAA;AAAA;;;ACrLO,IAAK,gBAAL,kBAAKC,mBAAL;AACH,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,oBAAiB;AACjB,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,WAAQ;AACR,EAAAA,eAAA,kBAAe;AANP,SAAAA;AAAA,GAAA;;;ACEL,IAAM,SAAN,MAAM,QAAwD;AAAA,EAGjE,YACY,UACR,YACF;AAFU;AAGR,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,OAAO,uBACH,gBACA,YACA,cACyC;AACzC,QAAI,WAAW;AAEf,oBAAgB,YAAmD;AAC/D,YAAM,cAAc,IAAI,kBAAkB;AAC1C,YAAM,OAAO,4BAAmC,MAAM,cAAc;AACpE,qBAAe,SAAS,MAAM;AAC1B,mBAAW,QAAQ,YAAY,OAAO,KAAK,GAAG;AAC1C,gBAAM;AAAA,QACV;AAAA,MACJ;AAEA,iBAAW,QAAQ,YAAY,MAAM,GAAG;AACpC,cAAM;AAAA,MACV;AAAA,IACJ;AAEA,oBAAgB,WAAsD;AAClE,UAAI,UAAU;AACV,cAAM,IAAI,MAAM,0EAA0E;AAAA,MAC9F;AACA,iBAAW;AACX,UAAI,OAAO;AACX,UAAI;AACA,yBAAiB,QAAQ,UAAU,GAAG;AAClC,cAAI,KAAM;AACV,cAAI,MAAM;AACN,kBAAM,UAAU,KAAK,MAAM,IAAI;AAC/B,kBAAM,QAAQ,QAAQ,OAAO;AAC7B,gBAAI,UAAU,QAAW;AACrB,oBAAM,aAAa,KAAK;AAAA,YAC5B,OAAO;AACH,oBAAM;AAAA,YACV;AAAA,UACJ;AAAA,QACJ;AACA,eAAO;AAAA,MACX,SAAS,GAAG;AAER,YAAI,aAAa,SAAS,EAAE,SAAS,aAAc;AACnD,cAAM;AAAA,MACV,UAAE;AAEE,YAAI,CAAC,KAAM,YAAW,MAAM;AAAA,MAChC;AAAA,IACJ;AAEA,WAAO,SAAS;AAAA,EACpB;AAAA,EAEA,CAAC,OAAO,aAAa,IAA+B;AAChD,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAgD;AAC5C,UAAM,OAAmD,CAAC;AAC1D,UAAM,QAAoD,CAAC;AAC3D,UAAM,WAAW,KAAK,SAAS;AAE/B,UAAM,cAAc,CAAC,UAAiF;AAClG,aAAO;AAAA,QACH,MAAM,MAAM;AACR,cAAI,MAAM,WAAW,GAAG;AACpB,kBAAM,SAAS,SAAS,KAAK;AAC7B,iBAAK,KAAK,MAAM;AAChB,kBAAM,KAAK,MAAM;AAAA,UACrB;AACA,iBAAO,MAAM,MAAM;AAAA,QACvB;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO,CAAC,IAAI,QAAO,MAAM,YAAY,IAAI,GAAG,KAAK,UAAU,GAAG,IAAI,QAAO,MAAM,YAAY,KAAK,GAAG,KAAK,UAAU,CAAC;AAAA,EACvH;AACJ;AAQO,IAAM,qBAAN,MAAM,mBAAkB;AAAA;AAAA,EAS3B,cAAc;AACV,SAAK,SAAS,CAAC;AACf,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,OAAO,OAAwB;AAC3B,QAAI,OAAO,KAAK,WAAW,KAAK;AAEhC,QAAI,KAAK,YAAY;AACjB,aAAO,OAAO;AACd,WAAK,aAAa;AAAA,IACtB;AACA,QAAI,KAAK,SAAS,IAAI,GAAG;AACrB,WAAK,aAAa;AAClB,aAAO,KAAK,MAAM,GAAG,EAAE;AAAA,IAC3B;AAEA,QAAI,CAAC,MAAM;AACP,aAAO,CAAC;AAAA,IACZ;AAEA,UAAM,kBAAkB,mBAAkB,cAAc,IAAI,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE;AACvF,QAAI,QAAQ,KAAK,MAAM,mBAAkB,cAAc;AAEvD,QAAI,MAAM,WAAW,KAAK,CAAC,iBAAiB;AACxC,WAAK,OAAO,KAAK,MAAM,CAAC,CAAE;AAC1B,aAAO,CAAC;AAAA,IACZ;AAEA,QAAI,KAAK,OAAO,SAAS,GAAG;AACxB,cAAQ,CAAC,KAAK,OAAO,KAAK,EAAE,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,MAAM,CAAC,CAAC;AAC3D,WAAK,SAAS,CAAC;AAAA,IACnB;AAEA,QAAI,CAAC,iBAAiB;AAClB,WAAK,SAAS,CAAC,MAAM,IAAI,KAAK,EAAE;AAAA,IACpC;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,WAAW,OAAsB;AAC7B,QAAI,SAAS,KAAM,QAAO;AAC1B,QAAI,OAAO,UAAU,SAAU,QAAO;AAGtC,QAAI,OAAO,WAAW,aAAa;AAC/B,UAAI,iBAAiB,QAAQ;AACzB,eAAO,MAAM,SAAS;AAAA,MAC1B;AACA,UAAI,iBAAiB,YAAY;AAC7B,eAAO,OAAO,KAAK,KAAK,EAAE,SAAS;AAAA,MACvC;AAEA,YAAM,IAAI;AAAA,QACN,wCAAwC,MAAM,YAAY,IAAI;AAAA,MAClE;AAAA,IACJ;AAGA,QAAI,OAAO,gBAAgB,aAAa;AACpC,UAAI,iBAAiB,cAAc,iBAAiB,aAAa;AAC7D,aAAK,gBAAL,KAAK,cAAgB,IAAI,YAAY,MAAM;AAC3C,eAAO,KAAK,YAAY,OAAO,KAAK;AAAA,MACxC;AAEA,YAAM,IAAI,MAAM,oDAAqD,MAAc,YAAY,IAAI,gDAAgD;AAAA,IACvJ;AAEA,UAAM,IAAI,MAAM,gGAAgG;AAAA,EACpH;AAAA,EAEA,QAAkB;AACd,QAAI,CAAC,KAAK,OAAO,UAAU,CAAC,KAAK,YAAY;AACzC,aAAO,CAAC;AAAA,IACZ;AAEA,UAAM,QAAQ,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC;AACnC,SAAK,SAAS,CAAC;AACf,SAAK,aAAa;AAClB,WAAO;AAAA,EACX;AACJ;AAAA;AA3Fa,mBAEF,gBAAgB,oBAAI,IAAI,CAAC,MAAM,MAAM,MAAQ,MAAQ,KAAQ,KAAQ,KAAQ,QAAQ,UAAU,QAAQ,CAAC;AAFtG,mBAGF,iBAAiB;AAHrB,IAAM,oBAAN;AAmGP,SAAS,4BAA+B,QAAuC;AAC3E,MAAI,OAAO,OAAO,aAAa,GAAG;AAC9B,WAAO,OAAO,OAAO,aAAa,EAAE;AAAA,EACxC;AAEA,QAAM,SAAS,OAAO,UAAU;AAEhC,SAAO;AAAA,IACH,MAAM,OAAO;AACT,UAAI;AACA,cAAM,SAAS,MAAM,OAAO,KAAK;AACjC,YAAI,QAAQ,KAAM,QAAO,YAAY;AACrC,eAAO;AAAA,MACX,SAAS,GAAG;AACR,eAAO,YAAY;AACnB,cAAM;AAAA,MACV;AAAA,IACJ;AAAA,IACA,MAAM,SAAS;AACX,YAAM,gBAAgB,OAAO,OAAO;AACpC,aAAO,YAAY;AACnB,YAAM;AACN,aAAO,EAAE,MAAM,MAAM,OAAO,OAAU;AAAA,IAC1C;AAAA,IACA,CAAC,OAAO,aAAa,IAAI;AACrB,aAAO;AAAA,IACX;AAAA,EACJ;AACJ;AACO,SAAS,yBAAyB,GAAwC;AAC7E,SAAO,IAAI,eAAe;AAAA,IACtB,MAAM,YAAY;AACd,iBAAW,QAAQ,OAAO,KAAK,CAAC,CAAC;AACjC,iBAAW,MAAM;AAAA,IACrB;AAAA,EACJ,CAAC;AACL;;;AChPO,IAAK,oBAAL,kBAAKC,uBAAL;AACH,EAAAA,sCAAA,QAAK,KAAL;AACA,EAAAA,sCAAA,QAAK,KAAL;AAFQ,SAAAA;AAAA,GAAA;AAKL,IAAM,6BAAgD;AAStD,IAAK,YAAL,kBAAKC,eAAL;AACH,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,YAAS;AAFD,SAAAA;AAAA,GAAA;AA2CL,IAAK,mBAAL,kBAAKC,sBAAL;AACH,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,eAAY;AAEZ,EAAAA,kBAAA,aAAU;AAEV,EAAAA,kBAAA,cAAW;AACX,EAAAA,kBAAA,oBAAiB;AACjB,EAAAA,kBAAA,sBAAmB;AARX,SAAAA;AAAA,GAAA;AAWL,IAAK,sBAAL,kBAAKC,yBAAL;AACH,EAAAA,qBAAA,UAAO;AACP,EAAAA,qBAAA,UAAO;AACP,EAAAA,qBAAA,6BAA0B;AAHlB,SAAAA;AAAA,GAAA;AA8BL,IAAK,gBAAL,kBAAKC,mBAAL;AACH,EAAAA,eAAA,0BAAuB;AACvB,EAAAA,eAAA,sBAAmB;AACnB,EAAAA,eAAA,gBAAa;AACb,EAAAA,eAAA,SAAM;AACN,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,oBAAiB;AACjB,EAAAA,eAAA,2BAAwB;AACxB,EAAAA,eAAA,kBAAe;AARP,SAAAA;AAAA,GAAA;AA4BL,IAAK,cAAL,kBAAKC,iBAAL;AACH,EAAAA,aAAA,iBAAc;AACd,EAAAA,aAAA,uBAAoB;AACpB,EAAAA,aAAA,2BAAwB;AAHhB,SAAAA;AAAA,GAAA;AAiCL,IAAK,cAAL,kBAAKC,iBAAL;AACH,EAAAA,aAAA,gBAAa;AACb,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,iBAAc;AACd,EAAAA,aAAA,mBAAgB;AAChB,EAAAA,aAAA,YAAS;AACT,EAAAA,aAAA,cAAW;AACX,EAAAA,aAAA,eAAY;AAPJ,SAAAA;AAAA,GAAA;;;AClKZ,SAAS,MAAM,cAAc;;;ACE7B,OAAO,UAAU;AASV,IAAe,aAAf,MAAe,YAAW;AAAA,EAgBnB,YAAY,YAA0C,QAAoB,WAAmB,aAAqB,oBAA6B,eAAuB;AAC5K,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,iBAAiB;AACtB,SAAK,aAAa;AAClB,SAAK,WAAW,GAAG,WAAW,IAAI,KAAK,UAAU;AACjD,SAAK,sBAAsB;AAC3B,SAAK,MAAM;AACX,SAAK,QAAQ;AACb,SAAK,YAAY;AACjB,SAAK,oBAAoB,CAAC;AAC1B,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,MAAa,QAAuB;AAChC,UAAM,KAAK,KAAK;AAChB,SAAK,MAAM;AACX,QAAI,IAAI;AACJ,aAAO,GAAG,MAAM;AAAA,IACpB;AAAA,EACJ;AAAA,EAEO,YAAoB;AACvB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEU,QAAQ,SAAwB,WAA0B,MAAW;AAC3E,QAAI;AACJ,QAAI,KAAK,qBAAqB;AAC1B,UAAI,CAAC,QAAQ,YAAY;AACrB,cAAM,IAAI,MAAM,qEAAqE;AAAA,MACzF;AACA,gBAAU,KAAK,KAAK,aAAa,QAAQ,YAAY,KAAK,QAAQ;AAAA,IACtE,OAAO;AACH,gBAAU,KAAK;AAAA,IACnB;AACA,QAAI,UAAU;AACV,gBAAU,KAAK,KAAK,SAAS,QAAQ;AAAA,IACzC;AACA,QAAI;AACJ,QAAI,QAAQ,SAAS,SAAS,GAAG,GAAG;AAChC,gBAAU,QAAQ;AAAA,IACtB,OAAO;AACH,gBAAU,QAAQ,UAAU;AAAA,IAChC;AACA,WAAO,IAAI,IAAI,SAAS,OAAO;AAAA,EACnC;AAAA,EAEA,MAAgB,aAAa,OAAuD;AAChF,QAAI,CAAC,KAAK,KAAK;AACX,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACrD;AACA,QAAI,CAAC,MAAM,KAAK;AACZ,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AACA,SAAK,aAAa,YAAW,WAAW,MAAM,GAAG;AACjD,UAAM,KAAK,IAAI,oBAAoB,KAAK;AAExC,UAAM,UAAU,MAAM,KAAK,YAAY;AACvC,UAAM,aAAa,KAAK,QAAQ,OAAO;AAEvC,UAAM,UAAU;AAAA,MACZ,GAAG,QAAQ,sBAAsB;AAAA,MACjC,gBAAgB;AAAA,IACpB;AACA,UAAM,WAAW,MAAM,KAAK,QAAQ,MAAM,YAAY;AAAA,MAClD;AAAA,MACA,QAAQ;AAAA,MACR,MAAM,MAAM;AAAA,IAChB,CAAC;AACD,QAAI,SAAS,UAAU,KAAK;AACxB,aAAO,QAAQ,OAAO,iCAAiC,UAAU,MAAM,SAAS,MAAM,KAAK,SAAS,UAAU,GAAG;AAAA,IACrH;AACA,SAAK,QAAQ,SAAS,QAAQ,IAAI,MAAM,KAAK;AAC7C,SAAK,YAAY,SAAS,QAAQ,IAAI,UAAU;AAChD,WAAO,MAAM,KAAK,eAAe,IAAI,sBAAsB;AAAA,MACvD,MAAM;AAAA,MACN,KAAK,MAAM,SAAS,KAAK;AAAA,IAC7B,CAAC,CAAC;AAAA,EACN;AAAA,EAIA,MAAgB,oBAAoB,YAAoD;AACpF,QAAI,CAAC,KAAK,YAAY;AAClB,YAAM,IAAI,MAAM,kCAAkC;AAAA,IACtD;AAEA,UAAM,UAAU,MAAM,KAAK,YAAY;AACvC,UAAM,aAAa,KAAK,QAAQ,SAAS,KAAK,SAAS;AAEvD,UAAM,UAAU;AAAA,MACZ,GAAG,QAAQ,sBAAsB;AAAA,MACjC,gBAAgB;AAAA,MAChB,YAAY,KAAK;AAAA,IACrB;AACA,UAAM,WAAW,MAAM,KAAK,QAAQ,MAAM,YAAY;AAAA,MAClD;AAAA,MACA,QAAQ;AAAA,MACR,MAAM,YAAW,oBAAoB,KAAK,YAAY,UAAU;AAAA,IACpE,CAAC;AACD,QAAI,SAAS,UAAU,KAAK;AACxB,aAAO,QAAQ,OAAO,kCAAkC,UAAU,MAAM,SAAS,MAAM,KAAK,SAAS,UAAU,GAAG;AAAA,IACtH;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAgB,iBAAiB,KAAqD;AAClF,QAAI,IAAI,cAAc,MAAM;AACxB,UAAI,KAAK,UAAU,IAAI;AACnB,aAAK,kBAAkB,KAAK,IAAI,SAAS;AAAA,MAC7C,OAAO;AACH,cAAM,KAAK,oBAAoB,CAAC,IAAI,SAAS,CAAC;AAAA,MAClD;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,iBAAiB,OAAsC;AAC1D,UAAM,UACF,UAAU,OACJ,MAAM,MAAM,IAAI,EAAE,IAAI,UAAQ;AAE1B,UAAI,IAAI,KAAK,MAAM,kGAAkG;AACrH,UAAI,CAAC,GAAG;AACN,YAAI,KAAK,MAAM,gGAAgG;AAAA,MACjH;AACA,UAAI,CAAC,GAAG;AACJ,eAAO;AAAA,MACX;AACA,YAAM,YAA0B;AAAA,QAC5B,MAAM,CAAC,EAAE,CAAC,CAAC;AAAA,QACX,UAAU,WAAW,kBAAkB,EAAE,CAAC,CAAC;AAAA,QAC3C,YAAY,WAAW,kBAAkB,EAAE,CAAC,CAAC;AAAA;AAAA,MAEjD;AACA,aAAO;AAAA,IACX,CAAC,IACD,CAAC;AACX,WAAuB,QAAQ,OAAO,SAAU,IAAyB;AACrE,aAAO,MAAM;AAAA,IACjB,CAAC;AAAA,EACL;AAAA,EAEA,OAAiB,WAAW,QAAgB,YAAoB,YAAgC,cAAsB,cAAkC,YAA6B;AACjL,UAAM,WAAW,OAAO,MAAM,IAAI;AAElC,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACtC,YAAM,UAAU,SAAS,CAAC;AAC1B,UAAI,WAAW,QAAQ,WAAW,OAAO,GAAG;AACxC,iBAAS,CAAC,IAAI,WAAW,gBAAgB,WAAW,SAAS,SAAS,UAAU,GAAG,YAAY;AAAA,MACnG,WAAW,WAAW,QAAQ,WAAW,OAAO,GAAG;AAC/C,iBAAS,CAAC,IAAI,WAAW,gBAAgB,WAAW,SAAS,SAAS,UAAU,GAAG,cAAc,UAAU;AAAA,MAC/G;AAAA,IACJ;AAEA,WAAO,SAAS,KAAK,IAAI;AAAA,EAC7B;AAAA,EAEA,OAAe,SAAS,SAAiB,OAAmC;AACxE,UAAM,QAAQ,QAAQ,MAAM,MAAM;AAClC,UAAM,SAAS,CAAC;AAChB,UAAM,iBAAiB,CAAC;AAExB,eAAW,QAAQ,OAAO;AACtB,UAAI,CAAC,KAAK,WAAW,WAAW,GAAG;AAC/B,eAAO,KAAK,IAAI;AAAA,MACpB,OAAO;AACH,YAAI,SAAS,KAAK,YAAY,EAAE,SAAS,KAAK,GAAG;AAC7C,yBAAe,KAAK,KAAK,MAAM,YAAY,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;AAChE,iBAAO,KAAK,IAAI;AAAA,QACpB;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,SAAS,CAAC;AAEhB,eAAW,QAAQ,QAAQ;AACvB,UAAI,KAAK,WAAW,SAAS,GAAG;AAC5B,YAAI,eAAe,SAAS,KAAK,MAAM,UAAU,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG;AACrE,iBAAO,KAAK,IAAI;AAAA,QACpB;AAAA,MACJ,WAAW,KAAK,WAAW,YAAY,GAAG;AACtC,YAAI,eAAe,SAAS,KAAK,MAAM,aAAa,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG;AACxE,iBAAO,KAAK,IAAI;AAAA,QACpB;AAAA,MACJ,OAAO;AACH,eAAO,KAAK,IAAI;AAAA,MACpB;AAAA,IACJ;AAEA,WAAO,OAAO,KAAK,MAAM;AAAA,EAC7B;AAAA,EAEA,OAAe,gBAAgB,SAAiB,SAAyB;AACrE,QAAI,QAAQ,QAAQ,MAAM,MAAM;AAEhC,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,YAAM,OAAO,MAAM,CAAC;AACpB,UAAI,CAAC,MAAM;AACP;AAAA,MACJ;AACA,UAAI,KAAK,WAAW,IAAI,GAAG;AACvB,gBAAQ,CAAC,GAAG,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,aAAa,UAAU,MAAM,SAAS,GAAG,GAAG,MAAM,MAAM,IAAI,CAAC,CAAC;AACjG;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO,MAAM,KAAK,MAAM;AAAA,EAC5B;AAAA,EAEA,OAAe,gBAAgB,SAAiB,SAA6B,OAAgB;AACzF,QAAI,oBAAoB;AACxB,QAAI,QAAkB,QAAQ,MAAM,MAAM;AAE1C,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,YAAM,OAAO,MAAM,CAAC;AACpB,UAAI,CAAC,MAAM;AACP;AAAA,MACJ;AACA,UAAI,KAAK,WAAW,WAAW,KAAK,KAAK,YAAY,EAAE,SAAS,OAAO,GAAG;AACtE,4BAAoB,KAAK,MAAM,YAAY,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK;AACpE;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,sBAAsB,IAAI;AAC1B,aAAO;AAAA,IACX;AAEA,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,YAAM,OAAO,MAAM,CAAC;AACpB,UAAI,CAAC,MAAM;AACP;AAAA,MACJ;AACA,UAAI,KAAK,WAAW,YAAY,oBAAoB,GAAG,GAAG;AACtD,YAAI,OAAO;AACP,gBAAM,CAAC,IAAI,YAAY,oBAAoB,qDAAqD,WAAW,KAAK,MAAM,SAAS;AAAA,QACnI,OAAO;AACH,gBAAM,CAAC,IAAI,YAAY,oBAAoB,uEAAuE,WAAW,KAAK,MAAM,SAAS;AAAA,QACrJ;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO,MAAM,KAAK,MAAM;AAAA,EAC5B;AAAA,EAEA,OAAO,WAAW,OAA0B;AACxC,QAAI,SAAS,CAAC;AACd,QAAI,WAAW;AACf,QAAI,SAAS;AAEb,eAAW,QAAQ,MAAM,MAAM,MAAM,GAAG;AACpC,UAAI,KAAK,WAAW,IAAI,GAAG;AACvB,eAAO,KAAK,KAAK,MAAM,KAAK,MAAM,CAAC;AAAA,MACvC,WAAW,aAAa,MAAM,KAAK,WAAW,cAAc,GAAG;AAC3D,mBAAW,KAAK,MAAM,eAAe,MAAM;AAAA,MAC/C,WAAW,WAAW,MAAM,KAAK,WAAW,YAAY,GAAG;AACvD,iBAAS,KAAK,MAAM,aAAa,MAAM;AAAA,MAC3C;AAAA,IACJ;AAEA,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,OAAO,oBAAoB,WAAsB,YAA+B;AAC5E,UAAM,oBAAoB,oBAAI,IAA+B;AAC7D,eAAW,aAAa,YAAY;AAChC,UAAI,UAAU,kBAAkB,MAAM;AAClC,cAAMC,OAAM,UAAU;AACtB,YAAI,UAAU,kBAAkB,IAAIA,IAAG;AACvC,YAAI,YAAY,QAAW;AACvB,oBAAU,CAAC;AACX,4BAAkB,IAAIA,MAAK,OAAO;AAAA,QACtC;AACA,gBAAQ,KAAK,SAAS;AAAA,MAC1B;AAAA,IACJ;AAEA,QAAI,OAAO,iBAAiB,UAAU,WAAW,mBAAwB,UAAU,SAAS;AAC5F,QAAI,MAAM;AAEV,eAAW,SAAS,UAAU,QAAQ;AAClC,UAAI,UAAU,kBAAkB,IAAI,GAAG;AACvC,UAAI,YAAY,QAAW;AACvB,gBAAQ,OAAO,QAAQ,eAAoB,MAAM;AAEjD,mBAAW,aAAa,SAAS;AAC7B,kBAAQ,OAAO,UAAU,YAAY;AAAA,QACzC;AAAA,MACJ;AACA;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,kBAAkB,GAA+B;AACpD,QAAI,CAAC,GAAG;AACJ,aAAO;AAAA,IACX;AACA,WAAO,KAAK,MAAM,IAAI,CAAC,GAAG;AAAA,EAC9B;AACJ;;;ADvUO,IAAM,aAAN,cAAyB,WAAW;AAAA,EAEvC,YAAY,QAAqB,YAA0C,QAAoB,oBAA6B,eAAuB;AAC/I,UAAM,YAAY,QAAQ,OAAO,EAAE,SAAS,GAAG,oBAAoB,oBAAoB,aAAa;AACpG,SAAK,UAAU;AAAA,EACnB;AAAA,EACA,MAAa,QAA6B;AACtC,UAAM,UAAU,MAAM,KAAK,YAAY;AAEvC,UAAM,aAAa,KAAK,QAAQ,OAAO;AASvC,UAAM,WAAW,MAAM,KAAK,QAAQ,MAAM,YAAY;AAAA,MAClD,SAAS,QAAQ,sBAAsB;AAAA,MACvC,QAAQ;AAAA,IACZ,CAAC;AACD,QAAI,SAAS,UAAU,KAAK;AACxB,aAAO,QAAQ,OAAO,gCAAgC,UAAU,MAAM,SAAS,MAAM,KAAK,SAAS,UAAU,GAAG;AAAA,IACpH;AACA,WAAO,MAAM,KAAK,aAAa,QAAQ;AAAA,EAC3C;AAAA,EAEA,MAAa,SAA+B;AACxC,QAAI,KAAK,SAAS;AACd,aAAO,QAAQ,QAAQ,KAAK,OAAO;AAAA,IACvC,OAAO;AACH,aAAO,QAAQ,OAAO,wBAAwB;AAAA,IAClD;AAAA,EACJ;AAAA,EAEA,MAAgB,eAAe,QAAoD;AAC/E,QAAI,CAAC,KAAK,KAAK;AACX,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACrD;AACA,UAAM,KAAK,IAAI,qBAAqB,IAAI,sBAAsB,MAAM,CAAC;AAErE,QAAI,KAAK,kBAAkB,WAAW,GAAG;AACrC,YAAM,KAAK,oBAAoB,KAAK,iBAAiB;AACrD,WAAK,oBAAoB,CAAC;AAAA,IAC9B;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAc,aAAa,UAAyC;AAChE,QAAI,CAAC,KAAK,SAAS;AACf,YAAM,IAAI,MAAM,wBAAwB;AAAA,IAC5C;AACA,UAAM,SAAS,KAAK;AACpB,UAAM,KAAK,IAAI,kBAAkB;AAAA,MAC7B,YAAY,WAAW,iBAAiB,SAAS,QAAQ,IAAI,MAAM,CAAC;AAAA,IACxE,CAAC;AAED,SAAK,MAAM;AACX,OAAG,iBAAiB,SAAO,KAAK,iBAAiB,GAAG;AAEpD,WAAO,IAAI,QAAQ,OAAO,SAAS,WAAW;AAC1C,SAAG,6BAA6B,MAAM;AAClC,gBAAQ,GAAG,oBAAoB;AAAA,UAC3B,KAAK;AAAA,UACL,KAAK;AACD,mBAAO,oBAAoB,GAAG,kBAAkB,EAAE;AAClD;AAAA,UACJ,KAAK;AACD,oBAAQ,IAAI;AACZ;AAAA,QACR;AAAA,MACJ;AACA,aAAO,UAAU,EAAE,QAAQ,WAAS;AAChC,aAAK,eAAe,MAAM,yCAAyC,KAAK;AACxE,WAAG,SAAS,OAAO,MAAM;AAAA,MAC7B,CAAC;AACD,aAAO,iBAAiB,YAAY,gBAAc;AAC9C,aAAK,eAAe,MAAM,iCAAiC,WAAW,KAAK;AAC3E,WAAG,SAAS,WAAW,OAAO,MAAM;AAAA,MACxC,CAAC;AACD,YAAM,KAAK,aAAa,MAAM,GAAG,YAAY,CAAC;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAsB,QAAuB;AACzC,UAAM,SAAS,KAAK;AACpB,SAAK,UAAU;AACf,QAAI,QAAQ;AACR,YAAM,SAAS,OAAO,UAAU;AAChC,aAAO,QAAQ,WAAS;AACpB,cAAM,KAAK;AAAA,MACf,CAAC;AAAA,IACL;AACA,WAAO,MAAM,MAAM;AAAA,EACvB;AACJ;;;AE9FO,IAAM,cAAN,MAA0C;AAAA,EAuBnC,YACN,QACA,YACA,QAAoB,eACpB,UAA6B,4BAC/B;AAvBF,SAAU,kBAA8D;AACxE,SAAU,cAA+B,IAAI,gBAAgB;AAuBzD,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,UAAU;AACf,SAAK,iBAAiB;AACtB,SAAK,WAAW;AAAA,EACpB;AAAA,EApBA,CAAC,OAAO,aAAa,IAA+B;AAChD,QAAI,CAAC,KAAK,iBAAiB;AACvB,YAAM,MAAM,aAAa;AAAA,IAC7B;AACA,WAAO,OAAO,uBAAuB,KAAK,iBAAiB,KAAK,aAAa,OAAO,UAAuB;AACvG,aAAO,MAAM,KAAK,QAAQ,KAAK;AAAA,IACnC,CAAC;AAAA,EACL;AAAA,EAeA,MAAgB,WAA8B;AAC1C,WAAO,QAAQ,OAAO,gBAAgB;AAAA,EAC1C;AAAA,EAEA,MAAgB,QAAQ,OAAmC;AACvD,QAAI,MAAM,QAAQ,SAAS;AACvB,aAAO,QAAQ,OAAO,0BAA0B,MAAM,SAAS,KAAK,MAAM,OAAO,EAAE;AAAA,IACvF;AACA,WAAO,QAAQ,QAAQ;AAAA,EAC3B;AAAA,EAIO,MAAM,MAAkB,QAAmD;AAC9E,SAAK,kBAAkB,IAAI,QAAoC,OAAO,SAAS,WAAW;AACtF,UAAI;AACA,YAAI,UAAU;AACd,eAAO,MAAM;AACT,cAAI;AACA,kBAAM,WAAW,MAAM,KAAK,SAAS;AACrC,gBAAI,SAAS,UAAU,KAAK;AACxB,qBAAO,SAAS,MAAM;AACtB,kBAAI,WAAW;AACX,qBAAK,eAAe,KAAK,oDAAoD;AAAA,cACjF,OAAO;AACH,uBAAO,YAAY,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;AAC5D;AAAA,cACJ;AAAA,YACJ,WAAW,SAAS,UAAU,KAAK;AAC/B,qBAAO,SAAS,MAAM;AACtB,kBAAI,WAAW;AACX,qBAAK,eAAe,KAAK,+CAA+C;AAAA,cAC5E,OAAO;AACH,uBAAO,YAAY,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;AAC5D;AAAA,cACJ;AAAA,YACJ,WAAW,CAAC,SAAS,IAAI;AACrB,qBAAO,gBAAgB,SAAS,MAAM,KAAK,MAAM,SAAS,KAAK,CAAC,EAAE;AAClE;AAAA,YACJ,WAAW,SAAS,MAAM;AACtB,sBAAQ,SAAS,IAAI;AACrB;AAAA,YACJ,OAAO;AACH,oBAAM,OAAO,MAAM,SAAS,KAAK;AACjC,kBAAI,MAAM;AACN,wBAAQ,yBAAyB,IAAI,CAAC;AACtC;AAAA,cACJ,OAAO;AACH,uBAAO,wBAAwB;AAC/B;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ,SAAS,OAAO;AACZ,gBAAI,WAAW;AACX,mBAAK,eAAe,KAAK,2DAA2D,KAAK;AACzF,qBAAO,GAAG;AAAA,YACd,OAAO;AACH,qBAAO,GAAG;AACV,qBAAO,KAAK;AACZ;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ,SAAS,QAAQ;AACb,eAAO,MAAM;AAAA,MACjB,UAAE;AACE,aAAK;AAAA,MACT;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AAAA,EAEO,SAAe;AAClB,SAAK,YAAY,MAAM,WAAW;AAAA,EACtC;AACJ;AA/Ga,YA+CF,IAAY;AAkEhB,IAAM,YAAN,cAAwB,YAAY;AAAA,EAMvC,KAAK,OAAO,WAAW,IAAY;AAC/B,WAAO;AAAA,EACX;AAAA,EAEA,YACI,QACA,UACA,MACA,WACA,QACA,YACA,QACA,eACF;AACE,UAAM,QAAQ,YAAY,QAAQ,aAAa;AAC/C,SAAK,gBAAgB;AACrB,SAAK,YAAY;AACjB,SAAK,QAAQ;AACb,SAAK,aAAa;AAClB,SAAK,mBAAmB,CAAC,OAAO,aAAa,KAAK,SAAS,WAAW,QAAQ,KAAK;AAAA,EACvF;AAAA,EAEA,MAAyB,QAAQ,OAAmC;AAChE,QAAI,MAAM,QAAQ,YAAY;AAC1B,UAAI,CAAC,MAAM,WAAW;AAClB,eAAO,QAAQ,OAAO,yDAAyD;AAAA,MACnF;AACA,YAAM,UAAU,MAAM,KAAK,YAAY;AACvC,UAAI,CAAC,QAAQ,SAAS;AAClB,eAAO,QAAQ,OAAO,kCAAkC;AAAA,MAC5D;AACA,UAAI;AACJ,YAAM,cAAc,IAAI,gBAAgB;AAAA,QACpC,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,UAAU,MAAM;AAAA,MACpB,CAAC;AACD,UAAI,KAAK,eAAe,QAAW;AAC/B,oBAAY,IAAI,aAAa,KAAK,UAAU;AAAA,MAChD;AACA,UAAI,KAAK,aAAa,QAAW;AAC7B,oBAAY,IAAI,WAAW,KAAK,SAAS,SAAS,CAAC;AAAA,MACvD;AACA,UAAI,KAAK,QAAQ,cAAc;AAC3B,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,QAAQ,YAAY,GAAG;AAClE,sBAAY,IAAI,KAAK,KAAK;AAAA,QAC9B;AAAA,MACJ;AACA,YAAM,UAAkB,GAAG,QAAQ,QAAQ,QAAQ,QAAQ,EAAE,CAAC,cAAc,QAAQ,UAAU,WAAW,YAAY,SAAS,CAAC;AAC/H,UAAI,KAAK,QAAQ,mBAAmB,KAAK,QAAQ,KAAK;AAClD,cAAM,WAAW,IAAI,SAAS;AAC9B,YAAI,KAAK,QAAQ,iBAAiB;AAC9B,gBAAM,OAAO,IAAI,KAAK,CAAC,KAAK,UAAU,KAAK,QAAQ,eAAe,CAAC,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAClG,mBAAS,OAAO,UAAU,IAAI;AAAA,QAClC;AACA,YAAI,KAAK,QAAQ,KAAK;AAClB,gBAAM,OAAO,IAAI,KAAK,CAAC,KAAK,UAAU,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACtF,mBAAS,OAAO,OAAO,IAAI;AAAA,QAC/B;AACA,YAAI,KAAK,QAAQ,KAAK;AAClB,gBAAM,OAAO,IAAI,KAAK,CAAC,KAAK,UAAU,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACtF,mBAAS,OAAO,OAAO,IAAI;AAAA,QAC/B;AACA,cAAM,WAAW,MAAM,IAAI,SAAS,KAAK,aAAa,EAAE,KAAK;AAC7D,iBAAS,OAAO,QAAQ,QAAQ;AAChC,cAAM,UAAU;AAAA,UACZ,GAAG,QAAQ,sBAAsB;AAAA,UACjC,QAAQ;AAAA,QACZ;AAEA,kBAAU,KAAK,QAAQ,MAAM,SAAS;AAAA,UAClC;AAAA,UACA,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,QAAQ,KAAK,YAAY;AAAA;AAAA,UAEzB,QAAQ;AAAA,UACR,QAAQ,EAAE,mBAAmB,KAAK;AAAA,QACtC,CAAC;AAAA,MACL,OAAO;AACH,cAAM,UAAU;AAAA,UACZ,GAAG,QAAQ,sBAAsB;AAAA,UACjC,QAAQ;AAAA,UACR,gBAAgB,KAAK;AAAA,QACzB;AACA,YAAI,KAAK,OAAO;AACZ,kBAAQ,gBAAgB,IAAI,GAAG,KAAK,KAAK;AAAA,QAC7C;AACA,kBAAU,KAAK,QAAQ,MAAM,SAAS;AAAA,UAClC;AAAA,UACA,QAAQ;AAAA,UACR,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK,YAAY;AAAA;AAAA,UAEzB,QAAQ;AAAA,UACR,QAAQ,EAAE,mBAAmB,KAAK;AAAA,QACtC,CAAC;AAAA,MACL;AACA,cACK,KAAK,OAAM,UAAS;AACjB,YAAI,MAAM,UAAU,KAAK;AACrB,eAAK,eAAe,MAAM,qBAAqB,MAAM,MAAM,KAAK,MAAM,MAAM,KAAK,CAAC,cAAc,OAAO,EAAE;AAAA,QAC7G;AAAA,MACJ,CAAC,EACA,MAAM,YAAU;AACb,aAAK,eAAe,MAAM,SAAS,MAAM,aAAa,OAAO,EAAE;AAAA,MACnE,CAAC;AAAA,IACT;AACA,WAAO,QAAQ,QAAQ;AAAA,EAC3B;AAAA,EAEA,MAAyB,WAA8B;AACnD,UAAM,UAAU,MAAM,KAAK,YAAY;AACvC,QAAI,CAAC,QAAQ,SAAS;AAClB,aAAO,QAAQ,OAAO,kCAAkC;AAAA,IAC5D;AACA,QAAI;AACJ,QAAI,KAAK,kBAAkB;AACvB,YAAM,aAAqB,GAAG,QAAQ,QAAQ,QAAQ,QAAQ,EAAE,CAAC,cAAc,QAAQ,UAAU;AACjG,YAAM,UAAU;AAAA,QACZ,GAAG,QAAQ,sBAAsB;AAAA,QACjC,QAAQ;AAAA,MACZ;AACA,iBAAW,MAAM,KAAK,QAAQ,MAAM,YAAY;AAAA,QAC5C;AAAA,QACA,QAAQ;AAAA,QACR,QAAQ,KAAK,YAAY;AAAA;AAAA,QAEzB,QAAQ;AAAA,QACR,QAAQ,EAAE,mBAAmB,KAAK;AAAA,MACtC,CAAC;AAAA,IACL,OAAO;AACH,YAAM,cAAc,IAAI,gBAAgB;AAAA,QACpC,MAAM;AAAA,QACN,YAAY;AAAA,MAChB,CAAC;AACD,UAAI,KAAK,eAAe,QAAW;AAC/B,oBAAY,IAAI,aAAa,KAAK,UAAU;AAAA,MAChD;AACA,UAAI,KAAK,aAAa,QAAW;AAC7B,oBAAY,IAAI,WAAW,KAAK,SAAS,SAAS,CAAC;AAAA,MACvD;AACA,UAAI,KAAK,QAAQ,cAAc;AAC3B,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,QAAQ,YAAY,GAAG;AAClE,sBAAY,IAAI,KAAK,KAAK;AAAA,QAC9B;AAAA,MACJ;AACA,YAAM,UAAkB,GAAG,QAAQ,QAAQ,QAAQ,QAAQ,EAAE,CAAC,cAAc,QAAQ,UAAU,WAAW,YAAY,SAAS,CAAC;AAC/H,UAAI,KAAK,QAAQ,mBAAmB,KAAK,QAAQ,KAAK;AAClD,cAAM,WAAW,IAAI,SAAS;AAC9B,YAAI,KAAK,QAAQ,iBAAiB;AAC9B,gBAAM,OAAO,IAAI,KAAK,CAAC,KAAK,UAAU,KAAK,QAAQ,eAAe,CAAC,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAClG,mBAAS,OAAO,UAAU,IAAI;AAAA,QAClC;AACA,YAAI,KAAK,QAAQ,KAAK;AAClB,gBAAM,OAAO,IAAI,KAAK,CAAC,KAAK,UAAU,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACtF,mBAAS,OAAO,OAAO,IAAI;AAAA,QAC/B;AACA,YAAI,KAAK,QAAQ,KAAK;AAClB,gBAAM,OAAO,IAAI,KAAK,CAAC,KAAK,UAAU,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACtF,mBAAS,OAAO,OAAO,IAAI;AAAA,QAC/B;AACA,cAAM,WAAW,MAAM,IAAI,SAAS,KAAK,aAAa,EAAE,KAAK;AAC7D,iBAAS,OAAO,QAAQ,QAAQ;AAChC,cAAM,UAAU;AAAA,UACZ,GAAG,QAAQ,sBAAsB;AAAA,UACjC,QAAQ;AAAA,QACZ;AAEA,mBAAW,MAAM,KAAK,QAAQ,MAAM,SAAS;AAAA,UACzC;AAAA,UACA,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,QAAQ,KAAK,YAAY;AAAA;AAAA,UAEzB,QAAQ;AAAA,UACR,QAAQ,EAAE,mBAAmB,KAAK;AAAA,QACtC,CAAC;AAAA,MACL,OAAO;AACH,cAAM,UAAU;AAAA,UACZ,GAAG,QAAQ,sBAAsB;AAAA,UACjC,QAAQ;AAAA,UACR,gBAAgB,KAAK;AAAA,QACzB;AACA,YAAI,KAAK,OAAO;AACZ,kBAAQ,gBAAgB,IAAI,GAAG,KAAK,KAAK;AAAA,QAC7C;AACA,mBAAW,MAAM,KAAK,QAAQ,MAAM,SAAS;AAAA,UACzC;AAAA,UACA,QAAQ;AAAA,UACR,MAAM,KAAK;AAAA,UACX,QAAQ,KAAK,YAAY;AAAA;AAAA,UAEzB,QAAQ;AAAA,QACZ,CAAC;AAAA,MACL;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACJ;AAEO,IAAM,cAAN,cAA0B,YAAY;AAAA,EAGzC,YACI,UACA,QACA,YACA,QACA,eACF;AACE,UAAM,QAAQ,YAAY,QAAQ,aAAa;AAC/C,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,KAAK,OAAO,WAAW,IAAY;AAC/B,WAAO;AAAA,EACX;AAAA,EAEA,MAAyB,WAA8B;AACnD,UAAM,UAAU,MAAM,KAAK,YAAY;AACvC,QAAI,CAAC,QAAQ,SAAS;AAClB,aAAO,QAAQ,OAAO,kCAAkC;AAAA,IAC5D;AACA,UAAM,OAAO;AAAA,MACT,YAAY;AAAA,MACZ,KAAK,KAAK;AAAA,MACV,QAAQ,KAAK,QAAQ;AAAA,MACrB,KAAK,KAAK,QAAQ;AAAA,MAClB,KAAK,KAAK,QAAQ;AAAA,MAClB,SAAS,KAAK;AAAA,IAClB;AACA,QAAI,KAAK,QAAQ,cAAc;AAC3B,aAAO,OAAO,MAAM,KAAK,QAAQ,YAAY;AAAA,IACjD;AACA,UAAM,UAAU;AAAA,MACZ,GAAG,QAAQ,sBAAsB;AAAA,MACjC,QAAQ;AAAA,MACR,gBAAgB;AAAA,IACpB;AACA,UAAM,WAAmB,GAAG,QAAQ,QAAQ,QAAQ,QAAQ,EAAE,CAAC,cAAc,QAAQ,UAAU;AAC/F,WAAO,MAAM,KAAK,QAAQ,MAAM,UAAU;AAAA,MACtC;AAAA,MACA,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,IAAI;AAAA,MACzB,QAAQ,KAAK,YAAY;AAAA;AAAA,MAEzB,QAAQ,EAAE,mBAAmB,KAAK;AAAA,IACtC,CAAC;AAAA,EACL;AACJ;AAEO,IAAM,uBAAN,cAAmC,YAAY;AAAA,EAGlD,YACI,WACA,QACA,YACA,QACA,eACF;AACE,UAAM,QAAQ,YAAY,QAAQ,aAAa;AAC/C,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,KAAK,OAAO,WAAW,IAAY;AAC/B,WAAO;AAAA,EACX;AAAA,EAEA,MAAyB,WAA8B;AACnD,UAAM,UAAU,MAAM,KAAK,YAAY;AACvC,QAAI,CAAC,QAAQ,SAAS;AAClB,aAAO,QAAQ,OAAO,kCAAkC;AAAA,IAC5D;AACA,UAAM,OAAO;AAAA,MACT,YAAY;AAAA,MACZ,WAAW,KAAK;AAAA,MAChB,QAAQ,KAAK,QAAQ;AAAA,MACrB,KAAK,KAAK,QAAQ;AAAA,MAClB,KAAK,KAAK,QAAQ;AAAA,MAClB,SAAS,KAAK;AAAA,IAClB;AACA,QAAI,KAAK,QAAQ,cAAc;AAC3B,aAAO,OAAO,MAAM,KAAK,QAAQ,YAAY;AAAA,IACjD;AACA,UAAM,UAAU;AAAA,MACZ,GAAG,QAAQ,sBAAsB;AAAA,MACjC,QAAQ;AAAA,MACR,gBAAgB;AAAA,IACpB;AACA,UAAM,WAAmB,GAAG,QAAQ,QAAQ,QAAQ,QAAQ,EAAE,CAAC,cAAc,QAAQ,UAAU;AAC/F,WAAO,MAAM,KAAK,QAAQ,MAAM,UAAU;AAAA,MACtC;AAAA,MACA,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,IAAI;AAAA,MACzB,QAAQ,KAAK,YAAY;AAAA;AAAA,MAEzB,QAAQ,EAAE,mBAAmB,KAAK;AAAA,IACtC,CAAC;AAAA,EACL;AACJ;AAEO,IAAM,qBAAN,cAAiC,YAAY;AAAA,EAGhD,YACI,aACA,QACA,YACA,QACA,eACF;AACE,UAAM,QAAQ,YAAY,QAAQ,aAAa;AAC/C,SAAK,eAAe;AAAA,EACxB;AAAA,EAEA,KAAK,OAAO,WAAW,IAAY;AAC/B,WAAO;AAAA,EACX;AAAA,EAEA,MAAyB,WAA8B;AACnD,UAAM,UAAU,MAAM,KAAK,YAAY;AACvC,QAAI,CAAC,QAAQ,SAAS;AAClB,aAAO,QAAQ,OAAO,kCAAkC;AAAA,IAC5D;AAEA,UAAM,OAAO,IAAI;AAAA,MACb,KAAK;AAAA,MACL,YAAY;AACR,eAAO;AAAA,MACX;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,IACT;AAEA,SAAK,MAAM,EACN,KAAK,OAAK;AACP,WAAK,eAAe,MAAM,2CAA2C,KAAK,UAAU,CAAC;AAAA,IACzF,CAAC,EACA,MAAM,CAAC,WAAgB;AACpB,WAAK,YAAY,MAAM,MAAM;AAAA,IACjC,CAAC;AAEL,UAAM,OAAO;AAAA,MACT,YAAY;AAAA,MACZ,eAAe,KAAK,UAAU;AAAA,MAC9B,QAAQ,KAAK,QAAQ;AAAA,MACrB,KAAK,KAAK,QAAQ;AAAA,MAClB,KAAK,KAAK,QAAQ;AAAA,MAClB,SAAS,KAAK;AAAA,IAClB;AACA,QAAI,KAAK,QAAQ,cAAc;AAC3B,aAAO,OAAO,MAAM,KAAK,QAAQ,YAAY;AAAA,IACjD;AACA,UAAM,UAAU;AAAA,MACZ,GAAG,QAAQ,sBAAsB;AAAA,MACjC,QAAQ;AAAA,MACR,gBAAgB;AAAA,IACpB;AACA,UAAM,WAAmB,GAAG,QAAQ,QAAQ,QAAQ,QAAQ,EAAE,CAAC,cAAc,QAAQ,UAAU;AAC/F,WAAO,MAAM,KAAK,QAAQ,MAAM,UAAU;AAAA,MACtC;AAAA,MACA,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,IAAI;AAAA,MACzB,QAAQ,KAAK,YAAY;AAAA;AAAA,MAEzB,QAAQ,EAAE,mBAAmB,KAAK;AAAA,IACtC,CAAC;AAAA,EACL;AACJ;;;AC7eO,IAAI;AAEX,IAAI,cAAc,cAAc,oBAAoB,WAAW,UAAU;AACrE,gBAAc,OAAO,SAAqB,YAAoB;AAC1D,UAAM,IAAI,aAAa,wDAAwD;AAAA,EACnF;AACJ,OAAO;AAiBH,MAAS,mBAAT,SAA0B,UAA+B;AACrD,WAAO,IAAI,eAAe;AAAA,MACtB,MAAM,KAAK,YAAY;AACnB,cAAM,EAAE,OAAO,KAAK,IAAI,MAAM,SAAS,KAAK;AAE5C,YAAI,MAAM;AACN,qBAAW,MAAM;AAAA,QACrB,OAAO;AACH,qBAAW,QAAQ,IAAI,WAAW,KAAK,CAAC;AAAA,QAC5C;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAZS,EAAAC,oBAAA;AAbT,kBAAgB,qBAAqB,QAAuB;AACxD,qBAAiB,SAAS,QAAQ;AAC9B,YAAM;AAAA,IACV;AAAA,EACJ;AAsBA,gBAAc,OAAO,QAAoB,MAAc;AACnD,UAAM,OAAO;AACb,UAAM,aAAa,UAAQ,aAAkB;AAC7C,UAAM,KAAK,MAAM,WAAW,KAAK,OAAO,MAAM,GAAG;AACjD,UAAM,SAAS,GAAG,iBAAiB;AACnC,UAAM,WAAW,qBAAqB,MAAM;AAC5C,UAAM,YAAY,iBAAiB,QAAQ;AAE3C,UAAM,WAAW,OAAO,WAAU,OAAO,WAAY,KAAK,OAAO,OAAO,IAAI,KAAK;AACjF,WAAO;AAAA,MACH,QAAQ;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AACJ;AA3Ba,IAAAA;;;ACzBN,IAAI;AAEX,SAAS,mBAAmB,OAA0B,MAA4B;AAC9E,QAAM,MAAM,iBAAiB,UAAS,MAAM,MAAM;AAClD,QAAM,SAAU,iBAAiB,UAAU,MAAM,SAAU,MAAM,WAAW,MAAM,SAAS,SAAW,SAAQ;AAC9G,SAAO,GAAG,MAAM,IAAI,GAAG;AAC3B;AAEA,IAAI,cAAc,cAAc,oBAAoB,WAAW,UAAU;AAAA,EACrE,MAAM,kBAAkB;AAAA,IAEpB,YAAY,QAAgB;AACxB,WAAK,UAAU;AAAA,IACnB;AAAA,IAEA,MAAa,MAAM,OAA0B,MAAuC;AAChF,YAAM,UAAU,mBAAmB,OAAO,IAAI;AAC9C,WAAK,QAAQ,MAAM,0BAA0B,OAAO,EAAE;AACtD,YAAM,WAAW,MAAM,MAAM,OAAO,IAAI;AACxC,WAAK,QAAQ,MAAM,SAAS,OAAO,OAAO,SAAS,MAAM,EAAE;AAC3D,aAAO;AAAA,IACX;AAAA,IAEA,MAAa,QAAuB;AAAA,IAAC;AAAA,IAC9B,eAAe;AAClB,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,qBAAmB,OAAO,WAAmB;AACzC,WAAO,IAAI,kBAAkB,MAAM;AAAA,EACvC;AACJ,OAAO;AAAA,EACH,MAAM,eAAe;AAAA,IAGjB,YAAY,OAAY,QAAgB;AACpC,WAAK,SAAS;AACd,WAAK,UAAU;AAAA,IACnB;AAAA,IAEA,MAAa,MAAM,OAA0B,MAAuC;AAChF,sBAAS,CAAC;AAEV,WAAK,aAAa,KAAK;AACvB,YAAM,UAAU,mBAAmB,OAAO,IAAI;AAC9C,WAAK,QAAQ,MAAM,uBAAuB,OAAO,EAAE;AACnD,YAAM,WAAW,MAAM,MAAM,OAAO,IAAI;AACxC,WAAK,QAAQ,MAAM,SAAS,OAAO,OAAO,SAAS,MAAM,EAAE;AAC3D,aAAO;AAAA,IACX;AAAA,IAEA,MAAa,QAAuB;AAChC,aAAO,KAAK,OAAO,MAAM;AAAA,IAC7B;AAAA,IACO,eAAe;AAClB,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,qBAAmB,OAAO,WAAmB;AACzC,UAAM,SAAS,UAAQ,QAAQ;AAC/B,UAAM,QAAQ,IAAI,OAAO,MAAM;AAAA,MAC3B,kBAAkB;AAAA,MAClB,aAAa;AAAA;AAAA,MAEb,YAAY;AAAA,IAChB,CAAC;AACD,WAAO,MAAM,mDAAmD;AAChE,WAAO,IAAI,eAAe,OAAO,MAAM;AAAA,EAC3C;AACJ;;;AC9DO,IAAM,YAAN,MAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUnB,YAAY,SAAiB;AAR7B,SAAQ,uBAAoD,CAAC;AASzD,SAAK,UAAU;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,aAAqB;AACxB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAa,OAAyB;AAClC,QAAI,KAAK,UAAU,GAAG;AAClB,WAAK,WAAW;AAChB,aAAO,QAAQ,QAAQ,IAAI;AAAA,IAC/B;AAIA,WAAO,IAAI,QAAiB,cAAY,KAAK,qBAAqB,KAAK,QAAQ,CAAC;AAAA,EACpF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAa,UAA4B;AACrC,WAAO,KAAK,KAAK;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAa,QAAQ,cAAwC;AACzD,QAAI,KAAK,UAAU,GAAG;AAClB,WAAK,WAAW;AAChB,aAAO,QAAQ,QAAQ,IAAI;AAAA,IAC/B;AAIA,QAAI,WAAiC,OAAK;AAC1C,UAAM,UAAU,IAAI,QAAiB,OAAK;AACtC,iBAAW;AAAA,IACf,CAAC;AAID,SAAK,qBAAqB,KAAK,QAAQ;AAEvC,eAAW,MAAM;AAIb,YAAM,QAAQ,KAAK,qBAAqB,QAAQ,QAAQ;AACxD,UAAI,UAAU,IAAI;AACd,aAAK,qBAAqB,OAAO,OAAO,CAAC;AAAA,MAC7C,OAAO;AAEH,gBAAQ,KAAK,mEAAmE;AAAA,MACpF;AAGA,eAAS,KAAK;AAAA,IAClB,GAAG,YAAY;AAEf,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,aAAsB;AACzB,QAAI,KAAK,UAAU,GAAG;AAClB,WAAK,WAAW;AAChB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,eAAuB;AAC1B,QAAI,KAAK,UAAU,GAAG;AAClB,YAAM,cAAc,KAAK;AACzB,WAAK,UAAU;AACf,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,SAAe;AAClB,SAAK,WAAW;AAEhB,QAAI,KAAK,UAAU,KAAK,KAAK,qBAAqB,SAAS,GAAG;AAC1D,cAAQ,KAAK,sEAAsE;AAAA,IACvF,WAAW,KAAK,YAAY,KAAK,KAAK,qBAAqB,SAAS,GAAG;AAGnE,WAAK,WAAW;AAEhB,YAAM,eAAe,KAAK,qBAAqB,MAAM;AACrD,UAAI,cAAc;AACd,qBAAa,IAAI;AAAA,MACrB;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKO,UAAgB;AACnB,SAAK,OAAO;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAa,QAAW,MAA4C;AAChE,UAAM,KAAK,KAAK;AAChB,QAAI;AACA,aAAO,MAAM,KAAK;AAAA,IACtB,UAAE;AACE,WAAK,OAAO;AAAA,IAChB;AAAA,EACJ;AACJ;;;ACtKA,SAAiB,YAAY;;;ACH7B,SAAS,yBAAyB;AAI3B,IAAI;AAEX,IAAI,cAAc,cAAc,oBAAoB,WAAW,UAAU;AACrE,+BAA6B,OAAO,OAAqB,YAAqB;AAC1E,QAAI,QAAQ,aAAa,MAAM;AAC3B,aAAO,QAAQ,OAAO,kCAAkC;AAAA,IAC5D;AACA,UAAM,qBAAyC;AAAA,MAC3C,UAAU,MAAM;AAAA,MAChB,QAAQ,MAAM;AAAA,MACd,qBAAqB;AAAA,QACjB,OAAO,MAAM;AAAA,QACb,UAAU,MAAM;AAAA,MACpB;AAAA,IACJ;AACA,UAAM,cAAc,MAAM,kBAAkB,kBAAkB;AAC9D,QAAI,CAAE,MAAM,YAAY,gBAAgB,GAAI;AACxC,YAAM,YAAY,eAAe;AAAA,IACrC;AACA,UAAM,cAAc,MAAM,YAAY,iBAAiB;AACvD,QAAI,CAAC,aAAa;AACd,aAAO,QAAQ,OAAO,oBAAoB;AAAA,IAC9C;AACA,QAAI;AACJ,UAAM,gBAAgB;AACtB,QAAI,OAAO,cAAc,SAAS,aAAa;AAC3C,YAAM,gBAA+B;AAAA,QACjC,WAAW,QAAQ;AAAA,QACnB;AAAA,QACA,YAAY,KAAK,IAAI,IAAI,KAAK,KAAK;AAAA,QACnC,OAAO,cAAc;AAAA,QACrB,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,uBAAuB,MAAM;AACzB,iBAAO,EAAE,eAAe,UAAU,WAAW,GAAG;AAAA,QACpD;AAAA,MACJ;AACA,gBAAU;AAAA,IACd,OAAO;AACH,gBAAU;AAAA,QACN,WAAW,QAAQ;AAAA,QACnB;AAAA,QACA,YAAY,KAAK,IAAI,IAAI,KAAK,KAAK;AAAA,MACvC;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACJ,OAAO;AACH,+BAA6B,CAAC,QAAsB,aAAsB;AACtE,WAAO,QAAQ,OAAO,uCAAuC;AAAA,EACjE;AACJ;;;AD3CO,IAAM,WAAN,MAAsC;AAAA,EAgBzC,YAAY,SAAkB;AAC1B,SAAK,WAAW;AAChB,SAAK,SAAS;AACd,SAAK,qBAAqB;AAC1B,SAAK,UAAU;AACf,SAAK,uBAAuB,oBAAI,IAAI;AACpC,SAAK,qBAAqB,IAAI,KAAK,KAAK,gBAAgB;AAExD,SAAK,SAAS,IAAI,UAAU,KAAK,SAAS,kBAAkB,IAAI;AAChE,SAAK;AACL,SAAK,WAAW;AAChB,SAAK,sBAAsB;AAE3B,QAAI;AACJ,QAAI,QAAQ,QAAQ;AAChB,mBAAa,QAAQ;AAAA,IACzB,OAAO;AACH,mBAAa,KAAK;AAAA,IACtB;AACA,SAAK,UAAU,WAAW,MAAM,EAAE,QAAQ,SAAS,CAAC;AACpD,SAAK,iBAAiB,KAAK,QAAQ,MAAM,EAAE,QAAQ,WAAW,CAAC;AAAA,EACnE;AAAA,EAEU,uBAAuB,sBAAyD,QAAW;AACjG,SAAK,uBAAuB,IAAI,IAAI,mBAAmB;AACvD,SAAK,qBAAqB,IAAI,KAAK,KAAK,gBAAgB;AAAA,EAC5D;AAAA,EAEO,YAAoB;AACvB,QAAI,KAAK,SAAS,WAAW;AACzB,aAAO,KAAK,SAAS,UAAU,QAAQ,QAAQ,EAAE;AAAA,IACrD,OAAO;AACH,aAAO;AAAA,IACX;AAAA,EACJ;AAAA;AAAA,EAGO,kBAA0B;AAC7B,QAAI,KAAK,SAAS,WAAW;AACzB,aAAO,KAAK,SAAS,UAAU,QAAQ,QAAQ,EAAE,EAAE,QAAQ,aAAa,UAAU;AAAA,IACtF,OAAO;AACH,aAAO;AAAA,IACX;AAAA,EACJ;AAAA,EAEO,cAAsB;AACzB,YAAQ,KAAK,SAAS,kBAAkB,QAAQ,KAAK,OAAO,WAAW;AAAA,EAC3E;AAAA,EAEO,QAAuB;AAC1B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,cAA6B;AAChC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,eAAe,SAAwE;AAC1F,SAAK,sBAAsB;AAC3B,WAAoB;AAAA,EACxB;AAAA,EAEU,YAAY,WAAsC,QAAW,UAA8B,QAAW;AAC5G,UAAM,YAAY,KAAK;AACvB,QAAI,YAAY,QAAW;AACvB,UAAI,KAAK,OAAO,WAAW,KAAK,KAAK,SAAS,gBAAgB;AAC1D;AAAA,MACJ,OAAO;AACH;AAAA,MACJ;AAAA,IACJ;AACA,SAAK,SAAS;AACd,SAAK,WAAW,UAAU,UAAU;AAEpC,QAAI,KAAK,qBAAqB;AAC1B,WAAK,oBAAoB,WAAW,KAAK,MAAM;AAAA,IACnD;AAAA,EACJ;AAAA,EAEA,MAAa,UAAsB;AAC/B,QAAI,KAAK,SAAS;AACd,WAAK,QAAQ,KAAK,4BAA4B;AAC9C,aAAoB;AAAA,IACxB;AACA,QAAI,CAAC,KAAK,SAAS,WAAW;AAC1B,aAAO,QAAQ,OAAO,iEAAiE;AAAA,IAC3F;AACA,QAAI,KAAK,SAAS,SAAS,QAAW;AAClC,aAAO,QAAQ,OAAO,4CAA4C;AAAA,IACtE;AACA,QAAK,KAAK,SAAS,KAAqB,YAAY,QAAW;AAC3D,WAAK,SAAU,KAAK,SAAS,KAAqB,QAAQ;AAC1D,WAAK,qBAAsB,KAAK,SAAS,KAAqB,QAAQ,aAAa;AAAA,IACvF,WAAY,KAAK,SAAS,KAAoB,WAAW,QAAW;AAAA,IACpE,WAAY,KAAK,SAAS,KAAoB,WAAW,QAAW;AAAA,IACpE,WAAY,KAAK,SAAS,KAAmB,YAAY,QAAW;AAAA,IACpE,OAAO;AACH,aAAO,QAAQ,OAAO,kEAAkE;AAAA,IAC5F;AAEA,QAAI,KAAK,SAAS,iBAAiB,qBAAqB,QAAW;AAC/D,WAAK,UAAU,MAAM,KAAK,SAAS,gBAAgB,iBAAiB,KAAK,cAAc;AAAA,IAC3F,OAAO;AACH,WAAK,UAAU,MAAM,iBAAiB,KAAK,cAAc;AAAA,IAC7D;AAEA,WAAO,MAAM,KAAK,UAAU;AAAA,EAChC;AAAA,EAEA,MAAa,WAAW,OAAgB,MAAqB;AACzD,QAAI,QAAQ,KAAK,QAAQ;AAErB,eAAS,IAAI,GAAG,IAAI,KAAK,SAAS,gBAAgB,KAAK;AACnD,cAAM,KAAK,OAAO,QAAQ;AAAA,MAC9B;AAAA,IACJ;AAEA,SAAK,SAAS,IAAI,UAAU,KAAK,SAAS,kBAAkB,IAAI;AAEhE,QAAI,KAAK,SAAS;AACd,YAAM,KAAK,QAAQ,MAAM;AACzB,WAAK,UAAU;AAAA,IACnB;AAAA,EACJ;AAAA,EAEA,MAAa,UAA4B;AACrC,UAAM,KAAK,mBAAmB;AAC9B,QAAI,KAAK,UAAU,QAAQ,KAAK,sBAAsB,MAAM;AACxD,aAAO,QAAQ,OAAO,wBAAwB;AAAA,IAClD;AACA,WAAO;AAAA,MACH,WAAmB,KAAK,SAAS;AAAA,MACjC,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK,qBAAqB;AAAA,IAC1C;AAAA,EACJ;AAAA,EAEU,iBAAiB,aAA2B;AAClD,SAAK,SAAS;AACd,SAAK,qBAAqB;AAAA,EAC9B;AAAA,EAEA,MAAgB,eAAe,SAAkC,UAAkB,GAAsB;AACrG,WAAO,MAAM;AACT,UAAI;AACA,cAAM,WAAW,MAAM,QAAQ;AAC/B,YAAI,SAAS,IAAI;AACb,iBAAO;AAAA,QACX,OAAO;AACH,gBAAM,UAAU,KAAK,qBAAqB,IAAI,SAAS,MAAM;AAC7D,cAAI,WAAW,MAAM;AACjB,oBAAQ,SAAS,MAAM;AACvB,gBAAI,WAAW;AACX,mBAAK,eAAe,KAAK,+BAA+B,SAAS,MAAM;AAAA,YAC3E,OAAO;AACH,qBAAO;AAAA,YACX;AAAA,UACJ,OAAO;AACH,mBAAO;AAAA,UACX;AAAA,QACJ;AAAA,MACJ,SAAS,OAAO;AAEZ,cAAM,UAAU,KAAK,qBAAqB,IAAI,GAAG;AACjD,YAAI,WAAW,MAAM;AACjB,kBAAQ,KAAK;AACb,cAAI,WAAW;AACX,iBAAK,eAAe,KAAK,mBAAmB,KAAK;AAAA,UACrD,OAAO;AACH,mBAAO,QAAQ,OAAO,SAAS,KAAK,EAAE;AAAA,UAC1C;AAAA,QACJ,OAAO;AACH,iBAAO,QAAQ,OAAO,SAAS,KAAK,EAAE;AAAA,QAC1C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAgB,YAAwB;AACpC,UAAM,IAAI,MAAM,6BAA6B;AAAA,EACjD;AAAA,EAEA,MAAgB,sBAAuC;AACnD,QAAK,KAAK,SAAS,KAAmB,YAAY,QAAW;AACzD,aAAO;AAAA,IACX;AACA,WAAO,UAAU,MAAM,KAAK,mBAAmB,CAAC;AAAA,EACpD;AAAA,EAEA,MAAc,qBAAsC;AAChD,UAAM,MAAM,KAAK,IAAI,IAAI;AACzB,QAAI,CAAC,KAAK,UAAkB,KAAK,qBAAqB,KAAK;AACvD,WAAK,iDAAwC;AAC7C,UAAI;AACA,YAAI,CAAC,KAAK,SAAS;AACf,iBAAO,QAAQ,OAAO,wBAAwB;AAAA,QAClD,WAAY,KAAK,SAAS,KAAmB,YAAY,QAAW;AAChE,eAAK,SAAS;AACd,eAAK,qBAAqB,OAAO;AAAA,QACrC,WAAY,KAAK,SAAS,KAAqB,YAAY,QAAW;AAClE,iBAAO,QAAQ,OAAO,gCAAgC;AAAA,QAC1D,WAAY,KAAK,SAAS,KAAoB,WAAW,UAAa,KAAK,SAAS,WAAW;AAC3F,gBAAM,UAAU,MAAM,2BAA4B,KAAK,SAAS,KAAoB,QAAwB,KAAK,QAAQ;AACzH,eAAK,SAAS,QAAQ;AACtB,eAAK,qBAAqB,QAAQ,aAAa;AAAA,QACnD,WAAY,KAAK,SAAS,KAAoB,WAAW,UAAa,KAAK,SAAS,WAAW;AAC3F,gBAAM,UAAU,EAAE,iBAAiB,UAAW,KAAK,SAAS,KAAoB,MAAM,GAAG;AACzF,gBAAM,WAAW,GAAG,KAAK,UAAU,CAAC;AACpC,gBAAM,WAAW,MAAM,KAAK,QAAQ,MAAM,UAAU;AAAA,YAChD,QAAQ;AAAA,YACR;AAAA,UACJ,CAAC;AACD,cAAI,SAAS,UAAU,KAAK;AACxB,kBAAM,UAAU,MAAM,SAAS,KAAK;AACpC,mBAAO,QAAQ,OAAO,qBAAqB,SAAS,MAAM,KAAK,OAAO,EAAE;AAAA,UAC5E;AACA,gBAAM,OAAO,MAAM,SAAS,KAAK;AACjC,gBAAM,QAAqB;AAC3B,eAAK,SAAS,MAAM;AACpB,eAAK,qBAAqB,MAAM,MAAM,aAAa;AAAA,QACvD,OAAO;AACH,iBAAO,QAAQ,OAAO,sBAAsB;AAAA,QAChD;AAAA,MACJ,UAAE;AACE,aAAK,YAAY;AAAA,MACrB;AAAA,IACJ;AACA,SAAK,QAAQ,MAAM,qDAA6D,KAAK,qBAAqB,GAAG;AAC7G,WAAe,KAAK;AAAA,EACxB;AACJ;;;AElQO,IAAK,iBAAL,kBAAKC,oBAAL;AACH,EAAAA,gBAAA,eAAY;AADJ,SAAAA;AAAA,GAAA;;;ACmCL,IAAK,gBAAL,kBAAKC,mBAAL;AACH,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,WAAQ;AAER,EAAAA,eAAA,uBAAoB;AACpB,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,uBAAoB;AACpB,EAAAA,eAAA,oBAAiB;AAXT,SAAAA;AAAA,GAAA;AA4BZ,IAAM,QAAQ,CAAC,OAAe,IAAI,QAAQ,aAAW,WAAW,SAAS,EAAE,CAAC;AAErE,IAAM,kBAAN,MAAM,wBAAuB,SAAyB;AAAA,EAQzD,YAAY,SAAwB;AAChC,UAAM,OAAO;AACb,SAAK,uBAAuB,oBAAI,IAAsB,CAAC,CAAC,KAAK,CAAC,eAAuB,KAAK,iBAAiB,UAAU,CAAC,CAAC,CAAC,CAAC;AACzH,SAAK,WAAW;AAChB,SAAK,cAAc;AACnB,SAAK,WAAW;AAChB,SAAK,YAAY;AAAA,EACrB;AAAA,EAEQ,UAAyB;AAC7B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAsB,WAAW,OAAgB,MAAqB;AAClE,QAAI,KAAK,QAAQ,EAAE,wCAAqC,KAAK,aAAa;AACtE,YAAM,YAAY,GAAG,KAAK,QAAQ,cAAc,KAAK,WAAW;AAChE,YAAM,UAAU;AAAA,QACZ,eAAe,MAAM,KAAK,oBAAoB;AAAA,MAClD;AACA,UAAI,WAAW,MAAM,KAAK,SAAS,MAAM,WAAW;AAAA,QAChD,QAAQ;AAAA,QACR;AAAA,MACJ,CAAC;AACD,UAAI,UAAU,UAAU,KAAK;AACzB,cAAM,UAAU,MAAM,UAAU,KAAK;AACrC,aAAK,QAAQ,KAAK,oCAAoC,UAAU,MAAM,KAAK,OAAO,EAAE;AAAA,MACxF;AAAA,IACJ;AACA,WAAO,MAAM,WAAW,IAAI;AAAA,EAChC;AAAA,EAEU,iBAAiB,GAAiB;AACxC,SAAK,cAAc;AACnB,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,MAAsB,UAAkC;AACpD,UAAM,UAAU,MAAM,MAAM,QAAQ;AACpC,QAAI,KAAK,YAAY,QAAQ,KAAK,eAAe,MAAM;AACnD,YAAM,KAAK,UAAU;AACrB,UAAI,KAAK,YAAY,QAAQ,KAAK,eAAe,MAAM;AACnD,eAAO,QAAQ,OAAO,wBAAwB;AAAA,MAClD;AAAA,IACJ;AACA,WAAO;AAAA,MACH,WAAW,QAAQ;AAAA,MACnB,aAAa,QAAQ;AAAA,MACrB,YAAY,QAAQ;AAAA,MACpB,OAAO,KAAK,QAAQ,EAAE;AAAA,MACtB,SAAS,KAAK;AAAA,MACd,YAAY,KAAK;AAAA,MACjB,uBAAuB,MAAM,KAAK,uBAAuB,OAAO;AAAA,IACpE;AAAA,EACJ;AAAA,EAEO,UAAyB;AAC5B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEO,MAAkB;AACrB,QAAI,KAAK,WAAW;AAChB,aAAO,KAAK,UAAU,OAAO;AAAA,IACjC,OAAO;AACH,aAAO;AAAA,IACX;AAAA,EACJ;AAAA,EAEA,MAAa,UAAU,KAAyB;AAC5C,UAAM,SAAS,KAAK;AACpB,UAAM,UAAU,KAAK;AACrB,QAAI,CAAC,WAAW,CAAC,QAAQ;AACrB,aAAO,QAAQ,OAAO,uCAAuC;AAAA,IACjE;AAEA,QAAI,WAAW,MAAM,KAAK,eAAe,YAAY;AACjD,YAAM,UAAU,MAAM,KAAK,QAAQ;AACnC,UAAI,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,GAAG,KAAK,uBAAuB,OAAO;AAAA,MAC1C;AACA,YAAM,YAAY,GAAG,QAAQ,OAAO,cAAc,QAAQ,UAAU;AACpE,aAAO,MAAM,OAAO,MAAM,WAAW;AAAA,QACjC,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,GAAG;AAAA,QACxB;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AACD,QAAI,SAAS,UAAU,KAAK;AACxB,YAAM,UAAU,MAAM,SAAS,KAAK;AACpC,YAAM,IAAI,MAAM,qBAAqB,SAAS,MAAM,KAAK,OAAO,EAAE;AAAA,IACtE;AACA,QAAI,KAAK,WAAW;AAChB,WAAK,UAAU,MAAM;AAAA,IACzB,OAAO;AACH,WAAK,YAAY;AAAA,QACb,IAAI,KAAK,eAAe;AAAA,QACxB,OAAO;AAAA,QACP,YAAW,oBAAI,KAAK,GAAE,SAAS;AAAA,QAC/B;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEQ,uBAAuB,SAAuB;AAClD,WAAQ,KAAK,SAAS,KAAmB,YAAY,SAAY,CAAC,IAAI,EAAE,eAAe,UAAU,QAAQ,WAAW,GAAG;AAAA,EAC3H;AAAA,EAEO,QAAuB;AAC1B,WAAO,KAAK,QAAQ,EAAE,SAAS;AAAA,EACnC;AAAA,EAqBA,MAAa,QAAQ,QAAa,QAAqC;AACnE,QAAK,OAA0B,WAAW,QAAW;AACjD,aAAO,MAAM,KAAK,UAAU,MAAM;AAAA,IACtC,OAAO;AACH,aAAO,MAAM,KAAK,UAAU,QAAQ,MAAM;AAAA,IAC9C;AAAA,EACJ;AAAA,EAEA,MAAc,UAAU,QAAgB,QAAmD;AACvF,QAAK,OAAsB,SAAS,QAAW;AAC3C,aAAO,KAAK,WAAW,QAAsB,EAAC,iBAAiB,OAAM,CAAC;AAAA,IAC1E,WAAY,OAAwB,WAAW,QAAW;AACtD,aAAO,KAAK,aAAa,QAAwB,EAAE,iBAAiB,OAAO,CAAC;AAAA,IAChF,WAAY,OAAsB,SAAS,QAAW;AAClD,aAAO,KAAK,WAAW,QAAsB,EAAE,iBAAiB,OAAO,CAAC;AAAA,IAC5E,WAAY,OAAqB,QAAQ,QAAW;AAChD,aAAO,KAAK,SAAS,QAAqB,EAAE,iBAAiB,OAAO,CAAC;AAAA,IACzE,WAAY,OAA2B,cAAc,QAAW;AAC5D,aAAO,KAAK,kBAAkB,QAA2B,EAAE,iBAAiB,OAAO,CAAC;AAAA,IACxF,WAAY,OAA6B,gBAAgB,QAAW;AAChE,aAAO,KAAK,gBAAgB,QAA6B,EAAE,iBAAiB,OAAO,CAAC;AAAA,IACxF,OAAO;AACH,aAAO,QAAQ,OAAO,qBAAqB;AAAA,IAC/C;AAAA,EACJ;AAAA,EAEA,MAAc,UAAU,SAAgD;AACpE,QAAK,QAAQ,OAAsB,SAAS,QAAW;AACnD,aAAO,KAAK,WAAW,QAAQ,QAAsB,OAAO;AAAA,IAChE,WAAY,QAAQ,OAAwB,WAAW,QAAW;AAC9D,aAAO,KAAK,aAAa,QAAQ,QAAwB,OAAO;AAAA,IACpE,WAAY,QAAQ,OAAsB,SAAS,QAAW;AAC1D,aAAO,KAAK,WAAW,QAAQ,QAAsB,OAAO;AAAA,IAChE,WAAY,QAAQ,OAAqB,QAAQ,QAAW;AACxD,aAAO,KAAK,SAAS,QAAQ,QAAqB,OAAO;AAAA,IAC7D,WAAY,QAAQ,OAA2B,cAAc,QAAW;AACpE,aAAO,KAAK,kBAAkB,QAAQ,QAA2B,OAAO;AAAA,IAC5E,WAAY,QAAQ,OAA6B,gBAAgB,QAAW;AACxE,aAAO,KAAK,gBAAgB,QAAQ,QAA6B,OAAO;AAAA,IAC5E,OAAO;AACH,aAAO,QAAQ,OAAO,qBAAqB;AAAA,IAC/C;AAAA,EACJ;AAAA,EAEA,MAAc,WAAW,QAAoB,QAA8C;AACvF,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,eAAe,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ;AACtE,aAAO,QAAQ,OAAO,uCAAuC;AAAA,IACjE;AACA,UAAM,KAAK,OAAO,QAAQ;AAC1B,QAAI;AACA,WAAK,YAAY;AACjB,YAAM,MAAM,IAAI;AAAA,QACZ,OAAO;AAAA,QACP,OAAO,KAAK;AAAA,QACZ,OAAO,KAAK;AAAA,QACZ,OAAO;AAAA,QACP;AAAA,QACA,YAAY;AACR,iBAAO,KAAK,QAAQ;AAAA,QACxB;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,MACT;AACA,aAAO,IAAI;AAAA,QACP,MAAM;AACF,eAAK,QAAQ,GAAG;AAAA,QACpB;AAAA,QACA,CAAC,eAAuB;AACpB,eAAK,UAAU,KAAK,UAAU;AAAA,QAClC;AAAA,MACJ;AAAA,IACJ,SAAS,GAAG;AAER,WAAK,OAAO,QAAQ;AACpB,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAc,aAAa,QAAsB,QAA8C;AAC3F,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,eAAe,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ;AACtE,aAAO,QAAQ,OAAO,uCAAuC;AAAA,IACjE;AACA,UAAM,KAAK,OAAO,QAAQ;AAC1B,QAAI;AACA,WAAK,YAAY;AACjB,YAAM,MAAM,IAAI;AAAA,QACZ,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,QACP,OAAO;AAAA,QACP;AAAA,QACA,YAAY;AACR,iBAAO,KAAK,QAAQ;AAAA,QACxB;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,MACT;AACA,aAAO,IAAI;AAAA,QACP,MAAM;AACF,eAAK,QAAQ,GAAG;AAAA,QACpB;AAAA,QACA,CAAC,eAAuB;AACpB,eAAK,UAAU,KAAK,UAAU;AAAA,QAClC;AAAA,MACJ;AAAA,IACJ,SAAS,GAAG;AAER,WAAK,OAAO,QAAQ;AACpB,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAc,WAAW,QAAoB,QAA8C;AACvF,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,eAAe,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ;AACtE,YAAM,IAAI,MAAM,uCAAuC;AAAA,IAC3D;AACA,UAAM,KAAK,OAAO,QAAQ;AAC1B,QAAI;AACA,WAAK,YAAY;AACjB,UAAI;AACJ,UAAI,KAAK,SAAS,iBAAiB,aAAa;AAC5C,uBAAe,MAAM,KAAK,SAAS,gBAAgB,YAAY,QAAsB,KAAK,OAAO;AAAA,MACrG,OAAO;AACH,uBAAe,MAAM,YAAY,QAAsB,KAAK,OAAO;AAAA,MACvE;AACA,YAAM,MAAM,IAAI;AAAA,QACZ,aAAa;AAAA,QACb,aAAa;AAAA,QACb,aAAa;AAAA,QACb,OAAO;AAAA,QACP;AAAA,QACA,YAAY;AACR,iBAAO,KAAK,QAAQ;AAAA,QACxB;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,MACT;AACA,aAAO,IAAI;AAAA,QACP,MAAM;AACF,eAAK,QAAQ,GAAG;AAAA,QACpB;AAAA,QACA,CAAC,eAAuB;AACpB,eAAK,UAAU,KAAK,UAAU;AAAA,QAClC;AAAA,MACJ;AAAA,IACJ,SAAS,GAAG;AAER,WAAK,OAAO,QAAQ;AACpB,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAc,SAAS,QAAmB,QAA8C;AACpF,QAAI,OAAO,IAAI,WAAW,SAAS,GAAG;AAClC,aAAO,MAAM,KAAK;AAAA,QACd;AAAA,UACI,MAAM,OAAO,IAAI,UAAU,UAAU,MAAM;AAAA,QAC/C;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,eAAe,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ;AACtE,YAAM,IAAI,MAAM,uCAAuC;AAAA,IAC3D;AACA,UAAM,KAAK,OAAO,QAAQ;AAC1B,QAAI;AACA,WAAK,YAAY;AACjB,YAAM,MAAM,IAAI;AAAA,QACZ,OAAO;AAAA,QACP;AAAA,QACA,YAAY;AACR,iBAAO,KAAK,QAAQ;AAAA,QACxB;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,MACT;AACA,aAAO,IAAI;AAAA,QACP,MAAM;AACF,eAAK,QAAQ,GAAG;AAAA,QACpB;AAAA,QACA,CAAC,eAAuB;AACpB,eAAK,UAAU,KAAK,UAAU;AAAA,QAClC;AAAA,MACJ;AAAA,IACJ,SAAS,GAAG;AAER,WAAK,OAAO,QAAQ;AACpB,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAc,kBAAkB,QAAyB,QAA8C;AACnG,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,eAAe,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ;AACtE,YAAM,IAAI,MAAM,uCAAuC;AAAA,IAC3D;AACA,UAAM,KAAK,OAAO,QAAQ;AAC1B,QAAI;AACA,WAAK,YAAY;AACjB,YAAM,MAAM,IAAI;AAAA,QACZ,OAAO;AAAA,QACP;AAAA,QACA,YAAY;AACR,iBAAO,KAAK,QAAQ;AAAA,QACxB;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,MACT;AACA,aAAO,IAAI;AAAA,QACP,MAAM;AACF,eAAK,QAAQ,GAAG;AAAA,QACpB;AAAA,QACA,CAAC,eAAuB;AACpB,eAAK,UAAU,KAAK,UAAU;AAAA,QAClC;AAAA,MACJ;AAAA,IACJ,SAAS,GAAG;AAER,WAAK,OAAO,QAAQ;AACpB,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAc,gBAAgB,QAA2B,QAA8C;AACnG,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,eAAe,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ;AACtE,YAAM,IAAI,MAAM,uCAAuC;AAAA,IAC3D;AACA,UAAM,KAAK,OAAO,QAAQ;AAC1B,QAAI;AACA,WAAK,YAAY;AACjB,YAAM,MAAM,IAAI;AAAA,QACZ,OAAO;AAAA,QACP;AAAA,QACA,YAAY;AACR,iBAAO,KAAK,QAAQ;AAAA,QACxB;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,MACT;AACA,aAAO,IAAI;AAAA,QACP,MAAM;AACF,eAAK,QAAQ,GAAG;AAAA,QACpB;AAAA,QACA,CAAC,eAAuB;AACpB,eAAK,UAAU,KAAK,UAAU;AAAA,QAClC;AAAA,MACJ;AAAA,IACJ,SAAS,GAAG;AAER,WAAK,OAAO,QAAQ;AACpB,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEQ,QAAQ,GAAgB;AAC5B,SAAK,QAAQ,QAAQ;AACrB,SAAK,YAAY;AAAA,EACrB;AAAA,EAEQ,UAAU,GAAgB,YAAoB;AAClD,QAAI,cAAc,KAAK;AACnB,WAAK,iBAAiB,UAAU;AAAA,IACpC,WAAW,cAAc,KAAK;AAC1B,WAAK,iBAAiB,UAAU;AAAA,IACpC;AAAA,EACJ;AAAA,EAEA,MAAyB,YAAqC;AAC1D,QAAI,KAAK,QAAQ,EAAE,sCAAmC;AAClD,YAAM,KAAK,oBAAoB;AAC/B,WAAK,cAAc,MAAM,KAAK,uBAAuB;AAAA,IACzD,OAAO;AACH,YAAM,KAAK,4BAA4B;AAAA,IAC3C;AACA,SAAK,YAAY;AACjB,WAAO,QAAQ,QAAQ,IAAI;AAAA,EAC/B;AAAA,EAEA,MAAc,8BAA6C;AACvD,QAAI,CAAC,KAAK,SAAS;AACf,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC9C;AACA,UAAM,aAAa,GAAG,KAAK,gBAAgB,CAAC,SAAS,KAAK,QAAQ,EAAE,KAAK;AACzE,UAAM,UAAU;AAAA,MACZ,eAAe,MAAM,KAAK,oBAAoB;AAAA,IAClD;AACA,SAAK,2CAAqC;AAC1C,QAAI,WAAW,MAAM,KAAK,QAAQ,MAAM,YAAY,EAAE,QAAiB,CAAC;AACxE,QAAI,SAAS,UAAU,KAAK;AACxB,WAAK,eAAe,MAAM,uDAAuD,UAAU;AAE3F,WAAK,iBAAiB,SAAS,MAAM;AACrC,YAAMC,WAAU;AAAA,QACZ,eAAe,MAAM,KAAK,oBAAoB;AAAA,MAClD;AACA,WAAK,2CAAqC;AAC1C,iBAAW,MAAM,KAAK,QAAQ,MAAM,YAAY;AAAA,QAC5C,SAASA;AAAA,MACb,CAAC;AAAA,IACL;AAEA,QAAI,SAAS,UAAU,KAAK;AACxB,YAAM,UAAU,MAAM,SAAS,KAAK;AACpC,UAAI,SAAS,UAAU,KAAK;AACxB,aAAK,+CAAwC,OAAO;AAAA,MACxD,OAAO;AACH,aAAK,iCAAiC,OAAO;AAAA,MACjD;AACA,YAAM,IAAI,MAAM,qBAAqB,SAAS,MAAM,KAAK,OAAO,EAAE;AAAA,IACtE;AACA,QAAI,SAAU,MAAM,SAAS,KAAK;AAClC,QAAI,CAAC,OAAO,YAAY,KAAK,QAAQ,EAAE,WAAW;AAC9C,YAAM,wBAAwB,GAAG,KAAK,gBAAgB,CAAC,SAAS,KAAK,QAAQ,EAAE,KAAK;AACpF,WAAK,eAAe,MAAM,qDAAqD,qBAAqB;AAEpG,YAAMA,WAAU;AAAA,QACZ,eAAe,MAAM,KAAK,oBAAoB;AAAA,MAClD;AACA,iBAAW,MAAM,KAAK,QAAQ,MAAM,uBAAuB;AAAA,QACvD,SAASA;AAAA,MACb,CAAC;AACD,UAAI,SAAS,UAAU,KAAK;AACxB,aAAK,+BAA+B;AACpC,cAAM,UAAU,MAAM,SAAS,KAAK;AACpC,cAAM,IAAI,MAAM,qBAAqB,SAAS,MAAM,KAAK,OAAO,EAAE;AAAA,MACtE;AACA,eAAU,MAAM,SAAS,KAAK;AAAA,IAClC;AAEA,UAAM,UAAU,IAAI,IAAI,OAAO,UAAU,KAAK,UAAU,CAAC;AACzD,SAAK,WAAW,QAAQ,SAAS;AAEjC,QAAI,KAAK,UAAU;AACf,WAAK,WAAW,KAAK,SAAS,QAAQ,QAAQ,EAAE;AAChD,WAAK,cAAc,OAAO;AAC1B,WAAK,WAAW,OAAO;AACvB,UAAI,CAAC,KAAK,eAAe,CAAC,KAAK,UAAU;AACrC,cAAM,IAAI,MAAM,iBAAiB;AAAA,MACrC;AAEA,YAAM,UAAU,GAAG,KAAK,QAAQ,cAAc,KAAK,WAAW;AAC9D,YAAMA,WAAU;AAAA,QACZ,eAAe,MAAM,KAAK,oBAAoB;AAAA,MAClD;AACA,UAAIC,YAAW,MAAM,KAAK,QAAQ,MAAM,SAAS;AAAA,QAC7C,QAAQ;AAAA,QACR,SAASD;AAAA,MACb,CAAC;AACD,UAAIC,UAAS,SAAS,KAAK;AACvB,cAAM,UAAU,MAAMA,UAAS,KAAK;AACpC,cAAM,IAAI,MAAM,qBAAqBA,UAAS,MAAM,KAAK,OAAO,EAAE;AAAA,MACtE;AACA,WAAK,YAAa,MAAMA,UAAS,KAAK;AAEtC,UAAI,KAAK,QAAQ,EAAE,UAAU;AACzB,cAAM,OAAO,EAAE,YAAY,OAAO;AAClC,cAAMD,WAAU;AAAA,UACZ,eAAe,MAAM,KAAK,oBAAoB;AAAA,UAC9C,gBAAgB;AAAA,QACpB;AACA,cAAM,WAAW,GAAG,KAAK,QAAQ,cAAc,KAAK,UAAU,EAAE;AAChE,YAAIC,YAAW,MAAM,KAAK,QAAQ,MAAM,UAAU;AAAA,UAC9C,QAAQ;AAAA,UACR,SAASD;AAAA,UACT,MAAM,KAAK,UAAU,IAAI;AAAA,QAC7B,CAAC;AACD,YAAIC,UAAS,UAAU,KAAK;AACxB,gBAAM,UAAU,MAAMA,UAAS,KAAK;AACpC,gBAAM,IAAI,MAAM,qBAAqBA,UAAS,MAAM,KAAK,OAAO,EAAE;AAAA,QACtE;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAOA,MAAc,sBAAqC;AAC/C,QAAI,CAAC,KAAK,SAAS;AACf,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC9C;AACA,QAAI,UAAiC;AACrC,UAAM,cAAc,GAAG,KAAK,UAAU,CAAC;AACvC,SAAK,eAAe,MAAM,8BAA8B,WAAW;AACnE,UAAM,UAAU;AAAA,MACZ,eAAe,MAAM,KAAK,oBAAoB;AAAA,IAClD;AACA,QAAI,WAAW,MAAM,KAAK,QAAQ,MAAM,aAAa;AAAA,MACjD;AAAA,IACJ,CAAC;AACD,QAAI;AAEJ,QAAI,SAAS,UAAU,KAAK;AACxB,iBAAW,CAAC;AAAA,IAChB,WAAW,SAAS,UAAU,KAAK;AAC/B,WAAK,+BAA+B;AACpC,YAAM,UAAU,MAAM,SAAS,KAAK;AACpC,YAAM,IAAI,MAAM,qBAAqB,SAAS,MAAM,+BAA+B,OAAO,EAAE;AAAA,IAChG,OAAO;AACH,YAAM,mBAAmB,MAAM,SAAS,KAAK;AAC7C,iBAAW;AAAA,IACf;AACA,YAAQ,IAAI,QAAQ;AACpB,QAAI,SAAS,SAAS,GAAG;AACrB,WAAK,QAAQ,MAAM,YAAY,SAAS,MAAM,0CAA0C;AACxF,eAAS,KAAK,UAAU;AACpB,YAAI,CAAC,gBAAe,aAAa,IAAI,EAAE,cAAc,GAAG;AACpD,oBAAU;AACV,eAAK,QAAQ,MAAM,sBAAsB,EAAE,YAAY,kBAAkB,EAAE,aAAa,EAAE;AAC1F;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,CAAC,SAAS;AACV,WAAK,eAAe,MAAM,iCAAiC,WAAW;AACtE,iBAAW,MAAM,KAAK,QAAQ,MAAM,GAAG,WAAW,cAAc;AAAA,QAC5D;AAAA,QACA,QAAQ;AAAA,MACZ,CAAC;AACD,UAAI,SAAS,UAAU,KAAK;AACxB,aAAK,+BAA+B;AACpC,cAAM,UAAU,MAAM,SAAS,KAAK;AACpC,cAAM,IAAI,MAAM,qBAAqB,SAAS,MAAM,gCAAgC,OAAO,EAAE;AAAA,MACjG,OAAO;AACH,mBAAY,MAAM,SAAS,KAAK;AAAA,MACpC;AACA,UAAI,SAAS,UAAU,GAAG;AACtB,cAAM,IAAI,MAAM,4DAA4D;AAAA,MAChF;AACA,gBAAU,SAAS,CAAC,KAAK;AAAA,IAC7B;AACA,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAClD;AACA,QAAI,UAAmB;AACvB,UAAM,WAAmB,KAAK,IAAI,IAAI,gBAAe;AACrD,WAAO,CAAC,SAAS;AACb,YAAM,aAAa,GAAG,QAAQ,gBAAgB;AAC9C,iBAAW,MAAM,KAAK,QAAQ,MAAM,YAAY;AAAA,QAC5C;AAAA,MACJ,CAAC;AACD,UAAI,SAAS,SAAS,KAAK;AACvB,kBAAU;AAAA,MACd,WAAW,KAAK,IAAI,IAAI,UAAU;AAC9B,cAAM,IAAI,MAAM,mBAAmB,QAAQ,YAAY,iCAAiC,gBAAe,oBAAoB,GAAI,UAAU;AAAA,MAC7I,OAAO;AACH,aAAK,QAAQ,MAAM,WAAW,QAAQ,YAAY,wBAAwB,SAAS,MAAM,4BAA4B;AACrH,cAAM,MAAM,gBAAe,2BAA2B;AAAA,MAC1D;AAAA,IACJ;AACA,SAAK,WAAW,QAAQ;AACxB,SAAK,YAAY;AACjB,QAAI,QAAQ,eAAe;AACvB,WAAK,cAAc,QAAQ;AAAA,IAC/B,OAAO;AACH,WAAK,cAAc;AAAA,IACvB;AAAA,EACJ;AAAA,EAEA,MAAc,yBAA0C;AACpD,UAAM,SAAS,KAAK;AACpB,UAAM,UAAU,KAAK;AAErB,QAAI,UAAU,QAAQ,WAAW,MAAM;AACnC,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC9C;AAEA,QAAI;AACJ,QAAI,KAAK,aAAa,KAAK,UAAU,KAAK;AACtC,YAAM,KAAK,UAAU;AAAA,IACzB,OAAO;AACH,YAAM;AAAA,QACF,YAAY,CAAC;AAAA,MACjB;AAAA,IACJ;AAEA,UAAM,OAAO;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,QACJ,YAAY;AAAA,MAChB;AAAA,MACA,oBAAoB;AAAA,MACpB,SAAS,CAAC,UAAU;AAAA,MACpB,aAAa;AAAA,IACjB;AAEA,UAAM,WAAW,GAAG,QAAQ,QAAQ,QAAQ,EAAE,CAAC;AAE/C,QAAI,WAAW,MAAM,KAAK,eAAe,YAAY;AACjD,UAAI,UAAU;AAAA,QACV,gBAAgB;AAAA,QAChB,eAAe,MAAM,KAAK,oBAAoB;AAAA,MAClD;AACA,aAAO,OAAO,MAAM,UAAU;AAAA,QAC1B,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,IAAI;AAAA,QACzB;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AACD,QAAI,SAAS,UAAU,KAAK;AACxB,YAAM,UAAU,MAAM,SAAS,KAAK;AACpC,YAAM,IAAI,MAAM,qBAAqB,SAAS,MAAM,KAAK,OAAO,EAAE;AAAA,IACtE;AACA,UAAM,SAAS,MAAM,SAAS,KAAK;AACnC,WAAO,OAAO,IAAI;AAAA,EACtB;AACJ;AAroBa,gBA+fM,eAAe,oBAAI,IAAmB,CAAC,qBAAqB,uBAAsB,yBAAuB,uCAA8B,uBAAqB,CAAC;AA/fnK,gBAigBM,oBAA4B,KAAK;AAjgBvC,gBAkgBM,8BAAsC;AAlgBlD,IAAM,iBAAN;;;ACnEA,IAAI;AAEX,IAAI,cAAc,cAAc,oBAAoB,WAAW,UAAU;AACrE,oBAAkB,CAAC,KAAmB,cAAkC;AACpE,WAAO,IAAI,UAAU,KAAK,SAAS;AAAA,EACvC;AACJ,OAAO;AACH,oBAAkB,CAAC,KAAmB,cAAkC;AACpE,UAAM,KAAK,UAAQ,IAAI;AACvB,WAAO,IAAI,GAAG,UAAU,KAAK,SAAS;AAAA,EAC1C;AACJ;;;ACXA,SAAS,UAAW,UAAU;AAC5B,MAAI,cAAc,CAAC;AACnB,MAAI,SAAS,WAAW,GAAG;AAAE,WAAO;AAAA,EAAI;AAExC,MAAI,OAAO,SAAS,CAAC,MAAM,UAAU;AACnC,UAAM,IAAI,UAAU,oCAAoC,SAAS,CAAC,CAAC;AAAA,EACrE;AAGA,MAAI,SAAS,CAAC,EAAE,MAAM,cAAc,KAAK,SAAS,SAAS,GAAG;AAC5D,QAAI,QAAQ,SAAS,MAAM;AAC3B,aAAS,CAAC,IAAI,QAAQ,SAAS,CAAC;AAAA,EAClC;AAGA,MAAI,SAAS,CAAC,EAAE,MAAM,cAAc,GAAG;AACrC,aAAS,CAAC,IAAI,SAAS,CAAC,EAAE,QAAQ,iBAAiB,QAAQ;AAAA,EAC7D,OAAO;AACL,aAAS,CAAC,IAAI,SAAS,CAAC,EAAE,QAAQ,iBAAiB,OAAO;AAAA,EAC5D;AAEA,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,QAAI,YAAY,SAAS,CAAC;AAE1B,QAAI,OAAO,cAAc,UAAU;AACjC,YAAM,IAAI,UAAU,oCAAoC,SAAS;AAAA,IACnE;AAEA,QAAI,cAAc,IAAI;AAAE;AAAA,IAAU;AAElC,QAAI,IAAI,GAAG;AAET,kBAAY,UAAU,QAAQ,UAAU,EAAE;AAAA,IAC5C;AACA,QAAI,IAAI,SAAS,SAAS,GAAG;AAE3B,kBAAY,UAAU,QAAQ,UAAU,EAAE;AAAA,IAC5C,OAAO;AAEL,kBAAY,UAAU,QAAQ,UAAU,GAAG;AAAA,IAC7C;AAEA,gBAAY,KAAK,SAAS;AAAA,EAE5B;AAEA,MAAI,MAAM,YAAY,KAAK,GAAG;AAI9B,QAAM,IAAI,QAAQ,mBAAmB,IAAI;AAGzC,MAAI,QAAQ,IAAI,MAAM,GAAG;AACzB,QAAM,MAAM,MAAM,KAAK,MAAM,SAAS,IAAI,MAAK,MAAM,MAAM,KAAK,GAAG;AAEnE,SAAO;AACT;AAEe,SAAR,UAA2B;AAChC,MAAI;AAEJ,MAAI,OAAO,UAAU,CAAC,MAAM,UAAU;AACpC,YAAQ,UAAU,CAAC;AAAA,EACrB,OAAO;AACL,YAAQ,CAAC,EAAE,MAAM,KAAK,SAAS;AAAA,EACjC;AAEA,SAAO,UAAU,KAAK;AACxB;;;ACnEO,IAAK,cAAL,kBAAKC,iBAAL;AACH,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,SAAM;AAFE,SAAAA;AAAA,GAAA;AAaL,SAAS,WAAW,SAAsB,aAAkC;AAC/E,UAAQ,aAAa;AAAA,IACjB,KAAK;AACD,aAAO,QAAQ,iBAAiB;AAAA,IACpC,KAAK;AACD,aAAO,QAAQ,aAAa;AAAA,IAChC;AACI,YAAM,IAAI,MAAM,oBAAoB,WAAW,EAAE;AAAA,EACzD;AACJ;AAmEO,IAAK,qBAAL,kBAAKC,wBAAL;AACH,EAAAA,oBAAA,WAAQ;AACR,EAAAA,oBAAA,eAAY;AACZ,EAAAA,oBAAA,iBAAc;AACd,EAAAA,oBAAA,eAAY;AAJJ,SAAAA;AAAA,GAAA;AA4CL,IAAK,cAAL,kBAAKC,iBAAL;AACH,EAAAA,aAAA,cAAW;AACX,EAAAA,aAAA,wBAAqB;AACrB,EAAAA,aAAA,mBAAgB;AAChB,EAAAA,aAAA,sBAAmB;AACnB,EAAAA,aAAA,2BAAwB;AACxB,EAAAA,aAAA,cAAW;AANH,SAAAA;AAAA,GAAA;AASL,IAAK,iBAAL,kBAAKC,oBAAL;AACH,EAAAA,gBAAA,kBAAe;AACf,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,UAAO;AAHC,SAAAA;AAAA,GAAA;AAML,IAAK,aAAL,kBAAKC,gBAAL;AACH,EAAAA,YAAA,cAAW;AACX,EAAAA,YAAA,cAAW;AACX,EAAAA,YAAA,aAAU;AAHF,SAAAA;AAAA,GAAA;AAML,IAAK,qBAAL,kBAAKC,wBAAL;AACH,EAAAA,oBAAA,gBAAa;AACb,EAAAA,oBAAA,oBAAiB;AACjB,EAAAA,oBAAA,2BAAwB;AACxB,EAAAA,oBAAA,yBAAsB;AAJd,SAAAA;AAAA,GAAA;AAOL,IAAK,0BAAL,kBAAKC,6BAAL;AACH,EAAAA,yBAAA,SAAM;AACN,EAAAA,yBAAA,mBAAgB;AAChB,EAAAA,yBAAA,mBAAgB;AAChB,EAAAA,yBAAA,kBAAe;AAJP,SAAAA;AAAA,GAAA;AAYL,IAAK,mBAAL,kBAAKC,sBAAL;AACH,EAAAA,kBAAA,sBAAmB;AACnB,EAAAA,kBAAA,0BAAuB;AAFf,SAAAA;AAAA,GAAA;AA0BL,IAAK,gBAAL,kBAAKC,mBAAL;AACH,EAAAA,eAAA,cAAW;AACX,EAAAA,eAAA,yBAAsB;AACtB,EAAAA,eAAA,yBAAsB;AACtB,EAAAA,eAAA,oBAAiB;AACjB,EAAAA,eAAA,mBAAgB;AAChB,EAAAA,eAAA,mBAAgB;AAChB,EAAAA,eAAA,sBAAmB;AACnB,EAAAA,eAAA,qBAAkB;AAClB,EAAAA,eAAA,qBAAkB;AATV,SAAAA;AAAA,GAAA;AAYL,IAAK,WAAL,kBAAKC,cAAL;AACH,EAAAA,UAAA,eAAY;AACZ,EAAAA,UAAA,aAAU;AAFF,SAAAA;AAAA,GAAA;AAmDL,IAAK,YAAL,kBAAKC,eAAL;AACH,EAAAA,WAAA,cAAW;AACX,EAAAA,WAAA,cAAW;AACX,EAAAA,WAAA,iBAAc;AAHN,SAAAA;AAAA,GAAA;AAML,IAAK,YAAL,kBAAKC,eAAL;AACH,EAAAA,WAAA,sBAAmB;AACnB,EAAAA,WAAA,0BAAuB;AACvB,EAAAA,WAAA,wBAAqB;AAHb,SAAAA;AAAA,GAAA;AAML,IAAK,cAAL,kBAAKC,iBAAL;AACH,EAAAA,aAAA,WAAQ;AACR,EAAAA,aAAA,WAAQ;AACR,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,iBAAc;AACd,EAAAA,aAAA,eAAY;AACZ,EAAAA,aAAA,eAAY;AANJ,SAAAA;AAAA,GAAA;AAaL,IAAK,oBAAL,kBAAKC,uBAAL;AACH,EAAAA,mBAAA,iBAAc;AACd,EAAAA,mBAAA,cAAW;AACX,EAAAA,mBAAA,WAAQ;AAHA,SAAAA;AAAA,GAAA;AAML,IAAK,aAAL,kBAAKC,gBAAL;AACH,EAAAA,YAAA,YAAS;AACT,EAAAA,YAAA,eAAY;AAFJ,SAAAA;AAAA,GAAA;AAKL,IAAK,eAAL,kBAAKC,kBAAL;AACH,EAAAA,cAAA,mBAAgB;AAChB,EAAAA,cAAA,kBAAe;AAFP,SAAAA;AAAA,GAAA;AAwDL,IAAK,qBAAL,kBAAKC,wBAAL;AACH,EAAAA,oBAAA,aAAU;AACV,EAAAA,oBAAA,gBAAa;AACb,EAAAA,oBAAA,eAAY;AACZ,EAAAA,oBAAA,cAAW;AACX,EAAAA,oBAAA,eAAY;AALJ,SAAAA;AAAA,GAAA;AAwBL,IAAK,aAAL,kBAAKC,gBAAL;AACH,EAAAA,YAAA,mBAAgB;AAChB,EAAAA,YAAA,qBAAkB;AAClB,EAAAA,YAAA,sBAAmB;AACnB,EAAAA,YAAA,8BAA2B;AAC3B,EAAAA,YAAA,iBAAc;AACd,EAAAA,YAAA,mBAAgB;AAChB,EAAAA,YAAA,2BAAwB;AACxB,EAAAA,YAAA,+BAA4B;AAC5B,EAAAA,YAAA,iBAAc;AACd,EAAAA,YAAA,mBAAgB;AAChB,EAAAA,YAAA,oBAAiB;AACjB,EAAAA,YAAA,2BAAwB;AACxB,EAAAA,YAAA,oBAAiB;AACjB,EAAAA,YAAA,iBAAc;AACd,EAAAA,YAAA,sBAAmB;AACnB,EAAAA,YAAA,wBAAqB;AACrB,EAAAA,YAAA,qBAAkB;AAClB,EAAAA,YAAA,2BAAwB;AACxB,EAAAA,YAAA,6BAA0B;AAC1B,EAAAA,YAAA,0BAAuB;AApBf,SAAAA;AAAA,GAAA;AAqEL,IAAK,gBAAL,kBAAKC,mBAAL;AACH,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,aAAU;AACV,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,WAAQ;AANA,SAAAA;AAAA,GAAA;AASL,IAAK,cAAL,kBAAKC,iBAAL;AACH,EAAAA,aAAA,oBAAiB;AACjB,EAAAA,aAAA,wBAAqB;AACrB,EAAAA,aAAA,UAAO;AACP,EAAAA,aAAA,iBAAc;AACd,EAAAA,aAAA,oBAAiB;AACjB,EAAAA,aAAA,qBAAkB;AAClB,EAAAA,aAAA,aAAU;AACV,EAAAA,aAAA,eAAY;AARJ,SAAAA;AAAA,GAAA;AAWL,IAAK,qBAAL,kBAAKC,wBAAL;AACH,EAAAA,oBAAA,aAAU;AACV,EAAAA,oBAAA,aAAU;AACV,EAAAA,oBAAA,WAAQ;AACR,EAAAA,oBAAA,UAAO;AACP,EAAAA,oBAAA,WAAQ;AALA,SAAAA;AAAA,GAAA;AAQL,IAAM,eAAN,kBAAMC,kBAAN;AACH,EAAAA,cAAA,SAAM;AACN,EAAAA,cAAA,QAAK;AACL,EAAAA,cAAA,kBAAe;AAHN,SAAAA;AAAA,GAAA;AAqDN,IAAK,mBAAL,kBAAKC,sBAAL;AACH,EAAAA,kBAAA,aAAU;AACV,EAAAA,kBAAA,YAAS;AAFD,SAAAA;AAAA,GAAA;AA2CL,IAAK,WAAL,kBAAKC,cAAL;AACH,EAAAA,UAAA,oBAAiB;AADT,SAAAA;AAAA,GAAA;AAiBL,IAAK,mBAAL,kBAAKC,sBAAL;AACH,EAAAA,kBAAA,iBAAc;AACd,EAAAA,kBAAA,WAAQ;AACR,EAAAA,kBAAA,eAAY;AAHJ,SAAAA;AAAA,GAAA;;;ACvkBL,IAAM,gBAAN,MAA4C;AAAA,EA6CxC,YAAY,UAAkB,cAA4B,UAAoB,eAAuB;AAxC5G,SAAU,YAA0C;AACpD,SAAU,WAAgC;AAC1C,SAAU,cAA+B,IAAI,gBAAgB;AAuCzD,SAAK,YAAY;AAEjB,SAAK,YAAY;AACjB,SAAK,gBAAgB;AAErB,SAAK,iBAAiB;AAAA,EAC1B;AAAA,EAzCA,CAAC,OAAO,aAAa,IAA+B;AAChD,QAAI,CAAC,KAAK,WAAW;AACjB,YAAM,MAAM,aAAa;AAAA,IAC7B;AACA,QAAI,WAAW;AACf,UAAM,mBAAmB,KAAK;AAC9B,UAAM,aAAa,KAAK;AACxB,oBAAgB,WAAsC;AAClD,UAAI,UAAU;AACV,cAAM,IAAI,MAAM,0EAA0E;AAAA,MAC9F;AACA,iBAAW;AACX,UAAI,OAAO;AACX,UAAI;AACA,cAAM,cAAc,MAAM;AAC1B,YAAI,aAAa;AACb,mBAAS,cAAc,aAAa;AAChC,kBAAM;AAAA,UACV;AAAA,QACJ;AACA,eAAO;AAAA,MACX,SAAS,GAAG;AAER,YAAI,aAAa,SAAS,EAAE,SAAS,aAAc;AACnD,cAAM;AAAA,MACV,UAAE;AAEE,YAAI,CAAC,KAAM,YAAW,MAAM;AAAA,MAChC;AAAA,IACJ;AAEA,WAAO,SAAS;AAAA,EACpB;AAAA,EAWO,MAAM,MAAiC;AAC1C,SAAK,YAAY,IAAI,QAAsB,OAAO,SAAS,WAAW;AAClE,UAAI;AACA,YAAI,YAAY;AAChB,eAAO,MAAM;AACT,cAAI,WAAW;AACf,cAAI,WAAW;AACX,uBAAW,MAAM,KAAK,UAAU,oBAAoB,SAAS,eAAe;AAAA,cACxE,QAAQ;AAAA,YACZ,CAAC;AAAA,UACL,OAAO;AACH,kBAAM,gBAAgB,IAAI,IAAI,OAAO,QAAQ,KAAK,aAAa,CAAC;AAChE,0BAAc,IAAI,OAAO,KAAK,SAAS;AACvC,kBAAM,OAAO,IAAI,SAAS;AAC1B,iBAAK,OAAO,iBAAiB,KAAK,UAAU,OAAO,YAAY,aAAa,CAAC,CAAC;AAC9E,uBAAW,MAAM,KAAK,UAAU,4BAA4B;AAAA,cACxD,QAAQ;AAAA,cACR;AAAA,YACJ,CAAC;AAAA,UACL;AACA,gBAAM,cAAc,SAAS,aAAa;AAC1C,gBAAM,UAAU,SAAS,UAAU;AACnC,cAAI,aAAa;AACb,iBAAK,WAAW;AAChB,oBAAQ,WAAW;AACnB;AAAA,UACJ,OAAO;AACH,wBAAY,SAAS,YAAY;AACjC,gBAAI,CAAC,WAAW;AACZ,qBAAO,mCAAmC,KAAK,UAAU,QAAQ,CAAC,EAAE;AACpE;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ,SAAS,QAAQ;AACb,eAAO,MAAM;AAAA,MACjB,UAAE;AACE,aAAK;AAAA,MACT;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AAAA,EAEO,SAAe;AAClB,SAAK,YAAY,MAAM,WAAW;AAAA,EACtC;AACJ;AAGO,IAAM,qBAAN,MAAyB;AAAA,EAiBrB,YAAY,iBAAkC,eAA8B,UAAoB,eAAuB;AAZ9H,SAAU,YAA8C;AACxD,SAAU,cAA+B,IAAI,gBAAgB;AAYzD,SAAK,YAAY;AAEjB,SAAK,mBAAmB;AACxB,SAAK,iBAAiB;AAEtB,SAAK,iBAAiB;AAAA,EAC1B;AAAA,EAdA,MAAa,WAAsC;AAC/C,QAAI,CAAC,KAAK,WAAW;AACjB,YAAM,MAAM,aAAa;AAAA,IAC7B;AACA,WAAO,MAAM,KAAK;AAAA,EACtB;AAAA,EAWO,MAAM,MAAsC;AAC/C,SAAK,YAAY,IAAI,QAA0B,OAAO,SAAS,WAAW;AACtE,UAAI;AACA,YAAI,YAAY;AAChB,eAAO,MAAM;AACT,cAAI,WAAW;AACf,cAAI,WAAW;AACX,uBAAW,MAAM,KAAK,UAAU,uBAAuB,SAAS,eAAe;AAAA,cAC3E,QAAQ;AAAA,YACZ,CAAC;AAAA,UACL,OAAO;AACH,kBAAM,qBAAqB,KAAK,iBAAgB,mBAAmB,KAAK,cAAc,KAAI;AAC1F,uBAAW,MAAM,KAAK,UAAU,iCAAiC,kBAAkB,IAAI;AAAA,cACnF,QAAQ;AAAA,cACR,MAAM,KAAK,UAAU,KAAK,gBAAgB;AAAA,cAC1C,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,YAClD,CAAC;AAAA,UACL;AACA,gBAAM,UAAU,SAAS,UAAU;AACnC,cAAI,SAAS;AACT,oBAAQ,QAAQ;AAChB;AAAA,UACJ,OAAO;AACH,wBAAY,SAAS,YAAY;AACjC,gBAAI,CAAC,WAAW;AACZ,qBAAO,mCAAmC,KAAK,UAAU,QAAQ,CAAC,EAAE;AACpE;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ,SAAS,QAAQ;AACb,eAAO,MAAM;AAAA,MACjB,UAAE;AACE,aAAK;AAAA,MACT;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AAAA,EAEO,SAAe;AAClB,SAAK,YAAY,MAAM,WAAW;AAAA,EACtC;AACJ;;;AClHA,IAAM,6BAA6B;AACnC,IAAM,yBAAyB;AAE/B,SAAS,WAAW,GAAQ,OAAY;AACpC,MAAI,UAAU,MAAM;AAChB,WAAO;AAAA,EACX;AACA,SAAO;AACX;AAEO,IAAM,eAAN,cAA2B,SAAuB;AAAA,EAWrD,YAAY,SAAsB;AAC9B,UAAM,OAAO;AACb,SAAK,gBAAgB;AACrB,SAAK,YAAY;AACjB,SAAK,MAAM;AACX,SAAK,8BAA8B;AACnC,SAAK,aAAa,QAAQ,aAAa;AACvC,SAAK,0BAA0B,CAAC;AAChC,SAAK,kCAAkC,oBAAI,IAA6B;AACxE,UAAM,cAA2B,QAAQ;AACzC,QAAI,YAAY,YAAY,QAAW;AACnC,YAAM,cAAc,YAAY;AAChC,UAAI,YAAY,WAAW;AACvB,aAAK,aAAa,YAAY;AAAA,MAClC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAsB,UAAgC;AAClD,UAAM,UAAU,MAAM,MAAM,QAAQ;AACpC,WAAO;AAAA,MACH,WAAW,QAAQ;AAAA,MACnB,aAAa,QAAQ;AAAA,MACrB,YAAY,QAAQ;AAAA,MACpB,WAAW,KAAK,QAAQ,EAAE;AAAA,MAC1B,eAAe,KAAK;AAAA,MACpB,WAAW,KAAK;AAAA,IACpB;AAAA,EACJ;AAAA,EAEA,MAAsB,WAAW,OAAgB,MAAqB;AAClE,SAAK,gBAAgB;AACrB,SAAK,YAAY;AACjB,QAAI,KAAK,KAAK;AACV,UAAI;AACA,aAAK,IAAI,MAAM;AAAA,MACnB,SAAS,GAAG;AACR,aAAK,QAAQ,KAAK,qBAAqB,CAAC;AAAA,MAC5C;AACA,WAAK,MAAM;AAAA,IACf;AACA,UAAM,MAAM,WAAW,IAAI;AAAA,EAC/B;AAAA,EAEA,MAAyB,YAAmC;AACxD,QAAI,CAAC,KAAK,SAAS;AACf,aAAO,QAAQ,OAAO,0BAA0B;AAAA,IACpD;AACA,UAAM,mBAAmB,KAAK,aAAa,iBAAiB,KAAK,UAAU,KAAK;AAChF,UAAM,aAAa,GAAG,KAAK,UAAU,CAAC,cAAc,gBAAgB;AACpE,QAAI,UAAU;AAAA,MACV,eAAe,MAAM,KAAK,oBAAoB;AAAA,IAClD;AACA,SAAK,2CAAqC;AAC1C,QAAI,WAAW,MAAM,KAAK,QAAQ,MAAM,YAAY,EAAE,QAAiB,CAAC;AACxE,QAAI,SAAS,UAAU,KAAK;AACxB,WAAK,eAAe,MAAM,uDAAuD,UAAU;AAE3F,WAAK,iBAAiB,SAAS,MAAM;AACrC,gBAAU;AAAA,QACN,eAAe,MAAM,KAAK,oBAAoB;AAAA,MAClD;AACA,WAAK,2CAAqC;AAC1C,iBAAW,MAAM,KAAK,QAAQ,MAAM,YAAY;AAAA,QAC5C;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,QAAI,SAAS,UAAU,KAAK;AACxB,WAAK,+BAA+B;AACpC,YAAM,UAAU,MAAM,SAAS,KAAK;AACpC,aAAO,QAAQ,OAAO,qBAAqB,SAAS,MAAM,QAAQ,UAAU,KAAK,OAAO,EAAE;AAAA,IAC9F;AACA,QAAI,SAAU,MAAM,SAAS,KAAK;AAElC,UAAM,gBAAgB,IAAI,IAAI,OAAO,iBAAiB,KAAK,UAAU,CAAC;AACtE,SAAK,gBAAgB,cAAc,SAAS;AAC5C,UAAM,YAAY,IAAI,IAAI,OAAO,aAAa,KAAK,UAAU,CAAC;AAC9D,SAAK,YAAY,UAAU,SAAS;AAEpC,QAAI,KAAK,QAAQ,EAAE,WAAW;AAC1B,WAAK,QAAQ,KAAK,wBAAwB;AAAA,IAC9C,OAAO;AACH,YAAM,KAAK,aAAa;AAAA,IAC5B;AAEA,QAAI,KAAK,QAAQ,EAAE,WAAW;AAC1B,YAAM,SAAS,KAAK;AACpB,YAAM,MAAM,QAAQ,KAAK,eAAe,YAAY,uBAAuB;AAC3E,YAAMC,WAAU;AAAA,QACZ,eAAe,MAAM,KAAK,oBAAoB;AAAA,MAClD;AACA,iBAAW,MAAM,OAAO,MAAM,KAAK;AAAA,QAC/B,SAASA;AAAA,MACb,CAAC;AACD,UAAI,SAAS,UAAU,KAAK;AACxB,aAAK,+BAA+B;AACpC,cAAM,UAAU,MAAM,SAAS,KAAK;AACpC,eAAO,QAAQ,OAAO,qBAAqB,SAAS,MAAM,KAAK,OAAO,EAAE;AAAA,MAC5E;AAAA,IACJ;AAEA,SAAK,YAAY;AACjB,WAAO,QAAQ,QAAQ,IAAI;AAAA,EAC/B;AAAA,EAEA,MAAc,eAA8B;AACxC,QAAI,KAAK,KAAK;AACV,WAAK,IAAI,MAAM;AACf,WAAK,MAAM;AAAA,IACf;AACA,UAAM,UAAU,KAAK,eAAe,QAAQ,YAAY,QAAQ,EAAE,QAAQ,WAAW,OAAO;AAC5F,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AACA,UAAM,SAAS,QAAQ,SAAS,QAAQ;AACxC,SAAK,eAAe,MAAM,8BAA8B,MAAM;AAC9D,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,YAAM,KAAK,gBAAgB,MAAM;AACjC,UAAI,CAAC,IAAI;AACL,eAAO,QAAQ;AAAA,MACnB;AACA,WAAK,MAAM;AAEX,SAAG,SAAS,YAAY;AACpB,cAAM,cAAc,MAAM,KAAK,oBAAoB;AACnD,YAAI,MAAM,KAAK,UAAU,EAAE,eAAe,YAAY,CAAC;AACvD,aAAK,eAAe,MAAM,eAAe,GAAG;AAC5C,WAAG,KAAK,GAAG;AACX,cAAM,KAAK,UAAU,EAAE,WAAW,EAAE,cAAc,KAAK,WAAW,EAAE,CAAC;AACrE,aAAK,eAAe,MAAM,eAAe,GAAG;AAC5C,WAAG,KAAK,GAAG;AACX,iBAAS,gBAAgB,KAAK,gCAAgC,KAAK,GAAG;AAClE,gBAAMC,OAAM,KAAK,UAAU,EAAE,WAAW,EAAE,aAA2B,EAAE,CAAC;AACxE,eAAK,eAAe,MAAM,eAAeA,IAAG;AAC5C,aAAG,KAAKA,IAAG;AAAA,QACf;AACA,aAAK,8BAA8B;AACnC,gBAAQ;AAAA,MACZ;AAEA,SAAG,YAAY,WAAS;AACpB,cAAM,OAAO,KAAK,MAAM,MAAM,IAAI;AAClC,aAAK,eAAe,MAAM,mBAAmB,KAAK,UAAU,IAAI,CAAC;AACjE,cAAM,eAAe;AACrB,aAAK,oBAAoB,YAAY;AAAA,MACzC;AAEA,SAAG,UAAU,CAAC,UAAsB;AAChC,cAAM,EAAE,MAAM,OAAO,IAAI;AACzB,aAAK,eAAe,MAAM,oBAAoB,MAAM,MAAM;AAE1D,YAAI,WAAW,eAAe;AAC1B,cAAI,CAAC,KAAK,6BAA6B;AACnC,iBAAK,8BAA8B;AAAA,UACvC,WAAW,KAAK,8BAA8B,wBAAwB;AAClE,iBAAK,+BAA+B;AAAA,UACxC;AACA,qBAAW,YAAY;AACnB,kBAAM,KAAK,aAAa;AAAA,UAC5B,GAAG,KAAK,2BAA2B;AAAA,QACvC;AAAA,MACJ;AAEA,SAAG,UAAU,CAAC,UAAsB;AAChC,aAAK,QAAQ,MAAM,KAAK;AACxB,eAAO,KAAK;AACZ,eAAO;AAAA,MACX;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEQ,UAAuB;AAC3B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAc,QAAQC,OAAc,UAAuB,CAAC,GAAG,cAAuB,OAAO,uCAAgD;AACzI,UAAM,SAAS,KAAK;AACpB,QAAI,CAAC,QAAQ;AACT,aAAO,QAAQ,OAAO,wBAAwB;AAAA,IAClD;AACA,QAAI,WAAW,MAAM,KAAK,eAAe,YAAY;AACjD,YAAM,UAAU,MAAM,KAAK,QAAQ;AAEnC,YAAM,UAAU,WAAW,SAAS,WAAW;AAC/C,YAAM,UAAU;AAAA,QACZ,GAAI,cAAc,CAAC,IAAI,EAAE,eAAe,UAAU,QAAQ,WAAW,GAAG;AAAA,QACxE,GAAI,QAAQ,WAAW,CAAC;AAAA,MAC5B;AAEA,UAAI,CAAC,QAAQ,MAAM;AACf,gBAAQ,OAAO;AAAA,MACnB;AAEA,YAAM,KAAK;AAAA,QACP;AAAA,QACA,QAAQ,QAAQ,UAAU;AAAA,QAC1B,MAAM,QAAQ;AAAA,MAClB;AACA,WAAK,eAAe,MAAM,eAAe,GAAG,SAAS,MAAMA,QAAO,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG;AAEtG,aAAO,MAAM,OAAO,MAAM,QAAQ,WAAW,IAAIA,KAAI,GAAG,EAAE;AAAA,IAC9D,CAAC;AAED,QAAI,SAAS,WAAW,KAAK;AACzB,aAAO;AAAA,IACX;AAEA,UAAM,cAAc,SAAS,QAAQ,IAAI,cAAc;AACvD,SAAK,eAAe,MAAM,gBAAgB,SAAS,SAAS,MAAM,SAAS,UAAU;AAErF,QAAI,CAAC,SAAS,IAAI;AACd,UAAI,gBAAgB,YAAY,YAAY,EAAE,WAAW,kBAAkB,KAAK,YAAY,YAAY,EAAE,WAAW,OAAO,IAAI;AAC5H,cAAM,IAAI,MAAM,uBAAuB,SAAS,MAAM,IAAI,SAAS,UAAU,KAAK,MAAM,SAAS,KAAK,CAAC,EAAE;AAAA,MAC7G,OAAO;AACH,cAAM,IAAI,MAAM,uBAAuB,SAAS,MAAM,IAAI,SAAS,UAAU,EAAE;AAAA,MACnF;AAAA,IACJ;AAEA,QAAI,eAAe,YAAY,YAAY,EAAE,WAAW,kBAAkB,GAAG;AACzE,aAAO,MAAM,SAAS,KAAK;AAAA,IAC/B;AAEA,WAAO,MAAM,SAAS,KAAK;AAAA,EAC/B;AAAA,EAEA,MAAM,aAAa,gBAAyB,MAAM,yBAAuD;AACrG,UAAM,yBAAyB,OAAO,4BAA4B,cAAc,4BAA4B,uBAAuB,KAAK;AACxI,WAAO,KAAK,QAAQ,0BAA0B,KAAK,UAAU,kBAAkB,aAAa,GAAG,sBAAsB,IAAI;AAAA,MACrH,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,cAAc,MAAuC;AACvD,WAAO,KAAK,QAAQ,0BAA0B,KAAK,UAAU,IAAI;AAAA,MAC7D,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,IAAI;AAAA,MACzB,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,WAAW,cAAsB,gBAAyB,MAAM,iBAA0B,yBAAqD;AACjJ,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,UAAM,yBAAyB,OAAO,4BAA4B,cAAc,4BAA4B,uBAAuB,KAAK;AACxI,WAAO,KAAK,QAAQ,aAAa,YAAY,kBAAkB,aAAa,GAAG,YAAY,GAAG,sBAAsB,IAAI;AAAA,MACpH,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,cAAc,cAAsB,MAAqB,sBAA+B,MAAwB;AAClH,WAAO,KAAK,QAAQ,aAAa,YAAY,wBAAwB,mBAAmB,IAAI;AAAA,MACxF,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,IAAI;AAAA,MACzB,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,uBAAuB,cAAsB,QAAkD;AACjG,WAAO,KAAK,QAAQ,aAAa,YAAY,eAAe;AAAA,MACxD,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,MAAM;AAAA,MAC3B,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,cAAc,cAAqC;AACrD,WAAO,KAAK,QAAQ,aAAa,YAAY,IAAI;AAAA,MAC7C,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,qBAAqB,cAAsB,iBAA4C;AACzF,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,WAAO,KAAK,QAAQ,aAAa,YAAY,WAAW,YAAY,IAAI;AAAA,MACpE,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,sBAAsB,cAAsB,iBAAyC;AACvF,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,WAAO,KAAK,QAAQ,aAAa,YAAY,YAAY,YAAY,IAAI;AAAA,MACrE,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,2BAA2B,cAAsB,iBAA0B,YAAoC;AACjH,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,UAAM,iBAAiB,aAAa,eAAe,UAAU,KAAK;AAClE,WAAO,KAAK,QAAQ,aAAa,YAAY,kBAAkB,YAAY,GAAG,cAAc,IAAI;AAAA,MAC5F,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,qBAAqB,cAAsB,iBAA2C;AACxF,WAAO,KAAK,QAAQ,aAAa,YAAY,6BAA6B,eAAe,IAAI;AAAA,MACzF,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,kBAAkB,cAAsB,iBAAyB,eAA6B,wBAAmB,GAAkB;AACrI,QAAI,mBAAmB;AACvB,aAAS,cAAc,cAAc;AACjC,0BAAoB,gBAAgB,UAAU;AAAA,IAClD;AACA,UAAM,KAAK,QAAQ,aAAa,YAAY,gCAAgC,eAAe,GAAG,gBAAgB,IAAI;AAAA,MAC9G,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,0BAA0B,QAAmC,cAAsB,iBAAyC;AAC9H,UAAM,eAAe,kBAAkB,mBAAmB,eAAe,MAAM;AAC/E,WAAO,KAAK,QAAQ,aAAa,YAAY,mBAAmB,YAAY,IAAI;AAAA,MAC5E,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,MAAM;AAAA,MAC3B,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,0BAA0B,QAAmC,cAAsB,eAAuB,QAAgB,iBAAyC;AACrK,UAAM,eAAe,kBAAkB,mBAAmB,eAAe,MAAM;AAC/E,WAAO,KAAK,QAAQ,aAAa,YAAY,iCAAiC,aAAa,WAAW,mBAAmB,MAAM,CAAC,IAAI,YAAY,IAAI;AAAA,MAChJ,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,MAAM;AAAA,MAC3B,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,yBAAyB,cAAsB,eAAwB,QAAiB,iBAA0D;AACpJ,UAAM,eAAe,kBAAkB,mBAAmB,eAAe,MAAM;AAC/E,UAAM,oBAAoB,gBAAgB,iBAAiB,aAAa,MAAM;AAC9E,UAAM,cAAc,SAAS,UAAU,MAAM,MAAM;AACnD,WAAO,KAAK,QAAQ,aAAa,YAAY,mBAAmB,YAAY,IAAI,iBAAiB,IAAI,WAAW,IAAI;AAAA,MAChH,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA;AAAA,EAGA,MAAM,YAAY,cAAsB,iBAAqC,MAAY,cAAkC,QAA2B;AAClJ,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,QAAI;AACJ,QAAI,aAAa;AACb,kBAAY,wBAAwB,YAAY,GAAG,YAAY,gBAAgB,WAAW;AAAA,IAC9F,OAAO;AACH,kBAAY,wBAAwB,YAAY,GAAG,YAAY;AAAA,IACnE;AAEA,WAAO,KAAK,QAAQ,WAAW;AAAA,MAC3B,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,QACL,gBAAgB,KAAK,QAAQ;AAAA,MACjC;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,YAAY,cAAsB,iBAAqC,cAA2B,cAAkC,QAA2B;AACjK,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,QAAI;AACJ,QAAI,aAAa;AACb,kBAAY,gCAAgC,YAAY,GAAG,YAAY,gBAAgB,WAAW;AAAA,IACtG,OAAO;AACH,kBAAY,gCAAgC,YAAY,GAAG,YAAY;AAAA,IAC3E;AAEA,WAAO,KAAK,QAAQ,WAAW;AAAA,MAC3B,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,YAAY;AAAA,MACjC,SAAS;AAAA,QACL,gBAAgB;AAAA,MACpB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,WACF,cACA,iBACA,sBAA+B,OAC/B,OACA,gBACA,2BACA,oBACA,wBACA,iBACgB;AAChB,UAAM,SAAS,IAAI,gBAAgB;AACnC,WAAO,IAAI,gBAAgB,YAAY;AACvC,QAAI,mBAAmB,KAAM,QAAO,IAAI,mBAAmB,OAAO,eAAe,CAAC;AAClF,QAAI,oBAAqB,QAAO,IAAI,uBAAuB,MAAM;AACjE,QAAI,kBAAkB,KAAM,QAAO,IAAI,kBAAkB,cAAc;AACvE,QAAI,6BAA6B,KAAM,QAAO,IAAI,6BAA6B,yBAAyB;AACxG,eAAW,KAAK,sBAAsB,CAAC,EAAG,QAAO,OAAO,qBAAqB,CAAC;AAC9E,eAAW,KAAK,0BAA0B,CAAC,EAAG,QAAO,OAAO,yBAAyB,CAAC;AACtF,eAAW,KAAK,mBAAmB,CAAC,EAAG,QAAO,OAAO,kBAAkB,CAAC;AACxE,QAAI,SAAS,KAAM,QAAO,IAAI,SAAS,OAAO,KAAK,CAAC;AACpD,WAAO,KAAK,QAAQ,WAAW,OAAO,SAAS,CAAC,IAAI;AAAA,MAChD,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,SAAS,YAAoB,cAAuB,iBAA0B,sBAA+B,OAAO,OAAgC;AACtJ,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,UAAM,mBAAmB,sBAAsB,8BAA8B;AAC7E,UAAM,eAAe,eAAe,iBAAiB,YAAY,KAAK;AACtE,UAAM,YAAY,QAAQ,UAAU,KAAK,KAAK;AAC9C,WAAO,KAAK,QAAQ,WAAW,UAAU,IAAI,YAAY,GAAG,YAAY,GAAG,gBAAgB,GAAG,SAAS,IAAI;AAAA,MACvG,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,YAAY,YAAoB,cAAuB,iBAAyC;AAClG,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,UAAM,eAAe,eAAe,iBAAiB,YAAY,KAAK;AACtE,WAAO,KAAK,QAAQ,WAAW,UAAU,IAAI,YAAY,GAAG,YAAY,IAAI;AAAA,MACxE,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,eAAe,YAAoB,cAAsB,sBAA8B,sBAA8C;AACvI,UAAM,mBAAmB,uBAAuB,yBAAyB,oBAAoB,KAAK;AAClG,WAAO,KAAK,QAAQ,WAAW,UAAU,2BAA2B,YAAY,yBAAyB,oBAAoB,GAAG,gBAAgB,IAAI;AAAA,MAChJ,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,uBAAuB,YAAoB,cAAuB,iBAA0B,aAA2C;AACzI,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,UAAM,eAAe,eAAe,iBAAiB,YAAY,KAAK;AACtE,WAAO,KAAK,QAAQ,WAAW,UAAU,iBAAiB,YAAY,GAAG,YAAY,IAAI;AAAA,MACrF,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,WAAW;AAAA,MAChC,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,uBAAuB,YAAoB,cAAuB,iBAAyC;AAC7G,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,UAAM,eAAe,eAAe,iBAAiB,YAAY,KAAK;AACtE,WAAO,KAAK,QAAQ,WAAW,UAAU,iBAAiB,YAAY,GAAG,YAAY,IAAI;AAAA,MACrF,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,2BAA2B,YAAoB,eAAuB,aAAyB,oBAA4C;AAC7I,UAAM,gBAAgB,CAAC,YAAY,YAAY,SAAS;AACxD,QAAI,CAAC,cAAc,SAAS,WAAW,GAAG;AACtC,YAAM,IAAI,MAAM,gBAAgB;AAAA,IACpC;AACA,UAAM,iBAAiB,qBAAqB,uBAAuB,kBAAkB,KAAK;AAC1F,WAAO,KAAK,QAAQ,WAAW,UAAU,qBAAqB,aAAa,gBAAgB,WAAW,GAAG,cAAc,IAAI;AAAA,MACvH,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,mBACF,YACA,cACA,iBACA,aACA,eACA,QACA,aACA,oBACa;AACb,UAAM,eAAe,eAAe,gBAAgB,YAAY,MAAM;AACtE,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,MAAM;AAChF,UAAM,oBAAoB,gBAAgB,kBAAkB,aAAa,MAAM;AAC/E,UAAM,cAAc,SAAS,WAAW,mBAAmB,MAAM,CAAC,MAAM;AACxE,UAAM,kBAAkB,cAAc,gBAAgB,WAAW,MAAM;AACvE,UAAM,yBAAyB,OAAO,uBAAuB,cAAc,uBAAuB,kBAAkB,MAAM;AAC1H,WAAO,KAAK,QAAQ,WAAW,UAAU,gBAAgB,YAAY,GAAG,YAAY,GAAG,iBAAiB,GAAG,WAAW,GAAG,eAAe,GAAG,sBAAsB,IAAI;AAAA,MACjK,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,WAAW;AAAA,MAChC,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,8BACF,YACA,cACA,iBACA,eACA,QACA,aACA,oBACa;AACb,UAAM,eAAe,eAAe,gBAAgB,YAAY,MAAM;AACtE,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,MAAM;AAChF,UAAM,oBAAoB,gBAAgB,kBAAkB,aAAa,MAAM;AAC/E,UAAM,cAAc,SAAS,WAAW,mBAAmB,MAAM,CAAC,MAAM;AACxE,UAAM,kBAAkB,cAAc,gBAAgB,WAAW,MAAM;AACvE,UAAM,yBAAyB,qBAAqB,uBAAuB,kBAAkB,MAAM;AACnG,WAAO,KAAK,QAAQ,WAAW,UAAU,gBAAgB,YAAY,GAAG,YAAY,GAAG,iBAAiB,GAAG,WAAW,GAAG,eAAe,GAAG,sBAAsB,IAAI;AAAA,MACjK,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,cACF,YACA,cACA,iBACA,4CACA,iBACA,eACA,UACgC;AAChC,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,UAAM,eAAe,eAAe,iBAAiB,YAAY,KAAK;AACtE,UAAM,sBAAsB,kBAAkB,oBAAoB,eAAe,KAAK;AACtF,UAAM,oBAAoB,gBAAgB,kBAAkB,aAAa,KAAK;AAC9E,UAAM,eAAe,WAAW,aAAa,QAAQ,KAAK;AAE1D,WAAO,KAAK,QAAQ,WAAW,UAAU,4BAA4B,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,YAAY,IAAI;AAAA,MAC1K,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,yBAAyB,YAAoB,eAAuB,sBAAgE;AACtI,WAAO,KAAK,QAAQ,WAAW,UAAU,wCAAwC,aAAa,IAAI;AAAA,MAC9F,QAAQ;AAAA,MACR,MAAM,uBAAuB,KAAK,UAAU,oBAAoB,IAAI;AAAA,MACpE,SAAS,uBAAuB,EAAE,gBAAgB,mBAAmB,IAAI,CAAC;AAAA,IAC9E,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,YAAY,YAAoB,KAAU,cAAuB,iBAA0B,aAA2C;AACxI,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,UAAM,eAAe,eAAe,iBAAiB,YAAY,KAAK;AACtE,WAAO,KAAK,QAAQ,WAAW,UAAU,SAAS,YAAY,GAAG,YAAY,IAAI;AAAA,MAC7E,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,GAAG;AAAA,MACxB,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,eAAe,YAAoB,MAAc,cAAuB,iBAAyC;AACnH,UAAM,eAAe,kBAAkB,oBAAoB,eAAe,KAAK;AAC/E,UAAM,eAAe,eAAe,iBAAiB,YAAY,KAAK;AACtE,WAAO,KAAK,QAAQ,WAAW,UAAU,SAAS,mBAAmB,IAAI,CAAC,IAAI,YAAY,GAAG,YAAY,IAAI;AAAA,MACzG,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA;AAAA,EAGA,MAAM,aAA+B;AACjC,WAAO,KAAK,QAAQ,wBAAwB,KAAK,UAAU,IAAI;AAAA,MAC3D,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,qBAAqB,cAAwC;AAC/D,WAAO,KAAK,QAAQ,wBAAwB,YAAY,IAAI;AAAA,MACxD,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,YAAY,cAAsB,iBAAyB,MAAmB,iBAA0B,MAAsB;AAChI,WAAO,KAAK,QAAQ,wBAAwB,YAAY,oBAAoB,eAAe,mBAAmB,cAAc,IAAI;AAAA,MAC5H,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,IAAI;AAAA,MACzB,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,SAAS,YAAoC;AAC/C,WAAO,KAAK,QAAQ,WAAW,UAAU,IAAI;AAAA,MACzC,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,yBAAyB,YAAoD;AAC/E,WAAO,KAAK,QAAQ,WAAW,UAAU,aAAa;AAAA,MAClD,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,YAAY,YAAoB,MAAmC;AACrE,WAAO,KAAK,QAAQ,WAAW,UAAU,IAAI;AAAA,MACzC,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,IAAI;AAAA,MACzB,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,YAAY,YAAmC;AACjD,WAAO,KAAK,QAAQ,WAAW,UAAU,IAAI;AAAA,MACzC,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,WAAW,YAAoC;AACjD,WAAO,KAAK,QAAQ,WAAW,UAAU,UAAU;AAAA,MAC/C,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,aAAa,YAAoC;AACnD,WAAO,KAAK,QAAQ,WAAW,UAAU,YAAY;AAAA,MACjD,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,YAAY,YAAoB,WAAuB,QAA8C;AACvG,QAAI,0CAAmC;AACnC,aAAO,QAAQ,OAAO,wBAAwB,SAAS,uBAAuB;AAAA,IAClF;AACA,UAAM,KAAK,QAAQ,WAAW,UAAU,sBAAsB;AAAA,MAC1D,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,MAAM;AAAA,MAC3B,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,uBAAuB,YAAoB,eAA+B,aAAsB,eAA8B;AAChI,UAAM,oBAAoB,gBAAgB,iBAAiB,aAAa,MAAM;AAC9E,UAAM,kBAAkB,cAAc,eAAe,mBAAmB,WAAW,CAAC,MAAM;AAC1F,QAAI,mBAAmB;AACvB,QAAI,eAAe;AACf,iBAAW,gBAAgB,eAAe;AACtC,4BAAoB,gBAAgB,YAAY;AAAA,MACpD;AAAA,IACJ;AACA,WAAO,KAAK,QAAQ,wCAAwC,UAAU,IAAI,iBAAiB,GAAG,eAAe,GAAG,gBAAgB,IAAI;AAAA,MAChI,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEO,uBAAuB,cAA6B;AACvD,SAAK,wBAAwB,KAAK,YAAY;AAAA,EAClD;AAAA,EAEO,0BAA0B,cAA6B;AAC1D,SAAK,0BAA0B,KAAK,wBAAwB,OAAO,OAAK,MAAM,YAAY;AAAA,EAC9F;AAAA,EAEO,uBAAuB,cAAsB,cAA6B;AAC7E,QAAI,iBAAiB,KAAK,gCAAgC,IAAI,YAAY;AAC1E,SAAK,QAAQ,MAAM,6BAA6B,cAAc;AAC9D,QAAI,mBAAmB,QAAW;AAC9B,uBAAiB,CAAC;AAClB,WAAK,gCAAgC,IAAI,cAAc,cAAc;AACrE,YAAM,KAAK,KAAK;AAChB,UAAI,IAAI;AACJ,cAAM,MAAM,KAAK,UAAU,EAAE,WAAW,EAAE,aAA2B,EAAE,CAAC;AACxE,aAAK,eAAe,MAAM,eAAe,GAAG;AAC5C,WAAG,KAAK,GAAG;AAAA,MACf;AAAA,IACJ;AACA,QAAI,eAAe,KAAK,OAAK,MAAM,YAAY,MAAM,cAAc;AAC/D,WAAK,QAAQ,MAAM,4CAA4C,cAAc;AAC7E,qBAAe,KAAK,YAAY;AAAA,IACpC;AAAA,EACJ;AAAA,EAEO,0BAA0B,cAAsB,cAA6B;AAChF,QAAI,iBAAiB,KAAK,gCAAgC,IAAI,YAAY;AAC1E,QAAI,mBAAmB,QAAW;AAC9B;AAAA,IACJ;AACA,qBAAiB,eAAe,OAAO,OAAK,MAAM,YAAY;AAC9D,QAAI,eAAe,UAAU,GAAG;AAC5B,YAAM,KAAK,KAAK;AAChB,UAAI,IAAI;AACJ,cAAM,MAAM,KAAK,UAAU,EAAE,aAAa,EAAE,aAA2B,EAAE,CAAC;AAC1E,aAAK,eAAe,MAAM,eAAe,GAAG;AAC5C,WAAG,KAAK,GAAG;AAAA,MACf;AACA,WAAK,gCAAgC,OAAO,YAAY;AAAA,IAC5D;AAAA,EACJ;AAAA,EAEO,8BAA8B,cAAsB;AACvD,QAAI,iBAAiB,KAAK,gCAAgC,IAAI,YAAY;AAC1E,QAAI,mBAAmB,QAAW;AAC9B;AAAA,IACJ;AACA,UAAM,KAAK,KAAK;AAChB,QAAI,IAAI;AACJ,YAAM,MAAM,KAAK,UAAU,EAAE,aAAa,EAAE,aAA2B,EAAE,CAAC;AAC1E,WAAK,eAAe,MAAM,eAAe,GAAG;AAC5C,SAAG,KAAK,GAAG;AAAA,IACf;AACA,SAAK,gCAAgC,OAAO,YAAY;AAAA,EAC5D;AAAA,EAEA,MAAa,cAAc,cAAsB,eAAuB,UAA6C;AACjH,WAAO,KAAK,QAAQ,2BAA2B,YAAY,kBAAkB,aAAa,IAAI;AAAA,MAC1F,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,QAAQ;AAAA,MAC7B,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAa,YAAY,aAAqB,cAAiD;AAC3F,WAAO,KAAK,QAAQ,cAAc,WAAW,iBAAiB,YAAY,IAAI;AAAA,MAC1E,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAa,cAAc,cAAsB,eAA0B,aAAwB,QAAuD;AACtJ,UAAM,eAAe,eAAe,IAAI,UAAQ,gBAAgB,IAAI,EAAE,EAAE,KAAK,GAAG,KAAK;AACrF,UAAM,aAAa,aAAa,IAAI,UAAQ,cAAc,IAAI,EAAE,EAAE,KAAK,GAAG,KAAK;AAC/E,UAAM,aAAa,QAAQ,IAAI,OAAK,SAAS,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK;AAC/D,UAAM,cAAc,CAAC,cAAc,YAAY,UAAU,EAAE,OAAO,OAAK,CAAC,EAAE,KAAK,GAAG;AAElF,WAAO,KAAK,QAAQ,2BAA2B,YAAY,GAAG,cAAc,IAAI,WAAW,KAAK,EAAE,IAAI;AAAA,MAClG,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAa,WACT,YACA,eACA,cACA,iBACA,gBACA,iBACA,eACsB;AACtB,UAAM,eAAe,eAAe,gBAAgB,YAAY,MAAM;AACtE,UAAM,eAAe,kBAAkB,mBAAmB,eAAe,MAAM;AAC/E,UAAM,qBAAqB,iBAAiB,kBAAkB,cAAc,MAAM;AAClF,UAAM,sBAAsB,kBAAkB,mBAAmB,eAAe,MAAM;AACtF,UAAM,oBAAoB,gBAAgB,iBAAiB,aAAa,MAAM;AAE9E,UAAM,WAAW,2BAA2B,UAAU,IAAI,kBAAkB,GAAG,YAAY,GAAG,YAAY,GAAG,mBAAmB,GAAG,iBAAiB;AAEpJ,QAAI,CAAC,KAAK,aAAa,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ;AAClD,YAAM,IAAI,MAAM,uCAAuC;AAAA,IAC3D;AACA,UAAM,KAAK,OAAO,QAAQ;AAC1B,QAAI;AACA,WAAK,YAAY;AACjB,YAAM,MAAM,IAAI;AAAA,QACZ;AAAA,QACA;AAAA,QACA,OAAOA,OAAc,YAAiB;AAClC,iBAAO,MAAM,KAAK,QAAQA,OAAM,SAAS,sBAAsB;AAAA,QACnE;AAAA,QACA,KAAK;AAAA,MACT;AACA,aAAO,IAAI,MAAM,MAAM;AACnB,aAAK,QAAQ,GAAG;AAAA,MACpB,CAAC;AAAA,IACL,SAAS,GAAG;AAER,WAAK,OAAO,QAAQ;AACpB,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,MAAa,gBAAgB,kBAAmC,gBAAsD;AAClH,QAAI,CAAC,KAAK,aAAa,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ;AAClD,YAAM,IAAI,MAAM,uCAAuC;AAAA,IAC3D;AACA,UAAM,KAAK,OAAO,QAAQ;AAC1B,QAAI;AACA,WAAK,YAAY;AACjB,YAAM,MAAM,IAAI;AAAA,QACZ;AAAA,QACA,kBAAkB;AAAA,QAClB,OAAOA,OAAc,YAAiB;AAClC,iBAAO,MAAM,KAAK,QAAQA,OAAM,SAAS,sBAAsB;AAAA,QACnE;AAAA,QACA,KAAK;AAAA,MACT;AACA,aAAO,IAAI,MAAM,MAAM;AACnB,aAAK,QAAQ,GAAG;AAAA,MACpB,CAAC;AAAA,IACL,SAAS,GAAG;AAER,WAAK,OAAO,QAAQ;AACpB,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEQ,QAAQ,MAAc;AAC1B,SAAK,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,MAAc,oBAAoB,cAA0C;AACxE,YAAQ,aAAa,aAAa;AAAA;AAAA,MAE9B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AACI,aAAK,QAAQ,MAAM,iDAAiD,KAAK,uBAAuB;AAChG,iBAAS,WAAW,KAAK,yBAAyB;AAC9C,gBAAM,QAAQ,YAAY;AAAA,QAC9B;AACA;AAAA;AAAA,MAEJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AACI,cAAM,iBAAiB,KAAK,gCAAgC,IAAI,aAAa,YAAY;AACzF,aAAK,QAAQ,MAAM,yCAAyC,cAAc;AAC1E,YAAI,mBAAmB,QAAW;AAC9B,mBAAS,WAAW,gBAAgB;AAChC,kBAAM,QAAQ,YAAY;AAAA,UAC9B;AAAA,QACJ;AACA;AAAA,IACR;AAAA,EACJ;AAAA;AAAA,EAIA,MAAM,uBAAmD;AACrD,WAAO,KAAK,QAAQ,oCAAoC,KAAK,UAAU,IAAI;AAAA,MACvE,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,sBAAsB,QAAyD;AACjF,WAAO,KAAK,QAAQ,oCAAoC,KAAK,UAAU,IAAI;AAAA,MACvE,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,QAAQ,UAAU;AAAA,MACvC,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,mBAAmB,wBAA0D;AAC/E,WAAO,KAAK,QAAQ,uBAAuB,sBAAsB,IAAI;AAAA,MACjE,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,sBAAsB,wBAA+C;AACvE,WAAO,KAAK,QAAQ,uBAAuB,sBAAsB,IAAI;AAAA,MACjE,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,sBAAsB,wBAAgC,QAAyD;AACjH,WAAO,KAAK,QAAQ,uBAAuB,sBAAsB,IAAI;AAAA,MACjE,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,MAAM;AAAA,MAC3B,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,mBAA0C;AAC5C,WAAO,KAAK,QAAQ,+BAA+B,KAAK,UAAU,IAAI;AAAA,MAClE,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,iBAAiB,QAA0B,wBAAsD;AACnG,UAAM,aAAa,yBAAyB,2BAA2B,sBAAsB,KAAK;AAClG,WAAO,KAAK,QAAQ,+BAA+B,KAAK,UAAU,GAAG,UAAU,IAAI;AAAA,MAC/E,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,QAAQ,UAAU;AAAA,MACvC,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,cAAc,kBAA+C;AAC/D,WAAO,KAAK,QAAQ,kBAAkB,gBAAgB,IAAI;AAAA,MACtD,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,iBAAiB,kBAAyC;AAC5D,WAAO,KAAK,QAAQ,kBAAkB,gBAAgB,IAAI;AAAA,MACtD,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,iBAAiB,kBAA0B,QAA+C;AAC5F,WAAO,KAAK,QAAQ,kBAAkB,gBAAgB,IAAI;AAAA,MACtD,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,MAAM;AAAA,MAC3B,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,iBAAiB,kBAA0B,aAA2C,WAAuD;AAC/I,QAAI,gBAAgB,QAAW;AAC3B,aAAO,KAAK,QAAQ,kBAAkB,gBAAgB,WAAW;AAAA,QAC7D,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,aAAa,UAAU;AAAA,QAC5C,SAAS,EAAC,gBAAgB,mBAAkB;AAAA,MAChD,CAAC;AAAA,IACL,WAAW,cAAc,QAAW;AAChC,aAAO,KAAK,QAAQ,kBAAkB,gBAAgB,gBAAgB;AAAA,QAClE,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,WAAW,UAAU;AAAA,QAC1C,SAAS,EAAC,gBAAgB,mBAAkB;AAAA,MAChD,CAAC;AAAA,IACL,OAAO;AACH,aAAO,QAAQ,OAAO,kEAAkE;AAAA,IAC5F;AAAA,EACJ;AAAA,EAEA,MAAM,gBAAgB,kBAA0B,cAAuB,MAAe,oBAAkD;AACpI,UAAM,SAAS,IAAI,gBAAgB;AACnC,QAAI,cAAc;AACd,aAAO,IAAI,gBAAgB,YAAY;AAAA,IAC3C,WAAW,KAAK,YAAY;AACxB,aAAO,IAAI,gBAAgB,KAAK,UAAU;AAAA,IAC9C;AACA,QAAI,MAAM;AACN,aAAO,IAAI,QAAQ,IAAI;AAAA,IAC3B;AACA,QAAI,oBAAoB;AACpB,aAAO,IAAI,sBAAsB,kBAAkB;AAAA,IACvD;AACA,WAAO,KAAK,QAAQ,kBAAkB,gBAAgB,UAAU,OAAO,SAAS,CAAC,IAAI;AAAA,MACjF,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,kBAAkB,kBAA0B,YAAqB,UAAwC;AAC3G,UAAM,mBAAmB,aAAa,cAAc,mBAAmB,UAAU,CAAC,MAAM;AACxF,UAAM,iBAAiB,WAAW,YAAY,mBAAmB,QAAQ,CAAC,MAAM;AAChF,WAAO,KAAK,QAAQ,kBAAkB,gBAAgB,YAAY,gBAAgB,GAAG,cAAc,IAAI;AAAA,MACnG,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,mBAAmB,kBAA0B,YAAoB,UAAwC;AAC3G,WAAO,KAAK,QAAQ,kBAAkB,gBAAgB,UAAU,mBAAmB,UAAU,CAAC,QAAQ,WAAW,mBAAmB,QAAQ,IAAI,EAAE,IAAI;AAAA,MAClJ,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,sBAAsB,kBAA0B,YAAoB,UAAuC;AAC7G,WAAO,KAAK,QAAQ,kBAAkB,gBAAgB,UAAU,mBAAmB,UAAU,CAAC,QAAQ,mBAAmB,QAAQ,CAAC,IAAI;AAAA,MAClI,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,0BAA0B,kBAA0D;AACtF,WAAO,KAAK,QAAQ,kBAAkB,gBAAgB,gBAAgB;AAAA,MAClE,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,wBAAwB,kBAA0B,QAA8C;AAClG,WAAO,KAAK,QAAQ,kBAAkB,gBAAgB,gBAAgB,MAAM,IAAI;AAAA,MAC5E,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,0BAA0B,kBAA0B,kBAAiE;AACvH,WAAO,KAAK,QAAQ,kBAAkB,gBAAgB,gBAAgB;AAAA,MAClE,QAAQ;AAAA,MACR,MAAM,KAAK,UAAU,gBAAgB;AAAA,MACrC,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,eAAe,SAA+C;AAChE,UAAM,SAAS,IAAI,gBAAgB;AACnC,YAAQ,QAAQ,WAAS;AACrB,aAAO,OAAO,SAAS,KAAK;AAAA,IAChC,CAAC;AACD,WAAO,KAAK,QAAQ,oBAAoB,OAAO,SAAS,CAAC,IAAI;AAAA,MACzD,QAAQ;AAAA,IACZ,CAAC;AAAA,EACL;AACJ;;;AC9hCO,IAAM,aAAN,cAAyB,WAAW;AAAA,EAEvC,YAAY,WAAmB,YAA0C,QAAoB,eAAuB;AAChH,UAAM,YAAY,QAAQ,WAAW,oBAAoB,OAAO,aAAa;AAC7E,SAAK,UAAU;AAAA,EACnB;AAAA,EACA,MAAsB,QAAuB;AACzC,UAAM,SAAS,KAAK;AACpB,SAAK,UAAU;AACf,QAAI,QAAQ;AACR,YAAM,SAAS,OAAO,UAAU;AAChC,aAAO,QAAQ,WAAS;AACpB,cAAM,KAAK;AAAA,MACf,CAAC;AAAA,IACL;AACA,WAAO,MAAM,MAAM;AAAA,EACvB;AAAA,EAEA,MAAa,SAA+B;AACxC,QAAI,KAAK,SAAS;AACd,aAAO,QAAQ,QAAQ,KAAK,OAAO;AAAA,IACvC,OAAO;AACH,aAAO,QAAQ,OAAO,wBAAwB;AAAA,IAClD;AAAA,EACJ;AAAA,EAEA,MAAa,QAA6B;AACtC,UAAM,UAAU,MAAM,KAAK,YAAY;AACvC,UAAM,YAAY,KAAK,QAAQ,OAAO;AAQtC,UAAM,WAAW,MAAM,KAAK,QAAQ,MAAM,WAAW;AAAA,MACjD,SAAS,QAAQ,sBAAsB;AAAA,MACvC,QAAQ;AAAA,IACZ,CAAC;AACD,QAAI,SAAS,UAAU,KAAK;AACxB,aAAO,QAAQ,OAAO,gCAAgC,SAAS,MAAM,SAAS,MAAM,KAAK,SAAS,UAAU,GAAG;AAAA,IACnH;AACA,WAAO,KAAK,aAAa,QAAQ;AAAA,EACrC;AAAA,EAEA,MAAgB,eAAe,QAAoD;AAC/E,QAAI,CAAC,KAAK,KAAK;AACX,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACrD;AAEA,UAAM,KAAK,IAAI,qBAAqB,IAAI,sBAAsB,MAAM,CAAC;AAErE,QAAI,KAAK,kBAAkB,WAAW,GAAG;AACrC,YAAM,KAAK,oBAAoB,KAAK,iBAAiB;AACrD,WAAK,oBAAoB,CAAC;AAAA,IAC9B;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAc,aAAa,UAAyC;AAChE,QAAI,KAAK,SAAS;AACd,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC7C;AACA,UAAM,KAAK,IAAI,kBAAkB;AAAA,MAC7B,YAAY,WAAW,iBAAiB,SAAS,QAAQ,IAAI,MAAM,CAAC;AAAA,IACxE,CAAC;AAED,UAAM,YAAY;AAClB,OAAG,eAAe,SAAS,EAAE,UAAU,CAAC;AACxC,OAAG,iBAAiB,SAAO,KAAK,iBAAiB,GAAG;AAEpD,SAAK,MAAM;AAEX,SAAK,eAAe,KAAK,gBAAgB,GAAG,kBAAkB,EAAE;AAEhE,WAAO,IAAI,QAAQ,OAAO,SAAS,WAAW;AAC1C,SAAG,UAAU,SAAO;AAChB,aAAK,eAAe,MAAM,cAAc,IAAI,MAAM,IAAI,EAAE;AACxD,aAAK,UAAU,IAAI,QAAQ,CAAC,KAAK;AACjC,gBAAQ,IAAI;AAAA,MAChB;AACA,SAAG,6BAA6B,MAAM;AAClC,gBAAQ,GAAG,oBAAoB;AAAA,UAC3B,KAAK;AAAA,UACL,KAAK;AACD,iBAAK,eAAe,MAAM,yCAAyC;AACnE,mBAAO,oBAAoB,GAAG,kBAAkB,EAAE;AAClD;AAAA,UACJ,KAAK;AACD,iBAAK,eAAe,MAAM,sCAAsC;AAChE;AAAA,QACR;AAAA,MACJ;AACA,YAAM,KAAK,aAAa,MAAM,GAAG,YAAY,CAAC;AAAA,IAClD,CAAC;AAAA,EACL;AACJ;;;AC8BA,IAAM,UAAU,CAAC,QAAoC;AACjD,MAAI,OAAO,YAAY,aAAa;AAChC,WAAO,QAAQ,MAAM,GAAG,KAAK;AAAA,EACjC;AACA,SAAO;AACX;AAEA,IAAM,sBAAsB,CAAC,QAA0B;AACnD,MAAI,OAAO,OAAO,aAAa;AAC3B,WAAO;AAAA,EACX;AACA,QAAM,cAAc,IAAI,YAAY;AACpC,SAAO,eAAe,UAAU,eAAe;AACnD;AAEO,IAAU;AAAA,CAAV,CAAUC,YAAV;AACH,QAAM,YAAY,QAAQ,gBAAgB;AAE1C,QAAM,cACF,YAAY;AAAA,IACR,QAAQ;AAAA,EACZ,IAAI;AAKD,EAAMA,QAAA,WAAW;AAEjB,WAAS,eAAe,OAAsB,CAAC,GAAmB;AACrE,QAAI,KAAK,gBAAgB,QAAW;AAChC,WAAK,cAAc,oBAAoB,QAAQ,mBAAmB,CAAC;AAAA,IACvE;AACA,QAAI,KAAK,aAAa;AAClB,WAAK,YAAY;AAAA,IACrB;AACA,0BAAsB,IAAI;AAC1B,QAAI,KAAK,SAAS,QAAW;AACzB,UAAI,KAAK,aAAa;AAClB,aAAK,OAAO,EAAE,SAAS,KAAK;AAAA,MAChC,OAAO;AACH,cAAM,IAAI,MAAM,gEAAgE;AAAA,MACpF;AAAA,IACJ;AACA,QAAI,KAAK,UAAU,QAAW;AAC1B,WAAK,QAAQ,QAAQ,eAAe;AAAA,IACxC;AAEA,QAAI,KAAK,cAAc,QAAW;AAC9B,WAAK,YAAY;AAAA,IACrB;AAEA,QAAI,KAAK,aAAa,QAAW;AAC7B,WAAK,WAAW;AAAA,IACpB;AAEA,QAAI,KAAK,SAAS,QAAW;AACzB,UAAK,KAAK,KAAqB,YAAY,QAAW;AAClD,YAAM,KAAK,KAAqB,YAA8B,QAAW;AACrE,cAAM,KAAK,KAAqB,QAA0B,OAAO;AAC7D,iBAAK,QAAU,KAAK,KAAqB,QAA0B;AAAA,UACvE;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AACA,WAAO,IAAI,eAAe,IAAI;AAAA,EAClC;AArCO,EAAAA,QAAS;AAuCT,WAAS,aAAa,OAAoB,CAAC,GAAiB;AAC/D,0BAAsB,IAAI;AAC1B,QAAI,KAAK,SAAS,QAAW;AACzB,YAAM,IAAI,MAAM,gEAAgE;AAAA,IACpF;AACA,QAAI,KAAK,cAAc,QAAW;AAC9B,WAAK,YAAY,QAAQ,mBAAmB;AAAA,IAChD;AACA,QAAK,KAAK,KAAqB,YAAY,QAAW;AAClD,UAAM,KAAK,KAAqB,YAA4B,QAAW;AACnE,YAAM,KAAK,KAAqB,QAAwB,WAAW;AAC/D,eAAK,YAAc,KAAK,KAAqB,QAAwB;AAAA,QACzE;AAAA,MACJ;AAAA,IACJ;AACA,WAAO,IAAI,aAAa,IAAI;AAAA,EAChC;AAhBO,EAAAA,QAAS;AAkBhB,WAAS,sBAAsB,MAAe;AAC1C,QAAI,CAAC,KAAK,MAAM;AACZ,WAAK,OAAO;AAAA,IAChB;AAEA,QAAI,CAAC,KAAK,aAAa,KAAK,QAAS,KAAK,KAAqB,WAAY,KAAK,KAAqB,QAAQ,WAAW;AAEpH,WAAK,YAAa,KAAK,KAAqB,QAAQ;AAAA,IACxD;AAEA,QAAI,CAAC,KAAK,WAAW;AACjB,WAAK,YAAY,QAAQ,YAAY;AAAA,IACzC;AAEA,QAAI,CAAC,KAAK,WAAW;AACjB,WAAK,YAAY;AAAA,IACrB;AAEA,QAAI,KAAK,MAAM;AACX,UAAK,KAAK,KAAoB,WAAW,QAAW;AAChD,YAAI,OAAQ,KAAK,KAAoB,WAAW,WAAW;AACvD,cAAI,KAAK,aAAa,KAAK,UAAU,MAAM,gCAAgC,GAAG;AAC1E,iBAAK,OAAO;AAAA,cACR,QAAQ;AAAA,gBACJ,QAAQ;AAAA,gBACR,UAAU;AAAA,gBACV,UAAU;AAAA,gBACV,OAAO;AAAA,cACX;AAAA,YACJ;AAAA,UACJ,OAAO;AACH,iBAAK,OAAO;AAAA,cACR,QAAQ;AAAA,gBACJ,QAAQ;AAAA,gBACR,UAAU;AAAA,gBACV,UAAU;AAAA,gBACV,OAAO;AAAA,cACX;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,CAAC,KAAK,gBAAgB;AACtB,WAAK,iBAAiB;AAAA,IAC1B;AAAA,EACJ;AAAA,GApHa;AAsIjB,IAAO,gBAAQ;","names":["charset","path","extension","EndpointState","PredictionVersion","VideoMode","PopComponentType","ForwardOperatorType","InferenceType","MotionModel","ContourType","mid","iteratorToStream","TransientPopId","SessionStatus","headers","response","DataApiType","AutoAnnotateStatus","AssetStatus","AnnotationType","UserReview","AssetInclusionMode","AnnotationInclusionMode","AutoAnnotateTask","TranscodeMode","AreaType","ModelType","ModelTask","ModelStatus","ModelExportStatus","ExportedBy","ArtifactType","ModelTrainingStage","ChangeType","WorkflowPhase","ModelFormat","ModelPrecisionType","AssetUrlType","EvaluationStatus","TaskType","VlmAbilityStatus","headers","msg","path","EyePop"]}