/*! For license information please see main.832012d1.js.LICENSE.txt */
(self.webpackChunk=self.webpackChunk||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(67294),o=n(87462),a=n(68356),i=n.n(a),s=n(16887);const c={"03595d9f":[function(){return n.e(4098).then(n.bind(n,54320))},"@site/docs/27.0.0/development/extensions-core/kafka-ingestion.md",54320],"03faf09e":[function(){return n.e(6638).then(n.bind(n,16799))},"@site/docs/27.0.0/ingestion/native-batch-simple-task.md",16799],"04cbeb7c":[function(){return n.e(1558).then(n.bind(n,97849))},"@site/docs/27.0.0/tutorials/tutorial-query.md",97849],"053e65a4":[function(){return Promise.all([n.e(532),n.e(1078)]).then(n.bind(n,5236))},"@site/docs/27.0.0/api-reference/sql-ingestion-api.md",5236],"0570bc82":[function(){return n.e(1788).then(n.bind(n,71338))},"@site/docs/27.0.0/operations/kubernetes.md",71338],"05a1cae0":[function(){return Promise.all([n.e(532),n.e(1975)]).then(n.bind(n,84580))},"@site/docs/27.0.0/api-reference/service-status-api.md",84580],"0705ae7b":[function(){return n.e(8931).then(n.bind(n,24479))},"@site/docs/27.0.0/data-management/schema-changes.md",24479],"07bff3a3":[function(){return n.e(7121).then(n.bind(n,26573))},"@site/docs/27.0.0/tutorials/cluster.md",26573],"0847a663":[function(){return n.e(8302).then(n.bind(n,29034))},"@site/docs/27.0.0/querying/dimensionspecs.md",29034],"08b7c20d":[function(){return n.e(4810).then(n.bind(n,62068))},"@site/docs/27.0.0/development/extensions-contrib/tdigestsketch-quantiles.md",62068],"092ec00f":[function(){return n.e(5228).then(n.bind(n,10944))},"@site/docs/27.0.0/tutorials/tutorial-batch.md",10944],"0adcb010":[function(){return n.e(4814).then(n.bind(n,54711))},"@site/docs/27.0.0/tutorials/tutorial-query-deep-storage.md",54711],"0c1747fc":[function(){return n.e(9763).then(n.bind(n,81477))},"@site/docs/27.0.0/ingestion/ingestion-spec.md",81477],"0c38b730":[function(){return n.e(6748).then(n.bind(n,55289))},"@site/docs/27.0.0/operations/single-server.md",55289],"0c888c8d":[function(){return n.e(9182).then(n.bind(n,73160))},"@site/docs/27.0.0/development/versioning.md",73160],"0dd147f5":[function(){return n.e(6279).then(n.bind(n,43404))},"@site/docs/27.0.0/tutorials/index.md",43404],"0e7953eb":[function(){return n.e(2116).then(n.bind(n,22958))},"@site/docs/27.0.0/ingestion/data-formats.md",22958],10676374:[function(){return n.e(9590).then(n.bind(n,73526))},"@site/docs/27.0.0/operations/dynamic-config-provider.md",73526],"118cf993":[function(){return n.e(2861).then(n.bind(n,2095))},"@site/docs/27.0.0/development/extensions-contrib/aliyun-oss-extensions.md",2095],"12a22656":[function(){return n.e(3521).then(n.bind(n,70917))},"@site/docs/27.0.0/design/zookeeper.md",70917],"135fee27":[function(){return n.e(181).then(n.bind(n,55679))},"@site/docs/27.0.0/design/broker.md",55679],"13cb0fed":[function(){return n.e(9009).then(n.bind(n,66442))},"@site/docs/27.0.0/querying/select-query.md",66442],"167b89c9":[function(){return n.e(2908).then(n.bind(n,2748))},"@site/docs/27.0.0/api-reference/dynamic-configuration-api.md",2748],"16db542a":[function(){return n.e(3074).then(n.bind(n,69357))},"@site/docs/27.0.0/development/extensions-contrib/sqlserver.md",69357],"16e139eb":[function(){return n.e(5936).then(n.t.bind(n,15745,19))},"/Users/brian/druid-website-src-fork/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],17896441:[function(){return Promise.all([n.e(532),n.e(771),n.e(7918)]).then(n.bind(n,10903))},"@theme/DocItem",10903],"17a1323b":[function(){return n.e(5752).then(n.bind(n,19649))},"@site/docs/27.0.0/operations/export-metadata.md",19649],"17b23858":[function(){return n.e(8414).then(n.bind(n,15984))},"@site/docs/27.0.0/comparisons/druid-vs-key-value.md",15984],"1876c3c0":[function(){return n.e(7957).then(n.bind(n,57934))},"@site/docs/27.0.0/development/extensions-contrib/cassandra.md",57934],"190a9d21":[function(){return n.e(9324).then(n.bind(n,74089))},"@site/docs/27.0.0/querying/multitenancy.md",74089],"1964867a":[function(){return n.e(7670).then(n.bind(n,3562))},"@site/docs/27.0.0/development/extensions-core/examples.md",3562],"1b0c45b9":[function(){return n.e(9628).then(n.bind(n,96714))},"@site/docs/27.0.0/tutorials/tutorial-sketches-theta.md",96714],"1be78505":[function(){return Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,19963))},"@theme/DocPage",19963],"1c5a4341":[function(){return n.e(7842).then(n.bind(n,15901))},"@site/docs/27.0.0/querying/math-expr.md",15901],"1d219618":[function(){return n.e(6226).then(n.bind(n,79393))},"@site/docs/27.0.0/development/extensions-core/simple-client-sslcontext.md",79393],"1d271fa1":[function(){return n.e(9570).then(n.bind(n,82175))},"@site/docs/27.0.0/configuration/human-readable-byte.md",82175],"1d49538c":[function(){return n.e(2231).then(n.bind(n,75967))},"@site/docs/27.0.0/querying/sql-data-types.md",75967],"1d52e3ab":[function(){return n.e(7113).then(n.bind(n,53553))},"@site/docs/27.0.0/development/extensions-contrib/gce-extensions.md",53553],"1f391b9e":[function(){return Promise.all([n.e(532),n.e(771),n.e(3085)]).then(n.bind(n,14247))},"@theme/MDXPage",14247],"1fd605f7":[function(){return n.e(5803).then(n.bind(n,57033))},"@site/src/pages/faq.md",57033],"2078bf5c":[function(){return n.e(4598).then(n.bind(n,11492))},"@site/src/pages/community/index.mdx",11492],"21e52b62":[function(){return n.e(7928).then(n.bind(n,81146))},"@site/docs/27.0.0/design/peons.md",81146],"22813ddf":[function(){return n.e(7287).then(n.bind(n,64111))},"@site/docs/27.0.0/development/extensions-core/kinesis-ingestion.md",64111],"25f29507":[function(){return n.e(7291).then(n.bind(n,36949))},"@site/docs/27.0.0/development/extensions-core/datasketches-extension.md",36949],"26a15966":[function(){return n.e(2993).then(n.bind(n,60547))},"@site/docs/27.0.0/querying/having.md",60547],"27e4f3a1":[function(){return n.e(9828).then(n.bind(n,46129))},"@site/docs/27.0.0/design/extensions-contrib/dropwizard.md",46129],"28a7e860":[function(){return n.e(8969).then(n.bind(n,47839))},"@site/docs/27.0.0/development/extensions-core/druid-basic-security.md",47839],"28c15c51":[function(){return n.e(9798).then(n.bind(n,41365))},"@site/docs/27.0.0/data-management/compaction.md",41365],"2a457972":[function(){return n.e(5174).then(n.bind(n,28131))},"@site/docs/27.0.0/multi-stage-query/security.md",28131],"2cb0c30e":[function(){return n.e(5197).then(n.bind(n,97945))},"@site/docs/27.0.0/development/extensions-contrib/moving-average-query.md",97945],"2f862863":[function(){return n.e(2086).then(n.bind(n,72396))},"@site/docs/27.0.0/multi-stage-query/known-issues.md",72396],"310cfe59":[function(){return n.e(1550).then(n.bind(n,26998))},"@site/docs/27.0.0/ingestion/native-batch-firehose.md",26998],"3232d90c":[function(){return n.e(3090).then(n.bind(n,57875))},"@site/docs/27.0.0/development/extensions-core/stats.md",57875],"32ba958f":[function(){return n.e(1763).then(n.bind(n,25366))},"@site/docs/27.0.0/design/metadata-storage.md",25366],"33cbc830":[function(){return n.e(2616).then(n.bind(n,83269))},"@site/docs/27.0.0/comparisons/druid-vs-kudu.md",83269],"35b7da69":[function(){return n.e(1824).then(n.bind(n,6416))},"@site/docs/27.0.0/tutorials/tutorial-rollup.md",6416],"36074cc5":[function(){return n.e(8695).then(n.bind(n,33432))},"@site/docs/27.0.0/querying/sorting-orders.md",33432],"378099e0":[function(){return n.e(5172).then(n.bind(n,62118))},"@site/docs/27.0.0/querying/sql-json-functions.md",62118],"37db48ba":[function(){return n.e(7645).then(n.bind(n,6909))},"@site/docs/27.0.0/querying/sql.md",6909],"3c16ffca":[function(){return n.e(9614).then(n.bind(n,60563))},"@site/docs/27.0.0/comparisons/druid-vs-elasticsearch.md",60563],"3c5ca8ae":[function(){return n.e(7246).then(n.bind(n,994))},"@site/docs/27.0.0/querying/sql-operators.md",994],"3e65cc37":[function(){return n.e(1616).then(n.bind(n,26522))},"@site/docs/27.0.0/querying/topnmetricspec.md",26522],"3f071b3a":[function(){return n.e(4974).then(n.bind(n,51567))},"@site/docs/27.0.0/development/extensions-core/avro.md",51567],"3fd82268":[function(){return n.e(8770).then(n.bind(n,90795))},"@site/docs/27.0.0/api-reference/automatic-compaction-api.md",90795],"40772b33":[function(){return n.e(9972).then(n.bind(n,20956))},"@site/docs/27.0.0/tutorials/tutorial-kafka.md",20956],"40808cf6":[function(){return n.e(152).then(n.bind(n,96687))},"@site/docs/27.0.0/querying/segmentmetadataquery.md",96687],"40b8f084":[function(){return n.e(1387).then(n.bind(n,92984))},"@site/docs/27.0.0/configuration/logging.md",92984],"43262ae5":[function(){return n.e(3493).then(n.bind(n,32421))},"@site/docs/27.0.0/operations/alerts.md",32421],"434862d7":[function(){return n.e(5749).then(n.bind(n,79749))},"@site/docs/27.0.0/development/modules.md",79749],"460a4497":[function(){return n.e(8725).then(n.bind(n,57599))},"@site/docs/27.0.0/tutorials/tutorial-update-data.md",57599],"4641b34e":[function(){return n.e(8856).then(n.bind(n,35668))},"@site/docs/27.0.0/development/extensions-core/datasketches-kll.md",35668],"467eff0f":[function(){return n.e(7669).then(n.bind(n,43630))},"@site/docs/27.0.0/operations/http-compression.md",43630],"47d0f2d6":[function(){return n.e(2371).then(n.bind(n,55601))},"@site/docs/27.0.0/operations/deep-storage-migration.md",55601],"489c271a":[function(){return n.e(8786).then(n.bind(n,89986))},"@site/docs/27.0.0/operations/migrate-from-firehose-ingestion.md",89986],"4903ab44":[function(){return n.e(633).then(n.bind(n,55910))},"@site/docs/27.0.0/design/middlemanager.md",55910],49613703:[function(){return n.e(8487).then(n.bind(n,87395))},"@site/docs/27.0.0/ingestion/tranquility.md",87395],"4aecde3a":[function(){return n.e(2981).then(n.bind(n,72879))},"@site/docs/27.0.0/querying/lookups.md",72879],"4af57a18":[function(){return n.e(3758).then(n.bind(n,9089))},"@site/docs/27.0.0/development/extensions-contrib/momentsketch-quantiles.md",9089],"4bdd984a":[function(){return n.e(5037).then(n.bind(n,45518))},"@site/docs/27.0.0/design/indexer.md",45518],"4ce36435":[function(){return n.e(8339).then(n.bind(n,29960))},"@site/docs/27.0.0/operations/password-provider.md",29960],"4d1a0fb5":[function(){return n.e(4176).then(n.bind(n,99668))},"@site/docs/27.0.0/ingestion/input-sources.md",99668],"4d38731e":[function(){return n.e(1629).then(n.bind(n,850))},"@site/docs/27.0.0/querying/timeseriesquery.md",850],"4d9215db":[function(){return n.e(7492).then(n.bind(n,88604))},"@site/docs/27.0.0/development/extensions-core/lookups-cached-global.md",88604],"4ec33175":[function(){return n.e(6070).then(n.bind(n,39926))},"@site/docs/27.0.0/development/extensions-contrib/redis-cache.md",39926],"4fbec8af":[function(){return n.e(2585).then(n.bind(n,107))},"@site/docs/27.0.0/querying/virtual-columns.md",107],"5112bec6":[function(){return n.e(3866).then(n.bind(n,597))},"@site/docs/27.0.0/tutorials/tutorial-retention.md",597],"51e89d7b":[function(){return n.e(8805).then(n.bind(n,50096))},"@site/docs/27.0.0/querying/datasourcemetadataquery.md",50096],"53d1d754":[function(){return n.e(193).then(n.bind(n,20267))},"@site/docs/27.0.0/development/extensions-core/orc.md",20267],"557865c9":[function(){return n.e(9644).then(n.bind(n,9819))},"@site/docs/27.0.0/tutorials/tutorial-jdbc.md",9819],"564e5ede":[function(){return n.e(1288).then(n.bind(n,63574))},"@site/docs/27.0.0/operations/request-logging.md",63574],"57a5c08c":[function(){return n.e(855).then(n.bind(n,49681))},"@site/docs/27.0.0/operations/auth-ldap.md",49681],"5a5f0911":[function(){return n.e(7271).then(n.bind(n,25664))},"@site/docs/27.0.0/development/extensions-contrib/prometheus.md",25664],"5b0760f4":[function(){return n.e(996).then(n.bind(n,45475))},"@site/docs/27.0.0/operations/high-availability.md",45475],"5b1fe896":[function(){return n.e(220).then(n.bind(n,21705))},"@site/docs/27.0.0/querying/sql-query-context.md",21705],"5b55a31e":[function(){return n.e(2323).then(n.bind(n,41784))},"@site/src/pages/licensing.md",41784],"5bcd0a3f":[function(){return n.e(1431).then(n.bind(n,33725))},"@site/src/pages/technology.md",33725],"5e828b77":[function(){return n.e(2634).then(n.bind(n,53274))},"@site/docs/27.0.0/querying/sql-functions.md",53274],"5e9f5e1a":[function(){return Promise.resolve().then(n.bind(n,36809))},"@generated/docusaurus.config",36809],"5ec2fb9a":[function(){return n.e(336).then(n.bind(n,8861))},"@site/docs/27.0.0/tutorials/tutorial-batch-hadoop.md",8861],"60c3de4b":[function(){return n.e(7232).then(n.bind(n,11873))},"@site/docs/27.0.0/operations/dump-segment.md",11873],"60dc7552":[function(){return n.e(8055).then(n.bind(n,95116))},"@site/docs/27.0.0/operations/auth.md",95116],"6248961d":[function(){return n.e(5744).then(n.bind(n,2890))},"@site/docs/27.0.0/api-reference/legacy-metadata-api.md",2890],"6266df16":[function(){return n.e(8335).then(n.bind(n,72505))},"@site/docs/27.0.0/querying/querying.md",72505],"631bd5d2":[function(){return n.e(401).then(n.bind(n,78332))},"@site/docs/27.0.0/multi-stage-query/index.md",78332],"63fdd6a3":[function(){return n.e(6151).then(n.bind(n,93032))},"@site/docs/27.0.0/development/extensions-core/kafka-supervisor-reference.md",93032],"649f7ae6":[function(){return n.e(2446).then(n.bind(n,46091))},"@site/docs/27.0.0/ingestion/standalone-realtime.md",46091],"65f10db4":[function(){return n.e(1828).then(n.bind(n,6192))},"@site/docs/27.0.0/development/extensions-core/druid-kerberos.md",6192],"660420eb":[function(){return n.e(6337).then(n.bind(n,78682))},"@site/docs/27.0.0/querying/groupbyquery.md",78682],"694997e6":[function(){return n.e(4118).then(n.bind(n,41937))},"@site/docs/27.0.0/ingestion/index.md",41937],"6e39cc41":[function(){return n.e(7825).then(n.bind(n,34456))},"@site/docs/27.0.0/querying/sql-metadata-tables.md",34456],"6e9f9782":[function(){return n.e(7323).then(n.bind(n,8196))},"@site/docs/27.0.0/operations/tls-support.md",8196],"6f828b9d":[function(){return n.e(9079).then(n.bind(n,50507))},"@site/docs/27.0.0/operations/insert-segment-to-db.md",50507],"710d5c55":[function(){return n.e(7707).then(n.bind(n,37471))},"@site/docs/27.0.0/development/extensions-core/test-stats.md",37471],"71ac8e94":[function(){return n.e(8319).then(n.bind(n,89417))},"@site/docs/27.0.0/ingestion/faq.md",89417],"71cf9a30":[function(){return n.e(6034).then(n.bind(n,49789))},"@site/docs/27.0.0/development/extensions-core/s3.md",49789],"728f141b":[function(){return n.e(3918).then(n.bind(n,73681))},"@site/docs/27.0.0/development/extensions-core/approximate-histograms.md",73681],"7704dc77":[function(){return n.e(6167).then(n.bind(n,62001))},"@site/docs/27.0.0/design/deep-storage.md",62001],"786df1e9":[function(){return n.e(2885).then(n.bind(n,5822))},"@site/docs/27.0.0/ingestion/tasks.md",5822],"78e01881":[function(){return n.e(1530).then(n.bind(n,52787))},"@site/docs/27.0.0/design/segments.md",52787],"79f8b228":[function(){return n.e(3831).then(n.bind(n,31560))},"@site/docs/27.0.0/api-reference/sql-jdbc.md",31560],"7b6e729c":[function(){return n.e(1513).then(n.bind(n,4515))},"@site/docs/27.0.0/ingestion/schema-design.md",4515],"7bc4af75":[function(){return n.e(712).then(n.bind(n,83448))},"@site/docs/27.0.0/development/extensions-contrib/influxdb-emitter.md",83448],"7c956698":[function(){return n.e(1500).then(n.bind(n,17800))},"@site/docs/27.0.0/development/extensions-contrib/opentsdb-emitter.md",17800],"7cf82ef4":[function(){return Promise.all([n.e(532),n.e(2722)]).then(n.bind(n,95534))},"@site/docs/27.0.0/querying/datasource.md",95534],"7d9e55c0":[function(){return n.e(5647).then(n.bind(n,83169))},"@site/docs/27.0.0/data-management/update.md",83169],"7e121349":[function(){return n.e(6370).then(n.bind(n,7061))},"@site/docs/27.0.0/development/extensions-contrib/influx.md",7061],"7e81fd78":[function(){return n.e(2010).then(n.bind(n,15716))},"@site/docs/27.0.0/operations/durable-storage.md",15716],"8006bc3e":[function(){return n.e(2701).then(n.bind(n,92259))},"@site/docs/27.0.0/development/javascript.md",92259],"80fcc103":[function(){return Promise.all([n.e(532),n.e(2458)]).then(n.bind(n,40290))},"@site/docs/27.0.0/api-reference/sql-api.md",40290],"8207049c":[function(){return n.e(4822).then(n.bind(n,25830))},"@site/docs/27.0.0/development/extensions-contrib/kafka-emitter.md",25830],"8268280f":[function(){return n.e(1548).then(n.bind(n,87616))},"@site/docs/27.0.0/querying/searchquery.md",87616],"82b4d046":[function(){return n.e(6451).then(n.bind(n,54017))},"@site/docs/27.0.0/querying/troubleshooting.md",54017],"840aec46":[function(){return n.e(1486).then(n.bind(n,72266))},"@site/docs/27.0.0/development/extensions-core/druid-lookups.md",72266],"862dc44c":[function(){return n.e(6934).then(n.bind(n,30163))},"@site/docs/27.0.0/querying/query-from-deep-storage.md",30163],"86955b42":[function(){return n.e(4956).then(n.bind(n,84404))},"@site/docs/27.0.0/querying/post-aggregations.md",84404],"870bff02":[function(){return n.e(4752).then(n.bind(n,35110))},"@site/docs/27.0.0/comparisons/druid-vs-redshift.md",35110],"875b5235":[function(){return Promise.all([n.e(532),n.e(8914)]).then(n.bind(n,11661))},"@site/docs/27.0.0/api-reference/json-querying-api.md",11661],"8ad3e271":[function(){return n.e(6792).then(n.bind(n,34115))},"@site/docs/27.0.0/tutorials/tutorial-msq-convert-spec.md",34115],"8bc7f250":[function(){return n.e(557).then(n.bind(n,7441))},"@site/docs/27.0.0/api-reference/api-reference.md",7441],"8be678b6":[function(){return n.e(6294).then(n.bind(n,56108))},"@site/docs/27.0.0/design/overlord.md",56108],"8de4c9c5":[function(){return n.e(7573).then(n.bind(n,17334))},"@site/docs/27.0.0/development/extensions-core/druid-ranger-security.md",17334],"8e5ec21a":[function(){return n.e(8088).then(n.bind(n,91220))},"@site/docs/27.0.0/development/extensions-core/hdfs.md",91220],"8f9bbce7":[function(){return n.e(8685).then(n.bind(n,43092))},"@site/docs/27.0.0/querying/caching.md",43092],"90a6f4f3":[function(){return n.e(9103).then(n.bind(n,28954))},"@site/docs/27.0.0/tutorials/tutorial-compaction.md",28954],"92fda066":[function(){return n.e(2614).then(n.bind(n,209))},"@site/docs/27.0.0/development/extensions-core/datasketches-theta.md",209],"935f2afb":[function(){return n.e(53).then(n.t.bind(n,1109,19))},"~docs/default/version-current-metadata-prop-751.json",1109],"98a7954d":[function(){return Promise.all([n.e(532),n.e(7902)]).then(n.bind(n,67577))},"@site/docs/27.0.0/querying/nested-columns.md",67577],"9925e683":[function(){return n.e(492).then(n.bind(n,45740))},"@site/docs/27.0.0/design/coordinator.md",45740],"999b34ff":[function(){return n.e(313).then(n.bind(n,16969))},"@site/docs/27.0.0/ingestion/hadoop.md",16969],"9c4f8cf3":[function(){return n.e(5542).then(n.bind(n,73162))},"@site/docs/27.0.0/querying/sql-multivalue-string-functions.md",73162],"9d31bb79":[function(){return n.e(9697).then(n.bind(n,74890))},"@site/docs/27.0.0/design/architecture.md",74890],"9d9a7dd5":[function(){return n.e(1229).then(n.bind(n,92850))},"@site/docs/27.0.0/development/extensions-core/druid-pac4j.md",92850],"9e19da31":[function(){return n.e(2276).then(n.bind(n,29700))},"@site/docs/27.0.0/development/extensions-contrib/ambari-metrics-emitter.md",29700],a0331c4c:[function(){return n.e(5129).then(n.bind(n,72126))},"@site/docs/27.0.0/operations/basic-cluster-tuning.md",72126],a0a8ea7c:[function(){return n.e(259).then(n.bind(n,47305))},"@site/docs/27.0.0/multi-stage-query/reference.md",47305],a1b01d26:[function(){return n.e(8442).then(n.bind(n,89654))},"@site/docs/27.0.0/design/router.md",89654],a230a94b:[function(){return n.e(8433).then(n.bind(n,51855))},"@site/docs/27.0.0/configuration/extensions.md",51855],a61d2f3a:[function(){return n.e(6662).then(n.bind(n,89426))},"@site/docs/27.0.0/tutorials/tutorial-transform-spec.md",89426],a6403e8b:[function(){return n.e(2129).then(n.bind(n,29651))},"@site/docs/27.0.0/development/extensions-contrib/time-min-max.md",29651],a6fa4117:[function(){return n.e(2172).then(n.bind(n,87988))},"@site/docs/27.0.0/operations/metadata-migration.md",87988],a7bacc1c:[function(){return n.e(3813).then(n.bind(n,23138))},"@site/docs/27.0.0/querying/geo.md",23138],aab582e3:[function(){return n.e(9599).then(n.bind(n,71605))},"@site/docs/27.0.0/querying/sql-array-functions.md",71605],ab12b060:[function(){return n.e(9571).then(n.bind(n,4895))},"@site/docs/27.0.0/operations/rule-configuration.md",4895],ab4e9ff2:[function(){return n.e(9272).then(n.bind(n,80197))},"@site/docs/27.0.0/querying/query-execution.md",80197],aec9b2c5:[function(){return n.e(5503).then(n.bind(n,42942))},"@site/docs/27.0.0/development/extensions-contrib/distinctcount.md",42942],afab5838:[function(){return n.e(9966).then(n.bind(n,10737))},"@site/docs/27.0.0/design/index.md",10737],afdf8430:[function(){return n.e(5916).then(n.bind(n,37984))},"@site/docs/27.0.0/development/extensions-core/protobuf.md",37984],b0c8c94d:[function(){return n.e(1983).then(n.bind(n,48767))},"@site/docs/27.0.0/operations/reset-cluster.md",48767],b14ae68a:[function(){return Promise.all([n.e(532),n.e(6800)]).then(n.bind(n,94322))},"@site/docs/27.0.0/api-reference/supervisor-api.md",94322],b3586cc5:[function(){return n.e(9160).then(n.bind(n,56207))},"@site/docs/27.0.0/development/extensions-core/google.md",56207],b44d71da:[function(){return n.e(2422).then(n.bind(n,96386))},"@site/docs/27.0.0/querying/hll-old.md",96386],b6d922f1:[function(){return n.e(9076).then(n.bind(n,95383))},"@site/src/pages/downloads.mdx",95383],b71c51e3:[function(){return n.e(8285).then(n.bind(n,97400))},"@site/docs/27.0.0/querying/timeboundaryquery.md",97400],b7f9a5d0:[function(){return n.e(404).then(n.bind(n,22139))},"@site/docs/27.0.0/querying/using-caching.md",22139],b80567bd:[function(){return n.e(9636).then(n.bind(n,50177))},"@site/docs/27.0.0/configuration/index.md",50177],b90edb99:[function(){return n.e(800).then(n.bind(n,17928))},"@site/docs/27.0.0/operations/rolling-updates.md",17928],ba5e9a77:[function(){return n.e(5133).then(n.bind(n,59321))},"@site/docs/27.0.0/operations/metrics.md",59321],bbae45ca:[function(){return n.e(9271).then(n.bind(n,45971))},"@site/docs/27.0.0/querying/sql-aggregations.md",45971],bbcce871:[function(){return n.e(500).then(n.bind(n,31918))},"@site/docs/27.0.0/design/processes.md",31918],bc093f15:[function(){return n.e(482).then(n.bind(n,31517))},"@site/docs/27.0.0/querying/sql-scalar.md",31517],bc6f0aec:[function(){return n.e(4510).then(n.bind(n,86750))},"@site/docs/27.0.0/data-management/automatic-compaction.md",86750],bd16b709:[function(){return n.e(5245).then(n.bind(n,70651))},"@site/docs/27.0.0/development/docs-contribute.md",70651],bd93f503:[function(){return Promise.all([n.e(532),n.e(6495)]).then(n.bind(n,20553))},"@site/docs/27.0.0/tutorials/tutorial-unnest-arrays.md",20553],bdae821f:[function(){return n.e(9348).then(n.bind(n,59622))},"@site/docs/27.0.0/development/extensions-core/druid-aws-rds.md",59622],be6438a3:[function(){return n.e(4102).then(n.bind(n,60199))},"@site/docs/27.0.0/operations/other-hadoop.md",60199],bec6ab17:[function(){return n.e(4495).then(n.bind(n,3144))},"@site/docs/27.0.0/development/overview.md",3144],c0851e88:[function(){return n.e(2897).then(n.bind(n,91768))},"@site/docs/27.0.0/ingestion/native-batch.md",91768],c3a0d3bf:[function(){return n.e(3305).then(n.bind(n,84037))},"@site/docs/27.0.0/development/experimental.md",84037],c3fe9e45:[function(){return n.e(2347).then(n.bind(n,58281))},"@site/docs/27.0.0/operations/security-user-auth.md",58281],c4008ea5:[function(){return n.e(2896).then(n.bind(n,93006))},"@site/docs/27.0.0/development/extensions-core/mysql.md",93006],c437026d:[function(){return n.e(6229).then(n.bind(n,81489))},"@site/docs/27.0.0/development/extensions-core/bloom-filter.md",81489],c4c7224c:[function(){return n.e(1893).then(n.bind(n,38899))},"@site/docs/27.0.0/misc/papers-and-talks.md",38899],c4f5d8e4:[function(){return Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,99845))},"@site/src/pages/index.js",99845],c5fa6039:[function(){return n.e(6985).then(n.bind(n,85953))},"@site/docs/27.0.0/operations/web-console.md",85953],c6e8f20b:[function(){return n.e(7006).then(n.bind(n,16187))},"@site/docs/27.0.0/development/extensions-core/datasketches-quantiles.md",16187],c76f87d3:[function(){return n.e(3812).then(n.bind(n,56628))},"@site/docs/27.0.0/data-management/index.md",56628],c8039b96:[function(){return n.e(8198).then(n.bind(n,88718))},"@site/docs/27.0.0/querying/query-context.md",88718],ca5354f2:[function(){return n.e(6776).then(n.bind(n,42077))},"@site/docs/27.0.0/querying/multi-value-dimensions.md",42077],ce54e291:[function(){return n.e(6948).then(n.bind(n,4387))},"@site/docs/27.0.0/comparisons/druid-vs-spark.md",4387],ce8176fd:[function(){return n.e(3464).then(n.bind(n,16633))},"@site/docs/27.0.0/operations/mixed-workloads.md",16633],ceacbd30:[function(){return n.e(6811).then(n.bind(n,42660))},"@site/docs/27.0.0/querying/scan-query.md",42660],ceb4e078:[function(){return n.e(8971).then(n.bind(n,65038))},"@site/docs/27.0.0/multi-stage-query/examples.md",65038],d292824a:[function(){return n.e(9334).then(n.bind(n,43752))},"@site/docs/27.0.0/tutorials/tutorial-ingestion-spec.md",43752],d40f8077:[function(){return n.e(5411).then(n.bind(n,71831))},"@site/docs/27.0.0/api-reference/data-management-api.md",71831],d48dfcbf:[function(){return n.e(9341).then(n.bind(n,16215))},"@site/docs/27.0.0/ingestion/partitioning.md",16215],d5a70ae5:[function(){return n.e(5251).then(n.bind(n,85263))},"@site/docs/27.0.0/operations/getting-started.md",85263],d6300556:[function(){return n.e(6331).then(n.bind(n,61045))},"@site/docs/27.0.0/development/build.md",61045],d6a900f0:[function(){return n.e(3276).then(n.bind(n,44591))},"@site/docs/27.0.0/multi-stage-query/concepts.md",44591],d6bc9e72:[function(){return n.e(5283).then(n.bind(n,68126))},"@site/src/pages/libraries.md",68126],d7970f66:[function(){return n.e(1940).then(n.bind(n,17681))},"@site/docs/27.0.0/querying/aggregations.md",17681],d931611c:[function(){return n.e(5853).then(n.bind(n,66404))},"@site/docs/27.0.0/tutorials/tutorial-sql-query-view.md",66404],d9418300:[function(){return n.e(8993).then(n.bind(n,5542))},"@site/docs/27.0.0/querying/sql-translation.md",5542],d9482888:[function(){return n.e(7242).then(n.bind(n,4821))},"@site/docs/27.0.0/operations/use_sbt_to_build_fat_jar.md",4821],d9e38777:[function(){return n.e(505).then(n.bind(n,63575))},"@site/docs/27.0.0/api-reference/lookups-api.md",63575],d9e813a4:[function(){return n.e(1601).then(n.bind(n,19455))},"@site/docs/27.0.0/development/extensions-contrib/k8s-jobs.md",19455],dafc885c:[function(){return n.e(8298).then(n.bind(n,35229))},"@site/docs/27.0.0/design/historical.md",35229],dc5c5eba:[function(){return n.e(2236).then(n.bind(n,86033))},"@site/docs/27.0.0/comparisons/druid-vs-sql-on-hadoop.md",86033],dc8d8ba6:[function(){return n.e(5338).then(n.bind(n,62203))},"@site/src/pages/druid-powered.md",62203],dc975aaf:[function(){return n.e(4724).then(n.bind(n,29414))},"@site/docs/27.0.0/ingestion/schema-model.md",29414],ddab73c7:[function(){return n.e(2059).then(n.bind(n,30268))},"@site/docs/27.0.0/api-reference/retention-rules-api.md",30268],ddd4fff4:[function(){return n.e(8256).then(n.bind(n,84102))},"@site/docs/27.0.0/tutorials/tutorial-msq-extern.md",84102],deabd3f1:[function(){return n.e(4209).then(n.bind(n,45666))},"@site/docs/27.0.0/development/extensions-core/parquet.md",45666],df953bbc:[function(){return n.e(7447).then(n.bind(n,90116))},"@site/docs/27.0.0/development/extensions-core/kafka-extraction-namespace.md",90116],e04eed3b:[function(){return n.e(8985).then(n.bind(n,7074))},"@site/docs/27.0.0/development/extensions-contrib/materialized-view.md",7074],e06e69d3:[function(){return n.e(8646).then(n.bind(n,89863))},"@site/docs/27.0.0/querying/granularities.md",89863],e1170488:[function(){return n.e(229).then(n.bind(n,56831))},"@site/docs/27.0.0/development/extensions-contrib/compressed-big-decimal.md",56831],e1d856c3:[function(){return n.e(4931).then(n.bind(n,8482))},"@site/docs/27.0.0/development/extensions-core/datasketches-hll.md",8482],e2d85f33:[function(){return n.e(526).then(n.bind(n,29526))},"@site/docs/27.0.0/querying/filters.md",29526],e4f108c5:[function(){return n.e(1488).then(n.bind(n,75644))},"@site/docs/27.0.0/development/extensions-contrib/statsd.md",75644],e57e5872:[function(){return n.e(7784).then(n.bind(n,95034))},"@site/docs/27.0.0/development/extensions-contrib/thrift.md",95034],e68bcb8a:[function(){return n.e(2980).then(n.bind(n,7425))},"@site/docs/27.0.0/querying/joins.md",7425],e786dd9c:[function(){return n.e(380).then(n.bind(n,8278))},"@site/docs/27.0.0/querying/limitspec.md",8278],e8888d3a:[function(){return n.e(3409).then(n.t.bind(n,83769,19))},"/Users/brian/druid-website-src-fork/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],e8b4ab12:[function(){return n.e(955).then(n.bind(n,49983))},"@site/docs/27.0.0/tutorials/tutorial-batch-native.md",49983],e9483372:[function(){return n.e(8903).then(n.bind(n,4672))},"@site/src/pages/use-cases.md",4672],eaad35b2:[function(){return n.e(9227).then(n.bind(n,48198))},"@site/docs/27.0.0/operations/clean-metadata-store.md",48198],eaffe8b7:[function(){return n.e(7146).then(n.bind(n,30655))},"@site/src/pages/community/cla.md",30655],ec038c28:[function(){return n.e(3508).then(n.bind(n,9145))},"@site/docs/27.0.0/querying/topnquery.md",9145],ed7cba17:[function(){return n.e(9376).then(n.bind(n,3066))},"@site/docs/27.0.0/development/extensions-core/kubernetes.md",3066],ee1ead5b:[function(){return n.e(8842).then(n.bind(n,87653))},"@site/docs/27.0.0/development/extensions-contrib/cloudfiles.md",87653],eea91d86:[function(){return n.e(7899).then(n.bind(n,54535))},"@site/docs/27.0.0/design/indexing-service.md",54535],eefb2929:[function(){return n.e(7604).then(n.bind(n,2502))},"@site/docs/27.0.0/development/extensions-core/kafka-supervisor-operations.md",2502],efa71475:[function(){return n.e(4700).then(n.bind(n,66223))},"@site/src/pages/community/join-slack.md",66223],f12f6c10:[function(){return n.e(8882).then(n.bind(n,7486))},"@site/docs/27.0.0/tutorials/tutorial-kerberos-hadoop.md",7486],f1539061:[function(){return n.e(5759).then(n.bind(n,22460))},"@site/docs/27.0.0/tutorials/tutorial-jupyter-docker.md",22460],f157546f:[function(){return n.e(6914).then(n.bind(n,83208))},"@site/docs/27.0.0/development/experimental-features.md",83208],f385935f:[function(){return n.e(892).then(n.bind(n,87249))},"@site/docs/27.0.0/operations/segment-optimization.md",87249],f7f6d94c:[function(){return n.e(1088).then(n.bind(n,41245))},"@site/docs/27.0.0/ingestion/rollup.md",41245],f97a079c:[function(){return n.e(4035).then(n.bind(n,32348))},"@site/docs/27.0.0/development/extensions-core/azure.md",32348],fae2428e:[function(){return n.e(9836).then(n.bind(n,59348))},"@site/docs/27.0.0/development/extensions-contrib/graphite.md",59348],fb685d2b:[function(){return n.e(1155).then(n.bind(n,44872))},"@site/docs/27.0.0/development/extensions-core/datasketches-tuple.md",44872],fb797459:[function(){return n.e(6804).then(n.bind(n,45968))},"@site/docs/27.0.0/tutorials/tutorial-jupyter-index.md",45968],fba7837c:[function(){return n.e(9126).then(n.bind(n,63020))},"@site/docs/27.0.0/operations/pull-deps.md",63020],fc53f081:[function(){return n.e(1867).then(n.bind(n,87086))},"@site/docs/27.0.0/tutorials/tutorial-delete-data.md",87086],fd693997:[function(){return n.e(3539).then(n.bind(n,8430))},"@site/docs/27.0.0/development/extensions-core/postgresql.md",8430],fe78e9bf:[function(){return n.e(3216).then(n.bind(n,65798))},"@site/docs/27.0.0/tutorials/docker.md",65798],ff461ab6:[function(){return n.e(9611).then(n.bind(n,25226))},"@site/docs/27.0.0/data-management/delete.md",25226],ff54a966:[function(){return n.e(5400).then(n.bind(n,98944))},"@site/docs/27.0.0/operations/java.md",98944],ffee4a94:[function(){return Promise.all([n.e(532),n.e(9114)]).then(n.bind(n,87204))},"@site/docs/27.0.0/api-reference/tasks-api.md",87204],fffe8fc9:[function(){return n.e(1946).then(n.bind(n,99956))},"@site/docs/27.0.0/operations/security-overview.md",99956]};function l(e){var t=e.error,n=e.retry,o=e.pastDelay;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(99670),d=n(30226);function p(e,t){if("*"===e)return i()({loading:l,loader:function(){return n.e(4972).then(n.bind(n,4972))},modules:["@theme/NotFound"],webpack:function(){return[4972]},render:function(e,t){var n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});var a=s[e+"-"+t],p={},f=[],m=[],h=(0,u.Z)(a);return Object.entries(h).forEach((function(e){var t=e[0],n=e[1],r=c[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:l,loader:p,modules:f,webpack:function(){return m},render:function(t,n){var i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((function(t){var n=t[0],r=t[1],o=r.default;if(!o)throw new Error("The page component at "+e+" doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.");"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((function(e){return"default"!==e})).forEach((function(e){o[e]=r[e]}));var a=i,s=n.split(".");s.slice(0,-1).forEach((function(e){a=a[e]})),a[s[s.length-1]]=o}));var s=i.__comp;delete i.__comp;var c=i.__context;return delete i.__context,r.createElement(d.z,{value:c},r.createElement(s,(0,o.Z)({},i,n)))}})}const f=[{path:"/community/",component:p("/community/","d82"),exact:!0},{path:"/community/cla",component:p("/community/cla","e2a"),exact:!0},{path:"/community/join-slack",component:p("/community/join-slack","7e6"),exact:!0},{path:"/downloads",component:p("/downloads","3bd"),exact:!0},{path:"/druid-powered",component:p("/druid-powered","49f"),exact:!0},{path:"/faq",component:p("/faq","519"),exact:!0},{path:"/libraries",component:p("/libraries","252"),exact:!0},{path:"/licensing",component:p("/licensing","f71"),exact:!0},{path:"/technology",component:p("/technology","167"),exact:!0},{path:"/use-cases",component:p("/use-cases","fb9"),exact:!0},{path:"/docs/27.0.0",component:p("/docs/27.0.0","e03"),routes:[{path:"/docs/27.0.0/api-reference/",component:p("/docs/27.0.0/api-reference/","ea2"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/automatic-compaction-api",component:p("/docs/27.0.0/api-reference/automatic-compaction-api","096"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/data-management-api",component:p("/docs/27.0.0/api-reference/data-management-api","54f"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/dynamic-configuration-api",component:p("/docs/27.0.0/api-reference/dynamic-configuration-api","fce"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/json-querying-api",component:p("/docs/27.0.0/api-reference/json-querying-api","58d"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/legacy-metadata-api",component:p("/docs/27.0.0/api-reference/legacy-metadata-api","616"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/lookups-api",component:p("/docs/27.0.0/api-reference/lookups-api","a78"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/retention-rules-api",component:p("/docs/27.0.0/api-reference/retention-rules-api","009"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/service-status-api",component:p("/docs/27.0.0/api-reference/service-status-api","6e7"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/sql-api",component:p("/docs/27.0.0/api-reference/sql-api","5d1"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/sql-ingestion-api",component:p("/docs/27.0.0/api-reference/sql-ingestion-api","2b4"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/sql-jdbc",component:p("/docs/27.0.0/api-reference/sql-jdbc","273"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/supervisor-api",component:p("/docs/27.0.0/api-reference/supervisor-api","98f"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/api-reference/tasks-api",component:p("/docs/27.0.0/api-reference/tasks-api","15e"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/comparisons/druid-vs-elasticsearch",component:p("/docs/27.0.0/comparisons/druid-vs-elasticsearch","8a7"),exact:!0},{path:"/docs/27.0.0/comparisons/druid-vs-key-value",component:p("/docs/27.0.0/comparisons/druid-vs-key-value","c1e"),exact:!0},{path:"/docs/27.0.0/comparisons/druid-vs-kudu",component:p("/docs/27.0.0/comparisons/druid-vs-kudu","93b"),exact:!0},{path:"/docs/27.0.0/comparisons/druid-vs-redshift",component:p("/docs/27.0.0/comparisons/druid-vs-redshift","41e"),exact:!0},{path:"/docs/27.0.0/comparisons/druid-vs-spark",component:p("/docs/27.0.0/comparisons/druid-vs-spark","9c4"),exact:!0},{path:"/docs/27.0.0/comparisons/druid-vs-sql-on-hadoop",component:p("/docs/27.0.0/comparisons/druid-vs-sql-on-hadoop","41d"),exact:!0},{path:"/docs/27.0.0/configuration/",component:p("/docs/27.0.0/configuration/","0f9"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/configuration/extensions",component:p("/docs/27.0.0/configuration/extensions","b31"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/configuration/human-readable-byte",component:p("/docs/27.0.0/configuration/human-readable-byte","3fa"),exact:!0},{path:"/docs/27.0.0/configuration/logging",component:p("/docs/27.0.0/configuration/logging","486"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/data-management/",component:p("/docs/27.0.0/data-management/","ec8"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/data-management/automatic-compaction",component:p("/docs/27.0.0/data-management/automatic-compaction","0e9"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/data-management/compaction",component:p("/docs/27.0.0/data-management/compaction","a22"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/data-management/delete",component:p("/docs/27.0.0/data-management/delete","9e2"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/data-management/schema-changes",component:p("/docs/27.0.0/data-management/schema-changes","37c"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/data-management/update",component:p("/docs/27.0.0/data-management/update","5a1"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/design/",component:p("/docs/27.0.0/design/","5e3"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/design/architecture",component:p("/docs/27.0.0/design/architecture","bec"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/design/broker",component:p("/docs/27.0.0/design/broker","66b"),exact:!0},{path:"/docs/27.0.0/design/coordinator",component:p("/docs/27.0.0/design/coordinator","62b"),exact:!0},{path:"/docs/27.0.0/design/deep-storage",component:p("/docs/27.0.0/design/deep-storage","548"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/design/extensions-contrib/dropwizard",component:p("/docs/27.0.0/design/extensions-contrib/dropwizard","0fc"),exact:!0},{path:"/docs/27.0.0/design/historical",component:p("/docs/27.0.0/design/historical","36a"),exact:!0},{path:"/docs/27.0.0/design/indexer",component:p("/docs/27.0.0/design/indexer","f09"),exact:!0},{path:"/docs/27.0.0/design/indexing-service",component:p("/docs/27.0.0/design/indexing-service","bca"),exact:!0},{path:"/docs/27.0.0/design/metadata-storage",component:p("/docs/27.0.0/design/metadata-storage","b03"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/design/middlemanager",component:p("/docs/27.0.0/design/middlemanager","93a"),exact:!0},{path:"/docs/27.0.0/design/overlord",component:p("/docs/27.0.0/design/overlord","c49"),exact:!0},{path:"/docs/27.0.0/design/peons",component:p("/docs/27.0.0/design/peons","41e"),exact:!0},{path:"/docs/27.0.0/design/processes",component:p("/docs/27.0.0/design/processes","02c"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/design/router",component:p("/docs/27.0.0/design/router","9d5"),exact:!0},{path:"/docs/27.0.0/design/segments",component:p("/docs/27.0.0/design/segments","cb6"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/design/zookeeper",component:p("/docs/27.0.0/design/zookeeper","084"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/development/build",component:p("/docs/27.0.0/development/build","41a"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/development/contribute-to-docs",component:p("/docs/27.0.0/development/contribute-to-docs","0ef"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/development/experimental",component:p("/docs/27.0.0/development/experimental","623"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/development/experimental-features",component:p("/docs/27.0.0/development/experimental-features","cc4"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/aliyun-oss",component:p("/docs/27.0.0/development/extensions-contrib/aliyun-oss","248"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/ambari-metrics-emitter",component:p("/docs/27.0.0/development/extensions-contrib/ambari-metrics-emitter","f4d"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/cassandra",component:p("/docs/27.0.0/development/extensions-contrib/cassandra","b67"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/cloudfiles",component:p("/docs/27.0.0/development/extensions-contrib/cloudfiles","111"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/compressed-big-decimal",component:p("/docs/27.0.0/development/extensions-contrib/compressed-big-decimal","998"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/distinctcount",component:p("/docs/27.0.0/development/extensions-contrib/distinctcount","15c"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/gce-extensions",component:p("/docs/27.0.0/development/extensions-contrib/gce-extensions","7d6"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/graphite",component:p("/docs/27.0.0/development/extensions-contrib/graphite","cb5"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/influx",component:p("/docs/27.0.0/development/extensions-contrib/influx","8b6"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/influxdb-emitter",component:p("/docs/27.0.0/development/extensions-contrib/influxdb-emitter","24f"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/k8s-jobs",component:p("/docs/27.0.0/development/extensions-contrib/k8s-jobs","bb7"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/kafka-emitter",component:p("/docs/27.0.0/development/extensions-contrib/kafka-emitter","fc5"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/materialized-view",component:p("/docs/27.0.0/development/extensions-contrib/materialized-view","df7"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/momentsketch-quantiles",component:p("/docs/27.0.0/development/extensions-contrib/momentsketch-quantiles","574"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/moving-average-query",component:p("/docs/27.0.0/development/extensions-contrib/moving-average-query","4a0"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/opentsdb-emitter",component:p("/docs/27.0.0/development/extensions-contrib/opentsdb-emitter","121"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/prometheus",component:p("/docs/27.0.0/development/extensions-contrib/prometheus","2dc"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/redis-cache",component:p("/docs/27.0.0/development/extensions-contrib/redis-cache","68e"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/sqlserver",component:p("/docs/27.0.0/development/extensions-contrib/sqlserver","528"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/statsd",component:p("/docs/27.0.0/development/extensions-contrib/statsd","ca9"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/tdigestsketch-quantiles",component:p("/docs/27.0.0/development/extensions-contrib/tdigestsketch-quantiles","d92"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/thrift",component:p("/docs/27.0.0/development/extensions-contrib/thrift","f4e"),exact:!0},{path:"/docs/27.0.0/development/extensions-contrib/time-min-max",component:p("/docs/27.0.0/development/extensions-contrib/time-min-max","2ee"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/approximate-histograms",component:p("/docs/27.0.0/development/extensions-core/approximate-histograms","e10"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/avro",component:p("/docs/27.0.0/development/extensions-core/avro","fa9"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/azure",component:p("/docs/27.0.0/development/extensions-core/azure","1e6"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/bloom-filter",component:p("/docs/27.0.0/development/extensions-core/bloom-filter","4b2"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/datasketches-extension",component:p("/docs/27.0.0/development/extensions-core/datasketches-extension","6ad"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/datasketches-hll",component:p("/docs/27.0.0/development/extensions-core/datasketches-hll","436"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/datasketches-kll",component:p("/docs/27.0.0/development/extensions-core/datasketches-kll","367"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/datasketches-quantiles",component:p("/docs/27.0.0/development/extensions-core/datasketches-quantiles","12b"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/datasketches-theta",component:p("/docs/27.0.0/development/extensions-core/datasketches-theta","689"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/datasketches-tuple",component:p("/docs/27.0.0/development/extensions-core/datasketches-tuple","0fa"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/druid-aws-rds",component:p("/docs/27.0.0/development/extensions-core/druid-aws-rds","70a"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/druid-basic-security",component:p("/docs/27.0.0/development/extensions-core/druid-basic-security","226"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/druid-kerberos",component:p("/docs/27.0.0/development/extensions-core/druid-kerberos","0db"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/druid-lookups",component:p("/docs/27.0.0/development/extensions-core/druid-lookups","7b6"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/druid-pac4j",component:p("/docs/27.0.0/development/extensions-core/druid-pac4j","a9b"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/druid-ranger-security",component:p("/docs/27.0.0/development/extensions-core/druid-ranger-security","455"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/examples",component:p("/docs/27.0.0/development/extensions-core/examples","530"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/google",component:p("/docs/27.0.0/development/extensions-core/google","064"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/hdfs",component:p("/docs/27.0.0/development/extensions-core/hdfs","523"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/kafka-extraction-namespace",component:p("/docs/27.0.0/development/extensions-core/kafka-extraction-namespace","ba8"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/kafka-ingestion",component:p("/docs/27.0.0/development/extensions-core/kafka-ingestion","2c6"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/development/extensions-core/kafka-supervisor-operations",component:p("/docs/27.0.0/development/extensions-core/kafka-supervisor-operations","ac4"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/development/extensions-core/kafka-supervisor-reference",component:p("/docs/27.0.0/development/extensions-core/kafka-supervisor-reference","894"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/development/extensions-core/kinesis-ingestion",component:p("/docs/27.0.0/development/extensions-core/kinesis-ingestion","711"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/development/extensions-core/kubernetes",component:p("/docs/27.0.0/development/extensions-core/kubernetes","09b"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/lookups-cached-global",component:p("/docs/27.0.0/development/extensions-core/lookups-cached-global","b58"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/mysql",component:p("/docs/27.0.0/development/extensions-core/mysql","31b"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/orc",component:p("/docs/27.0.0/development/extensions-core/orc","ba9"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/parquet",component:p("/docs/27.0.0/development/extensions-core/parquet","840"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/postgresql",component:p("/docs/27.0.0/development/extensions-core/postgresql","a84"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/protobuf",component:p("/docs/27.0.0/development/extensions-core/protobuf","527"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/s3",component:p("/docs/27.0.0/development/extensions-core/s3","635"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/simple-client-sslcontext",component:p("/docs/27.0.0/development/extensions-core/simple-client-sslcontext","8fd"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/stats",component:p("/docs/27.0.0/development/extensions-core/stats","f1b"),exact:!0},{path:"/docs/27.0.0/development/extensions-core/test-stats",component:p("/docs/27.0.0/development/extensions-core/test-stats","266"),exact:!0},{path:"/docs/27.0.0/development/javascript",component:p("/docs/27.0.0/development/javascript","be7"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/development/modules",component:p("/docs/27.0.0/development/modules","3f8"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/development/overview",component:p("/docs/27.0.0/development/overview","86a"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/development/versioning",component:p("/docs/27.0.0/development/versioning","aad"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/",component:p("/docs/27.0.0/ingestion/","a28"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/data-formats",component:p("/docs/27.0.0/ingestion/data-formats","ca2"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/faq",component:p("/docs/27.0.0/ingestion/faq","0c3"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/hadoop",component:p("/docs/27.0.0/ingestion/hadoop","900"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/ingestion-spec",component:p("/docs/27.0.0/ingestion/ingestion-spec","c9b"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/input-sources",component:p("/docs/27.0.0/ingestion/input-sources","d17"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/native-batch",component:p("/docs/27.0.0/ingestion/native-batch","f8e"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/native-batch-firehose",component:p("/docs/27.0.0/ingestion/native-batch-firehose","83b"),exact:!0},{path:"/docs/27.0.0/ingestion/native-batch-simple-task",component:p("/docs/27.0.0/ingestion/native-batch-simple-task","fff"),exact:!0},{path:"/docs/27.0.0/ingestion/partitioning",component:p("/docs/27.0.0/ingestion/partitioning","40c"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/rollup",component:p("/docs/27.0.0/ingestion/rollup","f78"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/schema-design",component:p("/docs/27.0.0/ingestion/schema-design","d85"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/schema-model",component:p("/docs/27.0.0/ingestion/schema-model","424"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/standalone-realtime",component:p("/docs/27.0.0/ingestion/standalone-realtime","bb8"),exact:!0},{path:"/docs/27.0.0/ingestion/tasks",component:p("/docs/27.0.0/ingestion/tasks","301"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/ingestion/tranquility",component:p("/docs/27.0.0/ingestion/tranquility","83d"),exact:!0},{path:"/docs/27.0.0/misc/papers-and-talks",component:p("/docs/27.0.0/misc/papers-and-talks","537"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/multi-stage-query/",component:p("/docs/27.0.0/multi-stage-query/","4d6"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/multi-stage-query/concepts",component:p("/docs/27.0.0/multi-stage-query/concepts","824"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/multi-stage-query/examples",component:p("/docs/27.0.0/multi-stage-query/examples","f26"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/multi-stage-query/known-issues",component:p("/docs/27.0.0/multi-stage-query/known-issues","157"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/multi-stage-query/reference",component:p("/docs/27.0.0/multi-stage-query/reference","aa7"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/multi-stage-query/security",component:p("/docs/27.0.0/multi-stage-query/security","9b0"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/alerts",component:p("/docs/27.0.0/operations/alerts","4bc"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/auth",component:p("/docs/27.0.0/operations/auth","456"),exact:!0},{path:"/docs/27.0.0/operations/auth-ldap",component:p("/docs/27.0.0/operations/auth-ldap","0e2"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/basic-cluster-tuning",component:p("/docs/27.0.0/operations/basic-cluster-tuning","b3d"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/clean-metadata-store",component:p("/docs/27.0.0/operations/clean-metadata-store","e8d"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/deep-storage-migration",component:p("/docs/27.0.0/operations/deep-storage-migration","038"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/dump-segment",component:p("/docs/27.0.0/operations/dump-segment","1e4"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/durable-storage",component:p("/docs/27.0.0/operations/durable-storage","7bd"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/dynamic-config-provider",component:p("/docs/27.0.0/operations/dynamic-config-provider","a45"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/export-metadata",component:p("/docs/27.0.0/operations/export-metadata","e17"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/getting-started",component:p("/docs/27.0.0/operations/getting-started","df7"),exact:!0},{path:"/docs/27.0.0/operations/high-availability",component:p("/docs/27.0.0/operations/high-availability","959"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/http-compression",component:p("/docs/27.0.0/operations/http-compression","a9c"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/insert-segment-to-db",component:p("/docs/27.0.0/operations/insert-segment-to-db","c33"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/java",component:p("/docs/27.0.0/operations/java","aa1"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/kubernetes",component:p("/docs/27.0.0/operations/kubernetes","349"),exact:!0},{path:"/docs/27.0.0/operations/metadata-migration",component:p("/docs/27.0.0/operations/metadata-migration","62d"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/metrics",component:p("/docs/27.0.0/operations/metrics","eec"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/migrate-from-firehose",component:p("/docs/27.0.0/operations/migrate-from-firehose","f3d"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/mixed-workloads",component:p("/docs/27.0.0/operations/mixed-workloads","092"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/other-hadoop",component:p("/docs/27.0.0/operations/other-hadoop","663"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/password-provider",component:p("/docs/27.0.0/operations/password-provider","edd"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/pull-deps",component:p("/docs/27.0.0/operations/pull-deps","14a"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/request-logging",component:p("/docs/27.0.0/operations/request-logging","643"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/reset-cluster",component:p("/docs/27.0.0/operations/reset-cluster","f8a"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/rolling-updates",component:p("/docs/27.0.0/operations/rolling-updates","1be"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/rule-configuration",component:p("/docs/27.0.0/operations/rule-configuration","be4"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/security-overview",component:p("/docs/27.0.0/operations/security-overview","5b0"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/security-user-auth",component:p("/docs/27.0.0/operations/security-user-auth","81b"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/segment-optimization",component:p("/docs/27.0.0/operations/segment-optimization","acf"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/single-server",component:p("/docs/27.0.0/operations/single-server","9ea"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/tls-support",component:p("/docs/27.0.0/operations/tls-support","bff"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/use_sbt_to_build_fat_jar",component:p("/docs/27.0.0/operations/use_sbt_to_build_fat_jar","e23"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/operations/web-console",component:p("/docs/27.0.0/operations/web-console","54a"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/",component:p("/docs/27.0.0/querying/","a80"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/aggregations",component:p("/docs/27.0.0/querying/aggregations","f33"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/caching",component:p("/docs/27.0.0/querying/caching","8fc"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/datasource",component:p("/docs/27.0.0/querying/datasource","3fa"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/datasourcemetadataquery",component:p("/docs/27.0.0/querying/datasourcemetadataquery","11e"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/dimensionspecs",component:p("/docs/27.0.0/querying/dimensionspecs","ceb"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/filters",component:p("/docs/27.0.0/querying/filters","4a2"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/geo",component:p("/docs/27.0.0/querying/geo","d53"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/granularities",component:p("/docs/27.0.0/querying/granularities","f15"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/groupbyquery",component:p("/docs/27.0.0/querying/groupbyquery","766"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/having",component:p("/docs/27.0.0/querying/having","cb1"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/hll-old",component:p("/docs/27.0.0/querying/hll-old","f85"),exact:!0},{path:"/docs/27.0.0/querying/joins",component:p("/docs/27.0.0/querying/joins","c9c"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/limitspec",component:p("/docs/27.0.0/querying/limitspec","772"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/lookups",component:p("/docs/27.0.0/querying/lookups","dce"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/math-expr",component:p("/docs/27.0.0/querying/math-expr","8b8"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/multi-value-dimensions",component:p("/docs/27.0.0/querying/multi-value-dimensions","dae"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/multitenancy",component:p("/docs/27.0.0/querying/multitenancy","b68"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/nested-columns",component:p("/docs/27.0.0/querying/nested-columns","ada"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/post-aggregations",component:p("/docs/27.0.0/querying/post-aggregations","b5d"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/query-context",component:p("/docs/27.0.0/querying/query-context","b8e"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/query-deep-storage",component:p("/docs/27.0.0/querying/query-deep-storage","31a"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/query-execution",component:p("/docs/27.0.0/querying/query-execution","b5f"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/scan-query",component:p("/docs/27.0.0/querying/scan-query","068"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/searchquery",component:p("/docs/27.0.0/querying/searchquery","b6c"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/segmentmetadataquery",component:p("/docs/27.0.0/querying/segmentmetadataquery","ea2"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/select-query",component:p("/docs/27.0.0/querying/select-query","c76"),exact:!0},{path:"/docs/27.0.0/querying/sorting-orders",component:p("/docs/27.0.0/querying/sorting-orders","e29"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql",component:p("/docs/27.0.0/querying/sql","65f"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql-aggregations",component:p("/docs/27.0.0/querying/sql-aggregations","d86"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql-array-functions",component:p("/docs/27.0.0/querying/sql-array-functions","b7e"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql-data-types",component:p("/docs/27.0.0/querying/sql-data-types","d9f"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql-functions",component:p("/docs/27.0.0/querying/sql-functions","e4b"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql-json-functions",component:p("/docs/27.0.0/querying/sql-json-functions","4a6"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql-metadata-tables",component:p("/docs/27.0.0/querying/sql-metadata-tables","e05"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql-multivalue-string-functions",component:p("/docs/27.0.0/querying/sql-multivalue-string-functions","ca7"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql-operators",component:p("/docs/27.0.0/querying/sql-operators","506"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql-query-context",component:p("/docs/27.0.0/querying/sql-query-context","2ad"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql-scalar",component:p("/docs/27.0.0/querying/sql-scalar","258"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/sql-translation",component:p("/docs/27.0.0/querying/sql-translation","7d1"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/timeboundaryquery",component:p("/docs/27.0.0/querying/timeboundaryquery","f2c"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/timeseriesquery",component:p("/docs/27.0.0/querying/timeseriesquery","623"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/topnmetricspec",component:p("/docs/27.0.0/querying/topnmetricspec","707"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/topnquery",component:p("/docs/27.0.0/querying/topnquery","4c2"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/troubleshooting",component:p("/docs/27.0.0/querying/troubleshooting","bf2"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/using-caching",component:p("/docs/27.0.0/querying/using-caching","1da"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/querying/virtual-columns",component:p("/docs/27.0.0/querying/virtual-columns","e91"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/",component:p("/docs/27.0.0/tutorials/","895"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/cluster",component:p("/docs/27.0.0/tutorials/cluster","751"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/docker",component:p("/docs/27.0.0/tutorials/docker","a03"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-batch",component:p("/docs/27.0.0/tutorials/tutorial-batch","a7e"),exact:!0},{path:"/docs/27.0.0/tutorials/tutorial-batch-hadoop",component:p("/docs/27.0.0/tutorials/tutorial-batch-hadoop","3ce"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-batch-native",component:p("/docs/27.0.0/tutorials/tutorial-batch-native","447"),exact:!0},{path:"/docs/27.0.0/tutorials/tutorial-compaction",component:p("/docs/27.0.0/tutorials/tutorial-compaction","bcd"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-delete-data",component:p("/docs/27.0.0/tutorials/tutorial-delete-data","854"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-ingestion-spec",component:p("/docs/27.0.0/tutorials/tutorial-ingestion-spec","775"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-jdbc",component:p("/docs/27.0.0/tutorials/tutorial-jdbc","a84"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-jupyter-docker",component:p("/docs/27.0.0/tutorials/tutorial-jupyter-docker","b6e"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-jupyter-index",component:p("/docs/27.0.0/tutorials/tutorial-jupyter-index","345"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-kafka",component:p("/docs/27.0.0/tutorials/tutorial-kafka","212"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-kerberos-hadoop",component:p("/docs/27.0.0/tutorials/tutorial-kerberos-hadoop","446"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-msq-convert-spec",component:p("/docs/27.0.0/tutorials/tutorial-msq-convert-spec","8d5"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-msq-extern",component:p("/docs/27.0.0/tutorials/tutorial-msq-extern","973"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-query",component:p("/docs/27.0.0/tutorials/tutorial-query","b26"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-query-deep-storage",component:p("/docs/27.0.0/tutorials/tutorial-query-deep-storage","056"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-retention",component:p("/docs/27.0.0/tutorials/tutorial-retention","cbb"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-rollup",component:p("/docs/27.0.0/tutorials/tutorial-rollup","f61"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-sketches-theta",component:p("/docs/27.0.0/tutorials/tutorial-sketches-theta","e1d"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-sql-query-view",component:p("/docs/27.0.0/tutorials/tutorial-sql-query-view","b9e"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-transform-spec",component:p("/docs/27.0.0/tutorials/tutorial-transform-spec","174"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-unnest-arrays",component:p("/docs/27.0.0/tutorials/tutorial-unnest-arrays","a2d"),exact:!0,sidebar:"docs"},{path:"/docs/27.0.0/tutorials/tutorial-update-data",component:p("/docs/27.0.0/tutorials/tutorial-update-data","ffc"),exact:!0,sidebar:"docs"}]},{path:"/",component:p("/","8ed"),exact:!0},{path:"*",component:p("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>a});var r=n(67294),o=r.createContext(!1);function a(e){var t=e.children,n=(0,r.useState)(!1),a=n[0],i=n[1];return(0,r.useEffect)((function(){i(!0)}),[]),r.createElement(o.Provider,{value:a},t)}},49383:(e,t,n)=>{"use strict";var r=n(67294),o=n(73935),a=n(73727),i=n(70405),s=n(10412);const c=[n(56657),n(32497),n(3310),n(18320),n(37253),n(83128)];var l=n(723),u=n(16550),d=n(18790);function p(e){var t=e.children;return r.createElement(r.Fragment,null,t)}var f=n(87462),m=n(35742),h=n(52263),g=n(44996),b=n(86668),v=n(1944),y=n(94711),w=n(19727),k=n(43320),x=n(90197);function E(){var e=(0,h.Z)().i18n,t=e.defaultLocale,n=e.localeConfigs,o=(0,y.l)();return r.createElement(m.Z,null,Object.entries(n).map((function(e){var t=e[0],n=e[1].htmlLang;return r.createElement("link",{key:t,rel:"alternate",href:o.createUrl({locale:t,fullyQualified:!0}),hrefLang:n})})),r.createElement("link",{rel:"alternate",href:o.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}))}function _(e){var t=e.permalink,n=(0,h.Z)().siteConfig.url,o=function(){var e=(0,h.Z)().siteConfig.url,t=(0,u.TH)().pathname;return e+(0,g.Z)(t)}(),a=t?""+n+t:o;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function S(){var e=(0,h.Z)().i18n.currentLocale,t=(0,b.L)(),n=t.metadata,o=t.image;return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),o&&r.createElement(v.d,{image:o}),r.createElement(_,null),r.createElement(E,null),r.createElement(x.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,n.map((function(e,t){return r.createElement("meta",(0,f.Z)({key:t},e))}))))}var C=new Map;function T(e){if(C.has(e.pathname))return Object.assign({},e,{pathname:C.get(e.pathname)});if((0,d.f)(l.Z,e.pathname).some((function(e){return!0===e.route.exact})))return C.set(e.pathname,e.pathname),e;var t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),Object.assign({},e,{pathname:t})}var q=n(98934),A=n(58940),L=n(94578);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=c.map((function(t){var r,o,a=null!=(r=null==(o=t.default)?void 0:o[e])?r:t[e];return null==a?void 0:a.apply(void 0,n)}));return function(){return o.forEach((function(e){return null==e?void 0:e()}))}}const N=function(e){var t=e.children,n=e.location,o=e.previousLocation;return(0,r.useLayoutEffect)((function(){o!==n&&(!function(e){var t=e.location,n=e.previousLocation;if(n){var r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(!r||!o||a){var i=t.hash;if(i){var s=decodeURIComponent(i.substring(1)),c=document.getElementById(s);null==c||c.scrollIntoView()}else window.scrollTo(0,0)}}}({location:n,previousLocation:o}),R("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function P(e){var t=Array.from(new Set([e,decodeURI(e)])).map((function(e){return(0,d.f)(l.Z,e)})).flat();return Promise.all(t.map((function(e){return null==e.route.component.preload?void 0:e.route.component.preload()})))}const O=function(e){function t(t){var n;return(n=e.call(this,t)||this).previousLocation=void 0,n.routeUpdateCleanupCb=void 0,n.previousLocation=null,n.routeUpdateCleanupCb=s.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:n.props.location}):function(){},n.state={nextRouteHasLoaded:!0},n}(0,L.Z)(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e,t){var n=this;if(e.location===this.props.location)return t.nextRouteHasLoaded;var r=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:r}),P(r.pathname).then((function(){n.routeUpdateCleanupCb(),n.setState({nextRouteHasLoaded:!0})})).catch((function(e){console.warn(e),window.location.reload()})),!1},n.render=function(){var e=this.props,t=e.children,n=e.location;return r.createElement(N,{previousLocation:this.previousLocation,location:n},r.createElement(u.AW,{location:n,render:function(){return t}}))},t}(r.Component);var I="__docusaurus-base-url-issue-banner-container",D="__docusaurus-base-url-issue-banner",M="__docusaurus-base-url-issue-banner-suggestion-container",j="__DOCUSAURUS_INSERT_BASEURL_BANNER";function F(e){return"\nwindow['"+j+"'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n  var shouldInsert = window['"+j+"'];\n  shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n  var bannerContainer = document.getElementById('"+I+"');\n  if (!bannerContainer) {\n    return;\n  }\n  var bannerHtml = "+JSON.stringify(function(e){return'\n<div id="'+D+'" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n   <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n   <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n   <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">'+e+"</span> "+("/"===e?" (default value)":"")+'</p>\n   <p>We suggest trying baseUrl = <span id="'+M+'" style="font-weight: bold; color: green;"></span></p>\n</div>\n'}(e)).replace(/</g,"\\<")+";\n  bannerContainer.innerHTML = bannerHtml;\n  var suggestionContainer = document.getElementById('"+M+"');\n  var actualHomePagePath = window.location.pathname;\n  var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n        ? actualHomePagePath\n        : actualHomePagePath + '/';\n  suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n"}function B(){var e=(0,h.Z)().siteConfig.baseUrl;return(0,r.useLayoutEffect)((function(){window[j]=!1}),[]),r.createElement(r.Fragment,null,!s.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,F(e))),r.createElement("div",{id:I}))}function z(){var e=(0,h.Z)().siteConfig,t=e.baseUrl,n=e.baseUrlIssueBanner,o=(0,u.TH)().pathname;return n&&o===t?r.createElement(B,null):null}function U(){var e=(0,h.Z)(),t=e.siteConfig,n=t.favicon,o=t.title,a=t.noIndex,i=e.i18n,s=i.currentLocale,c=i.localeConfigs,l=(0,g.Z)(n),u=c[s],d=u.htmlLang,p=u.direction;return r.createElement(m.Z,null,r.createElement("html",{lang:d,dir:p}),r.createElement("title",null,o),r.createElement("meta",{property:"og:title",content:o}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),a&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),n&&r.createElement("link",{rel:"icon",href:l}))}var Z=n(44763);function $(){var e=(0,d.H)(l.Z),t=(0,u.TH)();return r.createElement(Z.Z,null,r.createElement(A.M,null,r.createElement(q.t,null,r.createElement(p,null,r.createElement(U,null),r.createElement(S,null),r.createElement(z,null),r.createElement(O,{location:T(t)},e)))))}var H=n(16887);var G=function(e){try{return document.createElement("link").relList.supports(e)}catch(t){return!1}}("prefetch")?function(e){return new Promise((function(t,n){var r,o;if("undefined"!=typeof document){var a=document.createElement("link");a.setAttribute("rel","prefetch"),a.setAttribute("href",e),a.onload=function(){return t()},a.onerror=function(){return n()};var i=null!=(r=document.getElementsByTagName("head")[0])?r:null==(o=document.getElementsByName("script")[0])?void 0:o.parentNode;null==i||i.appendChild(a)}else n()}))}:function(e){return new Promise((function(t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=function(){200===r.status?t():n()},r.send(null)}))};var V=n(99670),W=new Set,Y=new Set,K=function(){var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},X={prefetch:function(e){if(!function(e){return!K()&&!Y.has(e)&&!W.has(e)}(e))return!1;W.add(e);var t=(0,d.f)(l.Z,e).flatMap((function(e){return t=e.route.path,Object.entries(H).filter((function(e){return e[0].replace(/-[^-]+$/,"")===t})).flatMap((function(e){var t=e[1];return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((function(e){var t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((function(){})):Promise.resolve()})))},preload:function(e){return!!function(e){return!K()&&!Y.has(e)}(e)&&(Y.add(e),P(e))}};const Q=Object.freeze(X);if(s.Z.canUseDOM){window.docusaurus=Q;var J=o.hydrate;P(window.location.pathname).then((function(){J(r.createElement(i.B6,null,r.createElement(a.VK,null,r.createElement($,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>d});var r=n(67294),o=n(36809);const a=JSON.parse('{"docusaurus-lunr-search":{"default":{"fileNames":{"searchDoc":"search-doc-1693344125229.json","lunrIndex":"lunr-index-1693344125229.json"}}},"docusaurus-plugin-google-gtag":{"default":{"trackingID":["UA-131010415-1"],"anonymizeIP":false,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/docs/27.0.0","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs/27.0.0","mainDocId":"design/index","docs":[{"id":"api-reference/api-reference","path":"/docs/27.0.0/api-reference/","sidebar":"docs"},{"id":"api-reference/automatic-compaction-api","path":"/docs/27.0.0/api-reference/automatic-compaction-api","sidebar":"docs"},{"id":"api-reference/data-management-api","path":"/docs/27.0.0/api-reference/data-management-api","sidebar":"docs"},{"id":"api-reference/dynamic-configuration-api","path":"/docs/27.0.0/api-reference/dynamic-configuration-api","sidebar":"docs"},{"id":"api-reference/json-querying-api","path":"/docs/27.0.0/api-reference/json-querying-api","sidebar":"docs"},{"id":"api-reference/legacy-metadata-api","path":"/docs/27.0.0/api-reference/legacy-metadata-api","sidebar":"docs"},{"id":"api-reference/lookups-api","path":"/docs/27.0.0/api-reference/lookups-api","sidebar":"docs"},{"id":"api-reference/retention-rules-api","path":"/docs/27.0.0/api-reference/retention-rules-api","sidebar":"docs"},{"id":"api-reference/service-status-api","path":"/docs/27.0.0/api-reference/service-status-api","sidebar":"docs"},{"id":"api-reference/sql-api","path":"/docs/27.0.0/api-reference/sql-api","sidebar":"docs"},{"id":"api-reference/sql-ingestion-api","path":"/docs/27.0.0/api-reference/sql-ingestion-api","sidebar":"docs"},{"id":"api-reference/sql-jdbc","path":"/docs/27.0.0/api-reference/sql-jdbc","sidebar":"docs"},{"id":"api-reference/supervisor-api","path":"/docs/27.0.0/api-reference/supervisor-api","sidebar":"docs"},{"id":"api-reference/tasks-api","path":"/docs/27.0.0/api-reference/tasks-api","sidebar":"docs"},{"id":"comparisons/druid-vs-elasticsearch","path":"/docs/27.0.0/comparisons/druid-vs-elasticsearch"},{"id":"comparisons/druid-vs-key-value","path":"/docs/27.0.0/comparisons/druid-vs-key-value"},{"id":"comparisons/druid-vs-kudu","path":"/docs/27.0.0/comparisons/druid-vs-kudu"},{"id":"comparisons/druid-vs-redshift","path":"/docs/27.0.0/comparisons/druid-vs-redshift"},{"id":"comparisons/druid-vs-spark","path":"/docs/27.0.0/comparisons/druid-vs-spark"},{"id":"comparisons/druid-vs-sql-on-hadoop","path":"/docs/27.0.0/comparisons/druid-vs-sql-on-hadoop"},{"id":"configuration/extensions","path":"/docs/27.0.0/configuration/extensions","sidebar":"docs"},{"id":"configuration/human-readable-byte","path":"/docs/27.0.0/configuration/human-readable-byte"},{"id":"configuration/index","path":"/docs/27.0.0/configuration/","sidebar":"docs"},{"id":"configuration/logging","path":"/docs/27.0.0/configuration/logging","sidebar":"docs"},{"id":"data-management/automatic-compaction","path":"/docs/27.0.0/data-management/automatic-compaction","sidebar":"docs"},{"id":"data-management/compaction","path":"/docs/27.0.0/data-management/compaction","sidebar":"docs"},{"id":"data-management/delete","path":"/docs/27.0.0/data-management/delete","sidebar":"docs"},{"id":"data-management/index","path":"/docs/27.0.0/data-management/","sidebar":"docs"},{"id":"data-management/schema-changes","path":"/docs/27.0.0/data-management/schema-changes","sidebar":"docs"},{"id":"data-management/update","path":"/docs/27.0.0/data-management/update","sidebar":"docs"},{"id":"design/architecture","path":"/docs/27.0.0/design/architecture","sidebar":"docs"},{"id":"design/broker","path":"/docs/27.0.0/design/broker"},{"id":"design/coordinator","path":"/docs/27.0.0/design/coordinator"},{"id":"design/deep-storage","path":"/docs/27.0.0/design/deep-storage","sidebar":"docs"},{"id":"design/extensions-contrib/dropwizard","path":"/docs/27.0.0/design/extensions-contrib/dropwizard"},{"id":"design/historical","path":"/docs/27.0.0/design/historical"},{"id":"design/index","path":"/docs/27.0.0/design/","sidebar":"docs"},{"id":"design/indexer","path":"/docs/27.0.0/design/indexer"},{"id":"design/indexing-service","path":"/docs/27.0.0/design/indexing-service"},{"id":"design/metadata-storage","path":"/docs/27.0.0/design/metadata-storage","sidebar":"docs"},{"id":"design/middlemanager","path":"/docs/27.0.0/design/middlemanager"},{"id":"design/overlord","path":"/docs/27.0.0/design/overlord"},{"id":"design/peons","path":"/docs/27.0.0/design/peons"},{"id":"design/processes","path":"/docs/27.0.0/design/processes","sidebar":"docs"},{"id":"design/router","path":"/docs/27.0.0/design/router"},{"id":"design/segments","path":"/docs/27.0.0/design/segments","sidebar":"docs"},{"id":"design/zookeeper","path":"/docs/27.0.0/design/zookeeper","sidebar":"docs"},{"id":"development/build","path":"/docs/27.0.0/development/build","sidebar":"docs"},{"id":"development/contribute-to-docs","path":"/docs/27.0.0/development/contribute-to-docs","sidebar":"docs"},{"id":"development/experimental","path":"/docs/27.0.0/development/experimental","sidebar":"docs"},{"id":"development/experimental-features","path":"/docs/27.0.0/development/experimental-features"},{"id":"development/extensions-contrib/aliyun-oss","path":"/docs/27.0.0/development/extensions-contrib/aliyun-oss"},{"id":"development/extensions-contrib/ambari-metrics-emitter","path":"/docs/27.0.0/development/extensions-contrib/ambari-metrics-emitter"},{"id":"development/extensions-contrib/cassandra","path":"/docs/27.0.0/development/extensions-contrib/cassandra"},{"id":"development/extensions-contrib/cloudfiles","path":"/docs/27.0.0/development/extensions-contrib/cloudfiles"},{"id":"development/extensions-contrib/compressed-big-decimal","path":"/docs/27.0.0/development/extensions-contrib/compressed-big-decimal"},{"id":"development/extensions-contrib/distinctcount","path":"/docs/27.0.0/development/extensions-contrib/distinctcount"},{"id":"development/extensions-contrib/gce-extensions","path":"/docs/27.0.0/development/extensions-contrib/gce-extensions"},{"id":"development/extensions-contrib/graphite","path":"/docs/27.0.0/development/extensions-contrib/graphite"},{"id":"development/extensions-contrib/influx","path":"/docs/27.0.0/development/extensions-contrib/influx"},{"id":"development/extensions-contrib/influxdb-emitter","path":"/docs/27.0.0/development/extensions-contrib/influxdb-emitter"},{"id":"development/extensions-contrib/k8s-jobs","path":"/docs/27.0.0/development/extensions-contrib/k8s-jobs"},{"id":"development/extensions-contrib/kafka-emitter","path":"/docs/27.0.0/development/extensions-contrib/kafka-emitter"},{"id":"development/extensions-contrib/materialized-view","path":"/docs/27.0.0/development/extensions-contrib/materialized-view"},{"id":"development/extensions-contrib/momentsketch-quantiles","path":"/docs/27.0.0/development/extensions-contrib/momentsketch-quantiles"},{"id":"development/extensions-contrib/moving-average-query","path":"/docs/27.0.0/development/extensions-contrib/moving-average-query"},{"id":"development/extensions-contrib/opentsdb-emitter","path":"/docs/27.0.0/development/extensions-contrib/opentsdb-emitter"},{"id":"development/extensions-contrib/prometheus","path":"/docs/27.0.0/development/extensions-contrib/prometheus"},{"id":"development/extensions-contrib/redis-cache","path":"/docs/27.0.0/development/extensions-contrib/redis-cache"},{"id":"development/extensions-contrib/sqlserver","path":"/docs/27.0.0/development/extensions-contrib/sqlserver"},{"id":"development/extensions-contrib/statsd","path":"/docs/27.0.0/development/extensions-contrib/statsd"},{"id":"development/extensions-contrib/tdigestsketch-quantiles","path":"/docs/27.0.0/development/extensions-contrib/tdigestsketch-quantiles"},{"id":"development/extensions-contrib/thrift","path":"/docs/27.0.0/development/extensions-contrib/thrift"},{"id":"development/extensions-contrib/time-min-max","path":"/docs/27.0.0/development/extensions-contrib/time-min-max"},{"id":"development/extensions-core/approximate-histograms","path":"/docs/27.0.0/development/extensions-core/approximate-histograms"},{"id":"development/extensions-core/avro","path":"/docs/27.0.0/development/extensions-core/avro"},{"id":"development/extensions-core/azure","path":"/docs/27.0.0/development/extensions-core/azure"},{"id":"development/extensions-core/bloom-filter","path":"/docs/27.0.0/development/extensions-core/bloom-filter"},{"id":"development/extensions-core/datasketches-extension","path":"/docs/27.0.0/development/extensions-core/datasketches-extension"},{"id":"development/extensions-core/datasketches-hll","path":"/docs/27.0.0/development/extensions-core/datasketches-hll"},{"id":"development/extensions-core/datasketches-kll","path":"/docs/27.0.0/development/extensions-core/datasketches-kll"},{"id":"development/extensions-core/datasketches-quantiles","path":"/docs/27.0.0/development/extensions-core/datasketches-quantiles"},{"id":"development/extensions-core/datasketches-theta","path":"/docs/27.0.0/development/extensions-core/datasketches-theta"},{"id":"development/extensions-core/datasketches-tuple","path":"/docs/27.0.0/development/extensions-core/datasketches-tuple"},{"id":"development/extensions-core/druid-aws-rds","path":"/docs/27.0.0/development/extensions-core/druid-aws-rds"},{"id":"development/extensions-core/druid-basic-security","path":"/docs/27.0.0/development/extensions-core/druid-basic-security"},{"id":"development/extensions-core/druid-kerberos","path":"/docs/27.0.0/development/extensions-core/druid-kerberos"},{"id":"development/extensions-core/druid-lookups","path":"/docs/27.0.0/development/extensions-core/druid-lookups"},{"id":"development/extensions-core/druid-pac4j","path":"/docs/27.0.0/development/extensions-core/druid-pac4j"},{"id":"development/extensions-core/druid-ranger-security","path":"/docs/27.0.0/development/extensions-core/druid-ranger-security"},{"id":"development/extensions-core/examples","path":"/docs/27.0.0/development/extensions-core/examples"},{"id":"development/extensions-core/google","path":"/docs/27.0.0/development/extensions-core/google"},{"id":"development/extensions-core/hdfs","path":"/docs/27.0.0/development/extensions-core/hdfs"},{"id":"development/extensions-core/kafka-extraction-namespace","path":"/docs/27.0.0/development/extensions-core/kafka-extraction-namespace"},{"id":"development/extensions-core/kafka-ingestion","path":"/docs/27.0.0/development/extensions-core/kafka-ingestion","sidebar":"docs"},{"id":"development/extensions-core/kafka-supervisor-operations","path":"/docs/27.0.0/development/extensions-core/kafka-supervisor-operations","sidebar":"docs"},{"id":"development/extensions-core/kafka-supervisor-reference","path":"/docs/27.0.0/development/extensions-core/kafka-supervisor-reference","sidebar":"docs"},{"id":"development/extensions-core/kinesis-ingestion","path":"/docs/27.0.0/development/extensions-core/kinesis-ingestion","sidebar":"docs"},{"id":"development/extensions-core/kubernetes","path":"/docs/27.0.0/development/extensions-core/kubernetes"},{"id":"development/extensions-core/lookups-cached-global","path":"/docs/27.0.0/development/extensions-core/lookups-cached-global"},{"id":"development/extensions-core/mysql","path":"/docs/27.0.0/development/extensions-core/mysql"},{"id":"development/extensions-core/orc","path":"/docs/27.0.0/development/extensions-core/orc"},{"id":"development/extensions-core/parquet","path":"/docs/27.0.0/development/extensions-core/parquet"},{"id":"development/extensions-core/postgresql","path":"/docs/27.0.0/development/extensions-core/postgresql"},{"id":"development/extensions-core/protobuf","path":"/docs/27.0.0/development/extensions-core/protobuf"},{"id":"development/extensions-core/s3","path":"/docs/27.0.0/development/extensions-core/s3"},{"id":"development/extensions-core/simple-client-sslcontext","path":"/docs/27.0.0/development/extensions-core/simple-client-sslcontext"},{"id":"development/extensions-core/stats","path":"/docs/27.0.0/development/extensions-core/stats"},{"id":"development/extensions-core/test-stats","path":"/docs/27.0.0/development/extensions-core/test-stats"},{"id":"development/javascript","path":"/docs/27.0.0/development/javascript","sidebar":"docs"},{"id":"development/modules","path":"/docs/27.0.0/development/modules","sidebar":"docs"},{"id":"development/overview","path":"/docs/27.0.0/development/overview","sidebar":"docs"},{"id":"development/versioning","path":"/docs/27.0.0/development/versioning","sidebar":"docs"},{"id":"ingestion/data-formats","path":"/docs/27.0.0/ingestion/data-formats","sidebar":"docs"},{"id":"ingestion/faq","path":"/docs/27.0.0/ingestion/faq","sidebar":"docs"},{"id":"ingestion/hadoop","path":"/docs/27.0.0/ingestion/hadoop","sidebar":"docs"},{"id":"ingestion/index","path":"/docs/27.0.0/ingestion/","sidebar":"docs"},{"id":"ingestion/ingestion-spec","path":"/docs/27.0.0/ingestion/ingestion-spec","sidebar":"docs"},{"id":"ingestion/input-sources","path":"/docs/27.0.0/ingestion/input-sources","sidebar":"docs"},{"id":"ingestion/native-batch","path":"/docs/27.0.0/ingestion/native-batch","sidebar":"docs"},{"id":"ingestion/native-batch-firehose","path":"/docs/27.0.0/ingestion/native-batch-firehose"},{"id":"ingestion/native-batch-simple-task","path":"/docs/27.0.0/ingestion/native-batch-simple-task"},{"id":"ingestion/partitioning","path":"/docs/27.0.0/ingestion/partitioning","sidebar":"docs"},{"id":"ingestion/rollup","path":"/docs/27.0.0/ingestion/rollup","sidebar":"docs"},{"id":"ingestion/schema-design","path":"/docs/27.0.0/ingestion/schema-design","sidebar":"docs"},{"id":"ingestion/schema-model","path":"/docs/27.0.0/ingestion/schema-model","sidebar":"docs"},{"id":"ingestion/standalone-realtime","path":"/docs/27.0.0/ingestion/standalone-realtime"},{"id":"ingestion/tasks","path":"/docs/27.0.0/ingestion/tasks","sidebar":"docs"},{"id":"ingestion/tranquility","path":"/docs/27.0.0/ingestion/tranquility"},{"id":"misc/papers-and-talks","path":"/docs/27.0.0/misc/papers-and-talks","sidebar":"docs"},{"id":"multi-stage-query/concepts","path":"/docs/27.0.0/multi-stage-query/concepts","sidebar":"docs"},{"id":"multi-stage-query/examples","path":"/docs/27.0.0/multi-stage-query/examples","sidebar":"docs"},{"id":"multi-stage-query/index","path":"/docs/27.0.0/multi-stage-query/","sidebar":"docs"},{"id":"multi-stage-query/known-issues","path":"/docs/27.0.0/multi-stage-query/known-issues","sidebar":"docs"},{"id":"multi-stage-query/reference","path":"/docs/27.0.0/multi-stage-query/reference","sidebar":"docs"},{"id":"multi-stage-query/security","path":"/docs/27.0.0/multi-stage-query/security","sidebar":"docs"},{"id":"operations/alerts","path":"/docs/27.0.0/operations/alerts","sidebar":"docs"},{"id":"operations/auth","path":"/docs/27.0.0/operations/auth"},{"id":"operations/auth-ldap","path":"/docs/27.0.0/operations/auth-ldap","sidebar":"docs"},{"id":"operations/basic-cluster-tuning","path":"/docs/27.0.0/operations/basic-cluster-tuning","sidebar":"docs"},{"id":"operations/clean-metadata-store","path":"/docs/27.0.0/operations/clean-metadata-store","sidebar":"docs"},{"id":"operations/deep-storage-migration","path":"/docs/27.0.0/operations/deep-storage-migration","sidebar":"docs"},{"id":"operations/dump-segment","path":"/docs/27.0.0/operations/dump-segment","sidebar":"docs"},{"id":"operations/durable-storage","path":"/docs/27.0.0/operations/durable-storage","sidebar":"docs"},{"id":"operations/dynamic-config-provider","path":"/docs/27.0.0/operations/dynamic-config-provider","sidebar":"docs"},{"id":"operations/export-metadata","path":"/docs/27.0.0/operations/export-metadata","sidebar":"docs"},{"id":"operations/getting-started","path":"/docs/27.0.0/operations/getting-started"},{"id":"operations/high-availability","path":"/docs/27.0.0/operations/high-availability","sidebar":"docs"},{"id":"operations/http-compression","path":"/docs/27.0.0/operations/http-compression","sidebar":"docs"},{"id":"operations/insert-segment-to-db","path":"/docs/27.0.0/operations/insert-segment-to-db","sidebar":"docs"},{"id":"operations/java","path":"/docs/27.0.0/operations/java","sidebar":"docs"},{"id":"operations/kubernetes","path":"/docs/27.0.0/operations/kubernetes"},{"id":"operations/metadata-migration","path":"/docs/27.0.0/operations/metadata-migration","sidebar":"docs"},{"id":"operations/metrics","path":"/docs/27.0.0/operations/metrics","sidebar":"docs"},{"id":"operations/migrate-from-firehose","path":"/docs/27.0.0/operations/migrate-from-firehose","sidebar":"docs"},{"id":"operations/mixed-workloads","path":"/docs/27.0.0/operations/mixed-workloads","sidebar":"docs"},{"id":"operations/other-hadoop","path":"/docs/27.0.0/operations/other-hadoop","sidebar":"docs"},{"id":"operations/password-provider","path":"/docs/27.0.0/operations/password-provider","sidebar":"docs"},{"id":"operations/pull-deps","path":"/docs/27.0.0/operations/pull-deps","sidebar":"docs"},{"id":"operations/request-logging","path":"/docs/27.0.0/operations/request-logging","sidebar":"docs"},{"id":"operations/reset-cluster","path":"/docs/27.0.0/operations/reset-cluster","sidebar":"docs"},{"id":"operations/rolling-updates","path":"/docs/27.0.0/operations/rolling-updates","sidebar":"docs"},{"id":"operations/rule-configuration","path":"/docs/27.0.0/operations/rule-configuration","sidebar":"docs"},{"id":"operations/security-overview","path":"/docs/27.0.0/operations/security-overview","sidebar":"docs"},{"id":"operations/security-user-auth","path":"/docs/27.0.0/operations/security-user-auth","sidebar":"docs"},{"id":"operations/segment-optimization","path":"/docs/27.0.0/operations/segment-optimization","sidebar":"docs"},{"id":"operations/single-server","path":"/docs/27.0.0/operations/single-server","sidebar":"docs"},{"id":"operations/tls-support","path":"/docs/27.0.0/operations/tls-support","sidebar":"docs"},{"id":"operations/use_sbt_to_build_fat_jar","path":"/docs/27.0.0/operations/use_sbt_to_build_fat_jar","sidebar":"docs"},{"id":"operations/web-console","path":"/docs/27.0.0/operations/web-console","sidebar":"docs"},{"id":"querying/aggregations","path":"/docs/27.0.0/querying/aggregations","sidebar":"docs"},{"id":"querying/caching","path":"/docs/27.0.0/querying/caching","sidebar":"docs"},{"id":"querying/datasource","path":"/docs/27.0.0/querying/datasource","sidebar":"docs"},{"id":"querying/datasourcemetadataquery","path":"/docs/27.0.0/querying/datasourcemetadataquery","sidebar":"docs"},{"id":"querying/dimensionspecs","path":"/docs/27.0.0/querying/dimensionspecs","sidebar":"docs"},{"id":"querying/filters","path":"/docs/27.0.0/querying/filters","sidebar":"docs"},{"id":"querying/geo","path":"/docs/27.0.0/querying/geo","sidebar":"docs"},{"id":"querying/granularities","path":"/docs/27.0.0/querying/granularities","sidebar":"docs"},{"id":"querying/groupbyquery","path":"/docs/27.0.0/querying/groupbyquery","sidebar":"docs"},{"id":"querying/having","path":"/docs/27.0.0/querying/having","sidebar":"docs"},{"id":"querying/hll-old","path":"/docs/27.0.0/querying/hll-old"},{"id":"querying/joins","path":"/docs/27.0.0/querying/joins","sidebar":"docs"},{"id":"querying/limitspec","path":"/docs/27.0.0/querying/limitspec","sidebar":"docs"},{"id":"querying/lookups","path":"/docs/27.0.0/querying/lookups","sidebar":"docs"},{"id":"querying/math-expr","path":"/docs/27.0.0/querying/math-expr","sidebar":"docs"},{"id":"querying/multi-value-dimensions","path":"/docs/27.0.0/querying/multi-value-dimensions","sidebar":"docs"},{"id":"querying/multitenancy","path":"/docs/27.0.0/querying/multitenancy","sidebar":"docs"},{"id":"querying/nested-columns","path":"/docs/27.0.0/querying/nested-columns","sidebar":"docs"},{"id":"querying/post-aggregations","path":"/docs/27.0.0/querying/post-aggregations","sidebar":"docs"},{"id":"querying/query-context","path":"/docs/27.0.0/querying/query-context","sidebar":"docs"},{"id":"querying/query-deep-storage","path":"/docs/27.0.0/querying/query-deep-storage","sidebar":"docs"},{"id":"querying/query-execution","path":"/docs/27.0.0/querying/query-execution","sidebar":"docs"},{"id":"querying/querying","path":"/docs/27.0.0/querying/","sidebar":"docs"},{"id":"querying/scan-query","path":"/docs/27.0.0/querying/scan-query","sidebar":"docs"},{"id":"querying/searchquery","path":"/docs/27.0.0/querying/searchquery","sidebar":"docs"},{"id":"querying/segmentmetadataquery","path":"/docs/27.0.0/querying/segmentmetadataquery","sidebar":"docs"},{"id":"querying/select-query","path":"/docs/27.0.0/querying/select-query"},{"id":"querying/sorting-orders","path":"/docs/27.0.0/querying/sorting-orders","sidebar":"docs"},{"id":"querying/sql","path":"/docs/27.0.0/querying/sql","sidebar":"docs"},{"id":"querying/sql-aggregations","path":"/docs/27.0.0/querying/sql-aggregations","sidebar":"docs"},{"id":"querying/sql-array-functions","path":"/docs/27.0.0/querying/sql-array-functions","sidebar":"docs"},{"id":"querying/sql-data-types","path":"/docs/27.0.0/querying/sql-data-types","sidebar":"docs"},{"id":"querying/sql-functions","path":"/docs/27.0.0/querying/sql-functions","sidebar":"docs"},{"id":"querying/sql-json-functions","path":"/docs/27.0.0/querying/sql-json-functions","sidebar":"docs"},{"id":"querying/sql-metadata-tables","path":"/docs/27.0.0/querying/sql-metadata-tables","sidebar":"docs"},{"id":"querying/sql-multivalue-string-functions","path":"/docs/27.0.0/querying/sql-multivalue-string-functions","sidebar":"docs"},{"id":"querying/sql-operators","path":"/docs/27.0.0/querying/sql-operators","sidebar":"docs"},{"id":"querying/sql-query-context","path":"/docs/27.0.0/querying/sql-query-context","sidebar":"docs"},{"id":"querying/sql-scalar","path":"/docs/27.0.0/querying/sql-scalar","sidebar":"docs"},{"id":"querying/sql-translation","path":"/docs/27.0.0/querying/sql-translation","sidebar":"docs"},{"id":"querying/timeboundaryquery","path":"/docs/27.0.0/querying/timeboundaryquery","sidebar":"docs"},{"id":"querying/timeseriesquery","path":"/docs/27.0.0/querying/timeseriesquery","sidebar":"docs"},{"id":"querying/topnmetricspec","path":"/docs/27.0.0/querying/topnmetricspec","sidebar":"docs"},{"id":"querying/topnquery","path":"/docs/27.0.0/querying/topnquery","sidebar":"docs"},{"id":"querying/troubleshooting","path":"/docs/27.0.0/querying/troubleshooting","sidebar":"docs"},{"id":"querying/using-caching","path":"/docs/27.0.0/querying/using-caching","sidebar":"docs"},{"id":"querying/virtual-columns","path":"/docs/27.0.0/querying/virtual-columns","sidebar":"docs"},{"id":"tutorials/cluster","path":"/docs/27.0.0/tutorials/cluster","sidebar":"docs"},{"id":"tutorials/docker","path":"/docs/27.0.0/tutorials/docker","sidebar":"docs"},{"id":"tutorials/index","path":"/docs/27.0.0/tutorials/","sidebar":"docs"},{"id":"tutorials/tutorial-batch","path":"/docs/27.0.0/tutorials/tutorial-batch"},{"id":"tutorials/tutorial-batch-hadoop","path":"/docs/27.0.0/tutorials/tutorial-batch-hadoop","sidebar":"docs"},{"id":"tutorials/tutorial-batch-native","path":"/docs/27.0.0/tutorials/tutorial-batch-native"},{"id":"tutorials/tutorial-compaction","path":"/docs/27.0.0/tutorials/tutorial-compaction","sidebar":"docs"},{"id":"tutorials/tutorial-delete-data","path":"/docs/27.0.0/tutorials/tutorial-delete-data","sidebar":"docs"},{"id":"tutorials/tutorial-ingestion-spec","path":"/docs/27.0.0/tutorials/tutorial-ingestion-spec","sidebar":"docs"},{"id":"tutorials/tutorial-jdbc","path":"/docs/27.0.0/tutorials/tutorial-jdbc","sidebar":"docs"},{"id":"tutorials/tutorial-jupyter-docker","path":"/docs/27.0.0/tutorials/tutorial-jupyter-docker","sidebar":"docs"},{"id":"tutorials/tutorial-jupyter-index","path":"/docs/27.0.0/tutorials/tutorial-jupyter-index","sidebar":"docs"},{"id":"tutorials/tutorial-kafka","path":"/docs/27.0.0/tutorials/tutorial-kafka","sidebar":"docs"},{"id":"tutorials/tutorial-kerberos-hadoop","path":"/docs/27.0.0/tutorials/tutorial-kerberos-hadoop","sidebar":"docs"},{"id":"tutorials/tutorial-msq-convert-spec","path":"/docs/27.0.0/tutorials/tutorial-msq-convert-spec","sidebar":"docs"},{"id":"tutorials/tutorial-msq-extern","path":"/docs/27.0.0/tutorials/tutorial-msq-extern","sidebar":"docs"},{"id":"tutorials/tutorial-query","path":"/docs/27.0.0/tutorials/tutorial-query","sidebar":"docs"},{"id":"tutorials/tutorial-query-deep-storage","path":"/docs/27.0.0/tutorials/tutorial-query-deep-storage","sidebar":"docs"},{"id":"tutorials/tutorial-retention","path":"/docs/27.0.0/tutorials/tutorial-retention","sidebar":"docs"},{"id":"tutorials/tutorial-rollup","path":"/docs/27.0.0/tutorials/tutorial-rollup","sidebar":"docs"},{"id":"tutorials/tutorial-sketches-theta","path":"/docs/27.0.0/tutorials/tutorial-sketches-theta","sidebar":"docs"},{"id":"tutorials/tutorial-sql-query-view","path":"/docs/27.0.0/tutorials/tutorial-sql-query-view","sidebar":"docs"},{"id":"tutorials/tutorial-transform-spec","path":"/docs/27.0.0/tutorials/tutorial-transform-spec","sidebar":"docs"},{"id":"tutorials/tutorial-unnest-arrays","path":"/docs/27.0.0/tutorials/tutorial-unnest-arrays","sidebar":"docs"},{"id":"tutorials/tutorial-update-data","path":"/docs/27.0.0/tutorials/tutorial-update-data","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/27.0.0/design/","label":"design/index"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(57529);const c=JSON.parse('{"docusaurusVersion":"2.4.1","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.1"},"docusaurus-lunr-search":{"type":"package","name":"docusaurus-lunr-search","version":"2.3.2"}}}');var l={siteConfig:o.default,siteMetadata:c,globalData:a,i18n:i,codeTranslations:s},u=r.createContext(l);function d(e){var t=e.children;return r.createElement(u.Provider,{value:l},t)}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(94578),o=n(67294),a=n(10412),i=n(35742),s=n(18780),c=n(84173);function l(e){var t=e.error,n=e.tryAgain;return o.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},o.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),o.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),o.createElement(u,{error:t}))}function u(e){var t=e.error,n=(0,s.getErrorCausalChain)(t).map((function(e){return e.message})).join("\n\nCause:\n");return o.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function d(e){var t=e.error,n=e.tryAgain;return o.createElement(f,{fallback:function(){return o.createElement(l,{error:t,tryAgain:n})}},o.createElement(i.Z,null,o.createElement("title",null,"Page Error")),o.createElement(c.Z,null,o.createElement(l,{error:t,tryAgain:n})))}var p=function(e){return o.createElement(d,e)},f=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={error:null},n}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidCatch=function(e){a.Z.canUseDOM&&this.setState({error:e})},n.render=function(){var e=this,t=this.props.children,n=this.state.error;if(n){var r,o={error:n,tryAgain:function(){return e.setState({error:null})}};return(null!=(r=this.props.fallback)?r:p)(o)}return null!=t?t:null},t}(o.Component)},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document;const o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(70405);function a(e){return r.createElement(o.ql,e)}},39960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>b});var r=n(87462),o=n(63366),a=n(67294),i=n(73727),s=n(18780),c=n(52263),l=n(13919),u=n(10412),d=a.createContext({collectLink:function(){}}),p=function(){return(0,a.useContext)(d)};var f=n(44996),m=["isNavLink","to","href","activeClassName","isActive","data-noBrokenLinkCheck","autoAddBaseUrl"],h=function(e){return e.startsWith("/")};function g(e,t){var n,d,g=e.isNavLink,b=e.to,v=e.href,y=e.activeClassName,w=e.isActive,k=e["data-noBrokenLinkCheck"],x=e.autoAddBaseUrl,E=void 0===x||x,_=(0,o.Z)(e,m),S=(0,c.Z)().siteConfig,C=S.trailingSlash,T=S.baseUrl,q=(0,f.C)().withBaseUrl,A=p(),L=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(function(){return L.current}));var R=b||v;var N,P=(0,l.Z)(R),O=null==R?void 0:R.replace("pathname://",""),I=void 0!==O?(N=O,E&&h(N)?q(N):N):void 0;I&&P&&(I=(0,s.applyTrailingSlash)(I,{trailingSlash:C,baseUrl:T}));var D=(0,a.useRef)(!1),M=g?i.OL:i.rU,j=u.Z.canUseIntersectionObserver,F=(0,a.useRef)(),B=function(){D.current||null==I||(window.docusaurus.preload(I),D.current=!0)};(0,a.useEffect)((function(){return!j&&P&&null!=I&&window.docusaurus.prefetch(I),function(){j&&F.current&&F.current.disconnect()}}),[F,I,j,P]);var z=null!=(n=null==(d=I)?void 0:d.startsWith("#"))&&n,U=!I||!P||z;return U||k||A.collectLink(I),U?a.createElement("a",(0,r.Z)({ref:L,href:I},R&&!P&&{target:"_blank",rel:"noopener noreferrer"},_)):a.createElement(M,(0,r.Z)({},_,{onMouseEnter:B,onTouchStart:B,innerRef:function(e){L.current=e,j&&e&&P&&(F.current=new window.IntersectionObserver((function(t){t.forEach((function(t){e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(F.current.unobserve(e),F.current.disconnect(),null!=I&&window.docusaurus.prefetch(I))}))})),F.current.observe(e))},to:I},g&&{isActive:w,activeClassName:y}))}const b=a.forwardRef(g)},95999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>s});var r=n(67294);function o(e,t){var n=e.split(/(\{\w+\})/).map((function(e,n){if(n%2==1){var r=null==t?void 0:t[e.slice(1,-1)];if(void 0!==r)return r}return e}));return n.some((function(e){return(0,r.isValidElement)(e)}))?n.map((function(e,t){return(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e})).filter((function(e){return""!==e})):n.join("")}var a=n(57529);function i(e){var t,n,r=e.id,o=e.message;if(void 0===r&&void 0===o)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=a[null!=r?r:o])?n:o)?t:r}function s(e,t){return o(i({message:e.message,id:e.id}),t)}function c(e){var t=e.children,n=e.id,a=e.values;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");var s=i({message:t,id:n});return r.createElement(r.Fragment,null,o(s,a))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});var r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},44996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(67294),o=n(52263),a=n(13919);function i(){var e=(0,o.Z)().siteConfig,t=e.baseUrl,n=e.url,i=(0,r.useCallback)((function(e,r){return function(e,t,n,r){var o=void 0===r?{}:r,i=o.forcePrependBaseUrl,s=void 0!==i&&i,c=o.absolute,l=void 0!==c&&c;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(s)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;var u=n.startsWith(t)?n:t+n.replace(/^\//,"");return l?e+u:u}(n,t,e,r)}),[n,t]);return{withBaseUrl:i}}function s(e,t){return void 0===t&&(t={}),(0,i().withBaseUrl)(e,t)}},52263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(58940);function a(){return(0,r.useContext)(o._)}},28084:(e,t,n)=>{"use strict";n.d(t,{OD:()=>a,eZ:()=>i});var r=n(52263),o=n(29935);function a(e,t){void 0===t&&(t={});var n=(0,r.Z)().globalData[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}function i(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});var r=a(e),i=null==r?void 0:r[t];if(!i&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return i}},72389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(98934);function a(){return(0,r.useContext)(o._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(e){return"object"==typeof e&&!!e&&Object.keys(e).length>0};function o(e){var t=".",n={};return function e(o,a){Object.entries(o).forEach((function(o){var i=o[0],s=o[1],c=a?""+a+t+i:i;r(s)?e(s,c):n[c]=s}))}(e),n}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>a});var r=n(67294),o=r.createContext(null);function a(e){var t=e.children,n=e.value,a=r.useContext(o),i=(0,r.useMemo)((function(){return function(e){var t=e.parent,n=e.value;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}var r=Object.assign({},t.data,null==n?void 0:n.data);return{plugin:t.plugin,data:r}}({parent:a,value:n})}),[a,n]);return r.createElement(o.Provider,{value:i},t)}},94104:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>f,gA:()=>u,_r:()=>c,Jo:()=>m,zh:()=>l,yW:()=>p,gB:()=>d});var r=n(16550),o=n(28084);var a=function(e){return e.versions.find((function(e){return e.isLast}))};function i(e,t){var n,o,i=function(e,t){var n=a(e);return[].concat(e.versions.filter((function(e){return e!==n})),[n]).find((function(e){return!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})}))}(e,t),s=null==i?void 0:i.docs.find((function(e){return!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:i,activeDoc:s,alternateDocVersions:s?(n=s.id,o={},e.versions.forEach((function(e){e.docs.forEach((function(t){t.id===n&&(o[e.name]=t)}))})),o):{}}}var s={},c=function(){var e;return null!=(e=(0,o.OD)("docusaurus-plugin-content-docs"))?e:s},l=function(e){return(0,o.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0})};function u(e){return void 0===e&&(e={}),function(e,t,n){void 0===n&&(n={});var o=Object.entries(e).sort((function(e,t){return t[1].path.localeCompare(e[1].path)})).find((function(e){var n=e[1];return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return a}(c(),(0,r.TH)().pathname,e)}function d(e){return l(e).versions}function p(e){var t=l(e);return a(t)}function f(e){return i(l(e),(0,r.TH)().pathname)}function m(e){return function(e,t){var n=a(e);return{latestDocSuggestion:i(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(l(e),(0,r.TH)().pathname)}},56657:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate:function(e){var t=e.location,n=e.previousLocation;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((function(){window.gtag("event","page_view",{page_title:document.title,page_location:window.location.href,page_path:t.pathname+t.search+t.hash})}))}}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(74865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate:function(e){var t=e.location,n=e.previousLocation;if(n&&t.pathname!==n.pathname){var r=window.setTimeout((function(){o().start()}),200);return function(){return window.clearTimeout(r)}}},onRouteDidUpdate:function(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r,o,a=n(87410),i=n(36809);r=a.Z,o=i.default.themeConfig.prism.additionalLanguages,globalThis.Prism=r,o.forEach((function(e){n(6726)("./prism-"+e)})),delete globalThis.Prism},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294);const o={iconExternalLink:"iconExternalLink_nPIU"};function a(e){var t=e.width,n=void 0===t?13.5:t,a=e.height,i=void 0===a?13.5:a;return r.createElement("svg",{width:n,height:i,"aria-hidden":"true",viewBox:"0 0 24 24",className:o.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},84173:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Ot});var r=n(67294),o=n(86010),a=n(44763),i=n(1944),s=n(87462),c=n(16550),l=n(95999),u=n(85936),d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){var e=(0,r.useRef)(null),t=(0,c.k6)().action,n=(0,r.useCallback)((function(e){e.preventDefault();var t,n=null!=(t=document.querySelector("main:first-of-type"))?t:document.getElementById(d);n&&p(n)}),[]);return(0,u.S)((function(n){var r=n.location;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}var m=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){var t,n=null!=(t=e.children)?t:m,o=f(),a=o.containerRef,i=o.onClick;return r.createElement("div",{ref:a,role:"region","aria-label":m},r.createElement("a",(0,s.Z)({},e,{href:"#"+d,onClick:i}),n))}var g=n(35281),b=n(19727);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(86668),k=n(59689),x=n(63366),E=["width","height","color","strokeWidth","className"];function _(e){var t=e.width,n=void 0===t?21:t,o=e.height,a=void 0===o?21:o,i=e.color,c=void 0===i?"currentColor":i,l=e.strokeWidth,u=void 0===l?1.2:l,d=(e.className,(0,x.Z)(e,E));return r.createElement("svg",(0,s.Z)({viewBox:"0 0 15 15",width:n,height:a},d),r.createElement("g",{stroke:c,strokeWidth:u},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S={closeButton:"closeButton_CVFx"};function C(e){return r.createElement("button",(0,s.Z)({type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.Z)("clean-btn close",S.closeButton,e.className)}),r.createElement(_,{width:14,height:14,strokeWidth:3.1}))}const T={content:"content_knG7"};function q(e){var t=(0,w.L)().announcementBar.content;return r.createElement("div",(0,s.Z)({},e,{className:(0,o.Z)(T.content,e.className),dangerouslySetInnerHTML:{__html:t}}))}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function L(){var e=(0,w.L)().announcementBar,t=(0,k.nT)(),n=t.isActive,o=t.close;if(!n)return null;var a=e.backgroundColor,i=e.textColor,s=e.isCloseable;return r.createElement("div",{className:A.announcementBar,style:{backgroundColor:a,color:i},role:"banner"},s&&r.createElement("div",{className:A.announcementBarPlaceholder}),r.createElement(q,{className:A.announcementBarContent}),s&&r.createElement(C,{onClick:o,className:A.announcementBarClose}))}var R=n(93163),N=n(12466);var P=n(69688),O=n(13102),I=r.createContext(null);function D(e){var t,n,o,a,i,s,c,l=e.children,u=(t=(0,R.e)(),n=(0,O.HY)(),o=(0,r.useState)(!1),a=o[0],i=o[1],s=null!==n.component,c=(0,P.D9)(s),(0,r.useEffect)((function(){s&&!c&&i(!0)}),[s,c]),(0,r.useEffect)((function(){s?t.shown||i(!0):i(!1)}),[t.shown,s]),(0,r.useMemo)((function(){return[a,i]}),[a]));return r.createElement(I.Provider,{value:u},l)}function M(e){if(e.component){var t=e.component;return r.createElement(t,e.props)}}function j(){var e=(0,r.useContext)(I);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");var t=e[0],n=e[1],o=(0,r.useCallback)((function(){return n(!1)}),[n]),a=(0,O.HY)();return(0,r.useMemo)((function(){return{shown:t,hide:o,content:M(a)}}),[o,a,t])}function F(e){var t=e.header,n=e.primaryMenu,a=e.secondaryMenu,i=j().shown;return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},a)))}var B=n(92949),z=n(72389);function U(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function Z(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function H(e){var t=e.className,n=e.buttonClassName,a=e.value,i=e.onChange,s=(0,z.Z)(),c=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===a?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,o.Z)($.toggle,t)},r.createElement("button",{className:(0,o.Z)("clean-btn",$.toggleButton,!s&&$.toggleButtonDisabled,n),type:"button",onClick:function(){return i("dark"===a?"light":"dark")},disabled:!s,title:c,"aria-label":c,"aria-live":"polite"},r.createElement(U,{className:(0,o.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(Z,{className:(0,o.Z)($.toggleIcon,$.darkToggleIcon)})))}const G=r.memo(H),V={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function W(e){var t=e.className,n=(0,w.L)().navbar.style,o=(0,w.L)().colorMode.disableSwitch,a=(0,B.I)(),i=a.colorMode,s=a.setColorMode;return o?null:r.createElement(G,{className:t,buttonClassName:"dark"===n?V.darkNavbarColorModeToggle:void 0,value:i,onChange:s})}var Y=n(21327);function K(){return r.createElement(Y.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function X(){var e=(0,R.e)();return r.createElement("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:function(){return e.toggle()}},r.createElement(_,{color:"var(--ifm-color-emphasis-600)"}))}function Q(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(K,null),r.createElement(W,{className:"margin-right--md"}),r.createElement(X,null))}var J=n(39960),ee=n(44996),te=n(13919);function ne(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var re=n(39471),oe=["activeBasePath","activeBaseRegex","to","href","label","html","isDropdownLink","prependBaseUrlToHref"];function ae(e){var t=e.activeBasePath,n=e.activeBaseRegex,o=e.to,a=e.href,i=e.label,c=e.html,l=e.isDropdownLink,u=e.prependBaseUrlToHref,d=(0,x.Z)(e,oe),p=(0,ee.Z)(o),f=(0,ee.Z)(t),m=(0,ee.Z)(a,{forcePrependBaseUrl:!0}),h=i&&a&&!(0,te.Z)(a),g=c?{dangerouslySetInnerHTML:{__html:c}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(re.Z,l&&{width:12,height:12}))};return a?r.createElement(J.Z,(0,s.Z)({href:u?m:a},d,g)):r.createElement(J.Z,(0,s.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:function(e,t){return n?ne(n,t.pathname):t.pathname.startsWith(f)}},d,g))}var ie=["className","isDropdownItem"],se=["className","isDropdownItem"],ce=["mobile","position"];function le(e){var t=e.className,n=e.isDropdownItem,a=void 0!==n&&n,i=(0,x.Z)(e,ie),c=r.createElement(ae,(0,s.Z)({className:(0,o.Z)(a?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:a},i));return a?r.createElement("li",null,c):c}function ue(e){var t=e.className,n=(e.isDropdownItem,(0,x.Z)(e,se));return r.createElement("li",{className:"menu__list-item"},r.createElement(ae,(0,s.Z)({className:(0,o.Z)("menu__link",t)},n)))}function de(e){var t,n=e.mobile,o=void 0!==n&&n,a=(e.position,(0,x.Z)(e,ce)),i=o?ue:le;return r.createElement(i,(0,s.Z)({},a,{activeClassName:null!=(t=a.activeClassName)?t:o?"menu__link--active":"navbar__link--active"}))}var pe=n(86043),fe=n(48596),me=n(52263);var he=["items","position","className","onClick"],ge=["items","className","position","onClick"],be=["mobile"];function ve(e,t){return e.some((function(e){return function(e,t){return!!(0,fe.Mg)(e.to,t)||!!ne(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)}))}function ye(e){var t,n=e.items,a=e.position,i=e.className,c=(e.onClick,(0,x.Z)(e,he)),l=(0,r.useRef)(null),u=(0,r.useState)(!1),d=u[0],p=u[1];return(0,r.useEffect)((function(){var e=function(e){l.current&&!l.current.contains(e.target)&&p(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),r.createElement("div",{ref:l,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===a,"dropdown--show":d})},r.createElement(ae,(0,s.Z)({"aria-haspopup":"true","aria-expanded":d,role:"button",href:c.to?void 0:"#",className:(0,o.Z)("navbar__link",i)},c,{onClick:c.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),p(!d))}}),null!=(t=c.children)?t:c.label),r.createElement("ul",{className:"dropdown__menu"},n.map((function(e,t){return r.createElement($e,(0,s.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))}))))}function we(e){var t,n,a=e.items,i=e.className,l=(e.position,e.onClick),u=(0,x.Z)(e,ge),d=(n=(0,me.Z)().siteConfig.baseUrl,(0,c.TH)().pathname.replace(n,"/")),p=ve(a,d),f=(0,pe.u)({initialState:function(){return!p}}),m=f.collapsed,h=f.toggleCollapsed,g=f.setCollapsed;return(0,r.useEffect)((function(){p&&g(!p)}),[d,p,g]),r.createElement("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":m})},r.createElement(ae,(0,s.Z)({role:"button",className:(0,o.Z)("menu__link menu__link--sublist menu__link--sublist-caret",i)},u,{onClick:function(e){e.preventDefault(),h()}}),null!=(t=u.children)?t:u.label),r.createElement(pe.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:m},a.map((function(e,t){return r.createElement($e,(0,s.Z)({mobile:!0,isDropdownItem:!0,onClick:l,activeClassName:"menu__link--active"},e,{key:t}))}))))}function ke(e){var t=e.mobile,n=void 0!==t&&t,o=(0,x.Z)(e,be),a=n?we:ye;return r.createElement(a,o)}var xe=n(94711),Ee=["width","height"];function _e(e){var t=e.width,n=void 0===t?20:t,o=e.height,a=void 0===o?20:o,i=(0,x.Z)(e,Ee);return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:n,height:a,"aria-hidden":!0},i),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const Se={iconLanguage:"iconLanguage_nlXk"};var Ce=["mobile","dropdownItemsBefore","dropdownItemsAfter"];var Te=n(94184),qe=n.n(Te),Ae=n(28084);const Le=function(e){var t=(0,r.useRef)(!1),o=(0,r.useRef)(null),a=(0,r.useState)(!1),i=a[0],s=a[1],l=(0,c.k6)(),u=(0,me.Z)().siteConfig,d=void 0===u?{}:u,p=(0,z.Z)(),f=d.baseUrl,m=(0,Ae.eZ)("docusaurus-lunr-search"),h=function(){t.current||(Promise.all([fetch(""+f+m.fileNames.searchDoc).then((function(e){return e.json()})),fetch(""+f+m.fileNames.lunrIndex).then((function(e){return e.json()})),Promise.all([n.e(4611),n.e(5684)]).then(n.bind(n,4734)),Promise.all([n.e(532),n.e(2572)]).then(n.bind(n,32572))]).then((function(e){var t=e[0],n=e[1],r=e[2].default;0!==t.length&&(!function(e,t,n){new n({searchDocs:e,searchIndex:t,baseUrl:f,inputSelector:"#search_input_react",handleSelected:function(e,t,n){var r=n.url||"/";document.createElement("a").href=r,l.push(r)}})}(t,n,r),s(!0))})),t.current=!0)},g=(0,r.useCallback)((function(t){o.current.contains(t.target)||o.current.focus(),e.handleSearchBarToggle&&e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return p&&h(),r.createElement("div",{className:"navbar__search",key:"search-box"},r.createElement("span",{"aria-label":"expand searchbar",role:"button",className:qe()("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:g,onKeyDown:g,tabIndex:0}),r.createElement("input",{id:"search_input_react",type:"search",placeholder:i?"Search":"Loading...","aria-label":"Search",className:qe()("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:h,onMouseOver:h,onFocus:g,onBlur:g,ref:o,disabled:!i}))},Re={searchBox:"searchBox_ZlJk"};function Ne(e){var t=e.children,n=e.className;return r.createElement("div",{className:(0,o.Z)(n,Re.searchBox)},t)}var Pe=n(94104),Oe=n(53791),Ie=["docId","label","docsPluginId"];var De=["sidebarId","label","docsPluginId"];var Me=["label","to","docsPluginId"],je=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};var Fe=n(60373),Be=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"],ze=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};const Ue={default:de,localeDropdown:function(e){var t=e.mobile,n=e.dropdownItemsBefore,o=e.dropdownItemsAfter,a=(0,x.Z)(e,Ce),i=(0,me.Z)().i18n,u=i.currentLocale,d=i.locales,p=i.localeConfigs,f=(0,xe.l)(),m=(0,c.TH)(),h=m.search,g=m.hash,b=d.map((function(e){var n=""+("pathname://"+f.createUrl({locale:e,fullyQualified:!1}))+h+g;return{label:p[e].label,lang:p[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===u?t?"menu__link--active":"dropdown__link--active":""}})),v=[].concat(n,b,o),y=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):p[u].label;return r.createElement(ke,(0,s.Z)({},a,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(_e,{className:Se.iconLanguage}),y),items:v}))},search:function(e){var t=e.mobile,n=e.className;return t?null:r.createElement(Ne,{className:n},r.createElement(Le,null))},dropdown:ke,html:function(e){var t=e.value,n=e.className,a=e.mobile,i=void 0!==a&&a,s=e.isDropdownItem,c=void 0!==s&&s,l=c?"li":"div";return r.createElement(l,{className:(0,o.Z)({navbar__item:!i&&!c,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){var t=e.docId,n=e.label,o=e.docsPluginId,a=(0,x.Z)(e,Ie),i=(0,Pe.Iw)(o).activeDoc,c=(0,Oe.vY)(t,o);return null===c?null:r.createElement(de,(0,s.Z)({exact:!0},a,{isActive:function(){return(null==i?void 0:i.path)===c.path||!(null==i||!i.sidebar)&&i.sidebar===c.sidebar},label:null!=n?n:c.id,to:c.path}))},docSidebar:function(e){var t=e.sidebarId,n=e.label,o=e.docsPluginId,a=(0,x.Z)(e,De),i=(0,Pe.Iw)(o).activeDoc,c=(0,Oe.oz)(t,o).link;if(!c)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return r.createElement(de,(0,s.Z)({exact:!0},a,{isActive:function(){return(null==i?void 0:i.sidebar)===t},label:null!=n?n:c.label,to:c.path}))},docsVersion:function(e){var t=e.label,n=e.to,o=e.docsPluginId,a=(0,x.Z)(e,Me),i=(0,Oe.lO)(o)[0],c=null!=t?t:i.label,l=null!=n?n:je(i).path;return r.createElement(de,(0,s.Z)({},a,{label:c,to:l}))},docsVersionDropdown:function(e){var t=e.mobile,n=e.docsPluginId,o=e.dropdownActiveClassDisabled,a=e.dropdownItemsBefore,i=e.dropdownItemsAfter,u=(0,x.Z)(e,Be),d=(0,c.TH)(),p=d.search,f=d.hash,m=(0,Pe.Iw)(n),h=(0,Pe.gB)(n),g=(0,Fe.J)(n).savePreferredVersionName,b=h.map((function(e){var t,n=null!=(t=m.alternateDocVersions[e.name])?t:ze(e);return{label:e.label,to:""+n.path+p+f,isActive:function(){return e===m.activeVersion},onClick:function(){return g(e.name)}}})),v=[].concat(a,b,i),y=(0,Oe.lO)(n)[0],w=t&&v.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):y.label,k=t&&v.length>1?void 0:ze(y).path;return v.length<=1?r.createElement(de,(0,s.Z)({},u,{mobile:t,label:w,to:k,isActive:o?function(){return!1}:void 0})):r.createElement(ke,(0,s.Z)({},u,{mobile:t,label:w,to:k,items:v,isActive:o?function(){return!1}:void 0}))}};var Ze=["type"];function $e(e){var t=e.type,n=(0,x.Z)(e,Ze),o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ue[o];if(!a)throw new Error('No NavbarItem component found for type "'+t+'".');return r.createElement(a,n)}function He(){var e=(0,R.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map((function(t,n){return r.createElement($e,(0,s.Z)({mobile:!0},t,{onClick:function(){return e.toggle()},key:n}))})))}function Ge(e){return r.createElement("button",(0,s.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ve(){var e=0===(0,w.L)().navbar.items.length,t=j();return r.createElement(r.Fragment,null,!e&&r.createElement(Ge,{onClick:function(){return t.hide()}}),t.content)}function We(){var e,t=(0,R.e)();return void 0===(e=t.shown)&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e]),t.shouldRender?r.createElement(F,{header:r.createElement(Q,null),primaryMenu:r.createElement(He,null),secondaryMenu:r.createElement(Ve,null)}):null}const Ye={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ke(e){return r.createElement("div",(0,s.Z)({role:"presentation"},e,{className:(0,o.Z)("navbar-sidebar__backdrop",e.className)}))}function Xe(e){var t=e.children,n=(0,w.L)().navbar,a=n.hideOnScroll,i=n.style,s=(0,R.e)(),c=function(e){var t=(0,r.useState)(e),n=t[0],o=t[1],a=(0,r.useRef)(!1),i=(0,r.useRef)(0),s=(0,r.useCallback)((function(e){null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,N.RF)((function(t,n){var r=t.scrollY;if(e)if(r<i.current)o(!0);else if(a.current)a.current=!1;else{var s=null==n?void 0:n.scrollY,c=document.documentElement.scrollHeight-i.current,l=window.innerHeight;s&&r>=s?o(!1):r+l<c&&o(!0)}})),(0,u.S)((function(t){if(e){var n=t.location.hash;if(n?document.getElementById(n.substring(1)):void 0)return a.current=!0,void o(!1);o(!0)}})),{navbarRef:s,isNavbarVisible:n}}(a),d=c.navbarRef,p=c.isNavbarVisible;return r.createElement("nav",{ref:d,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",a&&[Ye.navbarHideable,!p&&Ye.navbarHidden],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":s.shown})},t,r.createElement(Ke,{onClick:s.toggle}),r.createElement(We,null))}var Qe=n(94578),Je=n(18780);const et={errorBoundaryError:"errorBoundaryError_a6uf"};function tt(e){return r.createElement("button",(0,s.Z)({type:"button"},e),r.createElement(l.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function nt(e){var t=e.error,n=(0,Je.getErrorCausalChain)(t).map((function(e){return e.message})).join("\n\nCause:\n");return r.createElement("p",{className:et.errorBoundaryError},n)}var rt=function(e){function t(){return e.apply(this,arguments)||this}(0,Qe.Z)(t,e);var n=t.prototype;return n.componentDidCatch=function(e,t){throw this.props.onError(e,t)},n.render=function(){return this.props.children},t}(r.Component),ot="right";var at=["width","height","className"];function it(e){var t=e.width,n=void 0===t?30:t,o=e.height,a=void 0===o?30:o,i=e.className,c=(0,x.Z)(e,at);return r.createElement("svg",(0,s.Z)({className:i,width:n,height:a,viewBox:"0 0 30 30","aria-hidden":"true"},c),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function st(){var e=(0,R.e)(),t=e.toggle,n=e.shown;return r.createElement("button",{onClick:t,"aria-label":(0,l.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":n,className:"navbar__toggle clean-btn",type:"button"},r.createElement(it,null))}const ct={colorModeToggle:"colorModeToggle_DEke"};function lt(e){var t=e.items;return r.createElement(r.Fragment,null,t.map((function(e,t){return r.createElement(rt,{key:t,onError:function(t){return new Error("A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n"+JSON.stringify(e,null,2),{cause:t})}},r.createElement($e,e))})))}function ut(e){var t=e.left,n=e.right;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function dt(){var e=(0,R.e)(),t=(0,w.L)().navbar.items,n=function(e){function t(e){var t;return"left"===(null!=(t=e.position)?t:ot)}return[e.filter(t),e.filter((function(e){return!t(e)}))]}(t),o=n[0],a=n[1],i=t.find((function(e){return"search"===e.type}));return r.createElement(ut,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(st,null),r.createElement(K,null),r.createElement(lt,{items:o})),right:r.createElement(r.Fragment,null,r.createElement(lt,{items:a}),r.createElement(W,{className:ct.colorModeToggle}),!i&&r.createElement(Ne,null,r.createElement(Le,null)))})}function pt(){return r.createElement(Xe,null,r.createElement(dt,null))}var ft=["to","href","label","prependBaseUrlToHref"];function mt(e){var t=e.item,n=t.to,o=t.href,a=t.label,i=t.prependBaseUrlToHref,c=(0,x.Z)(t,ft),l=(0,ee.Z)(n),u=(0,ee.Z)(o,{forcePrependBaseUrl:!0});return r.createElement(J.Z,(0,s.Z)({className:"footer__link-item"},o?{href:i?u:o}:{to:l},c),a,o&&!(0,te.Z)(o)&&r.createElement(re.Z,null))}function ht(e){var t,n=e.item;return n.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:n.html}}):r.createElement("li",{key:null!=(t=n.href)?t:n.to,className:"footer__item"},r.createElement(mt,{item:n}))}function gt(e){var t=e.column;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map((function(e,t){return r.createElement(ht,{key:t,item:e})}))))}function bt(e){var t=e.columns;return r.createElement("div",{className:"row footer__links"},t.map((function(e,t){return r.createElement(gt,{key:t,column:e})})))}function vt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function yt(e){var t=e.item;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(mt,{item:t})}function wt(e){var t=e.links;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map((function(e,n){return r.createElement(r.Fragment,{key:n},r.createElement(yt,{item:e}),t.length!==n+1&&r.createElement(vt,null))}))))}function kt(e){var t=e.links;return function(e){return"title"in e[0]}(t)?r.createElement(bt,{columns:t}):r.createElement(wt,{links:t})}var xt=n(50941);const Et={footerLogoLink:"footerLogoLink_BH7S"};function _t(e){var t,n=e.logo,a=(0,ee.C)().withBaseUrl,i={light:a(n.src),dark:a(null!=(t=n.srcDark)?t:n.src)};return r.createElement(xt.Z,{className:(0,o.Z)("footer__logo",n.className),alt:n.alt,sources:i,width:n.width,height:n.height,style:n.style})}function St(e){var t=e.logo;return t.href?r.createElement(J.Z,{href:t.href,className:Et.footerLogoLink,target:t.target},r.createElement(_t,{logo:t})):r.createElement(_t,{logo:t})}function Ct(e){var t=e.copyright;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Tt(e){var t=e.style,n=e.links,a=e.logo,i=e.copyright;return r.createElement("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(a||i)&&r.createElement("div",{className:"footer__bottom text--center"},a&&r.createElement("div",{className:"margin-bottom--sm"},a),i)))}function qt(){var e=(0,w.L)().footer;if(!e)return null;var t=e.copyright,n=e.links,o=e.logo,a=e.style;return r.createElement(Tt,{style:a,links:n&&n.length>0&&r.createElement(kt,{links:n}),logo:o&&r.createElement(St,{logo:o}),copyright:t&&r.createElement(Ct,{copyright:t})})}const At=r.memo(qt);var Lt=(0,P.Qc)([B.S,k.pl,N.OC,Fe.L5,i.VC,function(e){var t=e.children;return r.createElement(O.n2,null,r.createElement(R.M,null,r.createElement(D,null,t)))}]);function Rt(e){var t=e.children;return r.createElement(Lt,null,t)}function Nt(e){var t=e.error,n=e.tryAgain;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(tt,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(nt,{error:t})))))}const Pt={mainWrapper:"mainWrapper_z2l0"};function Ot(e){var t=e.children,n=e.noFooter,s=e.wrapperClassName,c=e.title,l=e.description;return(0,b.t)(),r.createElement(Rt,null,r.createElement(i.d,{title:c,description:l}),r.createElement(y,null),r.createElement(L,null),r.createElement(pt,null),r.createElement("div",{id:d,className:(0,o.Z)(g.k.wrapper.main,Pt.mainWrapper,s)},r.createElement(a.Z,{fallback:function(e){return r.createElement(Nt,e)}},t)),!n&&r.createElement(At,null))}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(87462),o=n(63366),a=n(67294),i=n(39960),s=n(44996),c=n(52263),l=n(86668),u=n(50941),d=["imageClassName","titleClassName"];function p(e){var t=e.logo,n=e.alt,r=e.imageClassName,o={light:(0,s.Z)(t.src),dark:(0,s.Z)(t.srcDark||t.src)},i=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},i):i}function f(e){var t,n=(0,c.Z)().siteConfig.title,u=(0,l.L)().navbar,f=u.title,m=u.logo,h=e.imageClassName,g=e.titleClassName,b=(0,o.Z)(e,d),v=(0,s.Z)((null==m?void 0:m.href)||"/"),y=f?"":n,w=null!=(t=null==m?void 0:m.alt)?t:y;return a.createElement(i.Z,(0,r.Z)({to:v},b,(null==m?void 0:m.target)&&{target:m.target}),m&&a.createElement(p,{logo:m,alt:w,imageClassName:h}),null!=f&&a.createElement("b",{className:g},f))}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(35742);function a(e){var t=e.locale,n=e.version,a=e.tag,i=t;return r.createElement(o.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},50941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(87462),o=n(63366),a=n(67294),i=n(86010),s=n(72389),c=n(92949);const l={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};var u=["sources","className","alt"];function d(e){var t=(0,s.Z)(),n=(0,c.I)().colorMode,d=e.sources,p=e.className,f=e.alt,m=(0,o.Z)(e,u),h=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,h.map((function(e){return a.createElement("img",(0,r.Z)({key:e,src:d[e],alt:f,className:(0,i.Z)(l.themedImage,l["themedImage--"+e],p)},m))})))}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>d,z:()=>y});var r=n(87462),o=n(63366),a=n(67294),i=n(10412),s=n(91442),c=["collapsed"],l=["lazy"],u="ease-in-out";function d(e){var t=e.initialState,n=(0,a.useState)(null!=t&&t),r=n[0],o=n[1],i=(0,a.useCallback)((function(){o((function(e){return!e}))}),[]);return{collapsed:r,setCollapsed:o,toggleCollapsed:i}}var p={display:"none",overflow:"hidden",height:"0px"},f={display:"block",overflow:"visible",height:"auto"};function m(e,t){var n=t?p:f;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function h(e){var t=e.collapsibleRef,n=e.collapsed,r=e.animation,o=(0,a.useRef)(!1);(0,a.useEffect)((function(){var e,a=t.current;function i(){var e,t,n=a.scrollHeight,o=null!=(e=null==r?void 0:r.duration)?e:function(e){if((0,s.n)())return 1;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}(n);return{transition:"height "+o+"ms "+(null!=(t=null==r?void 0:r.easing)?t:u),height:n+"px"}}function c(){var e=i();a.style.transition=e.transition,a.style.height=e.height}if(!o.current)return m(a,n),void(o.current=!0);return a.style.willChange="height",e=requestAnimationFrame((function(){n?(c(),requestAnimationFrame((function(){a.style.height=p.height,a.style.overflow=p.overflow}))):(a.style.display="block",requestAnimationFrame((function(){c()})))})),function(){return cancelAnimationFrame(e)}}),[t,n,r])}function g(e){if(!i.Z.canUseDOM)return e?p:f}function b(e){var t=e.as,n=void 0===t?"div":t,r=e.collapsed,o=e.children,i=e.animation,s=e.onCollapseTransitionEnd,c=e.className,l=e.disableSSRStyle,u=(0,a.useRef)(null);return h({collapsibleRef:u,collapsed:r,animation:i}),a.createElement(n,{ref:u,style:l?void 0:g(r),onTransitionEnd:function(e){"height"===e.propertyName&&(m(u.current,r),null==s||s(r))},className:c},o)}function v(e){var t=e.collapsed,n=(0,o.Z)(e,c),i=(0,a.useState)(!t),s=i[0],l=i[1],u=(0,a.useState)(t),d=u[0],p=u[1];return(0,a.useLayoutEffect)((function(){t||l(!0)}),[t]),(0,a.useLayoutEffect)((function(){s&&p(t)}),[s,t]),s?a.createElement(b,(0,r.Z)({},n,{collapsed:d})):null}function y(e){var t=e.lazy,n=(0,o.Z)(e,l),r=t?v:b;return a.createElement(r,n)}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(67294),o=n(72389),a=n(50012),i=n(69688),s=n(86668),c=(0,a.WA)("docusaurus.announcement.dismiss"),l=(0,a.WA)("docusaurus.announcement.id"),u=function(){return"true"===c.get()},d=function(e){return c.set(String(e))},p=r.createContext(null);function f(e){var t=e.children,n=function(){var e=(0,s.L)().announcementBar,t=(0,o.Z)(),n=(0,r.useState)((function(){return!!t&&u()})),a=n[0],i=n[1];(0,r.useEffect)((function(){i(u())}),[]);var c=(0,r.useCallback)((function(){d(!0),i(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=l.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;l.set(t),r&&d(!1),!r&&u()||i(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!a,close:c}}),[e,a,c])}();return r.createElement(p.Provider,{value:n},t)}function m(){var e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(67294),o=n(10412),a=n(69688),i=n(50012),s=n(86668),c=r.createContext(void 0),l="theme",u=(0,i.WA)(l),d={light:"light",dark:"dark"},p=function(e){return e===d.dark?d.dark:d.light},f=function(e){return o.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e)},m=function(e){u.set(p(e))};function h(e){var t=e.children,n=function(){var e=(0,s.L)().colorMode,t=e.defaultMode,n=e.disableSwitch,o=e.respectPrefersColorScheme,a=(0,r.useState)(f(t)),i=a[0],c=a[1];(0,r.useEffect)((function(){n&&u.del()}),[n]);var h=(0,r.useCallback)((function(e,n){void 0===n&&(n={});var r=n.persist,a=void 0===r||r;e?(c(e),a&&m(e)):(c(o?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:t),u.del())}),[o,t]);(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",p(i))}),[i]),(0,r.useEffect)((function(){if(!n){var e=function(e){if(e.key===l){var t=u.get();null!==t&&h(p(t))}};return window.addEventListener("storage",e),function(){return window.removeEventListener("storage",e)}}}),[n,h]);var g=(0,r.useRef)(!1);return(0,r.useEffect)((function(){if(!n||o){var e=window.matchMedia("(prefers-color-scheme: dark)"),t=function(){window.matchMedia("print").matches||g.current?g.current=window.matchMedia("print").matches:h(null)};return e.addListener(t),function(){return e.removeListener(t)}}}),[h,n,o]),(0,r.useMemo)((function(){return{colorMode:i,setColorMode:h,get isDarkTheme(){return i===d.dark},setLightTheme:function(){h(d.light)},setDarkTheme:function(){h(d.dark)}}}),[i,h])}();return r.createElement(c.Provider,{value:n},t)}function g(){var e=(0,r.useContext)(c);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g});var r=n(67294),o=n(94104),a=n(29935),i=n(86668),s=n(53791),c=n(69688),l=n(50012),u=function(e){return"docs-preferred-version-"+e},d={save:function(e,t,n){(0,l.WA)(u(e),{persistence:t}).set(n)},read:function(e,t){return(0,l.WA)(u(e),{persistence:t}).get()},clear:function(e,t){(0,l.WA)(u(e),{persistence:t}).del()}},p=function(e){return Object.fromEntries(e.map((function(e){return[e,{preferredVersionName:null}]})))};var f=r.createContext(null);function m(){var e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((function(){return Object.keys(e)}),[e]),a=(0,r.useState)((function(){return p(n)})),s=a[0],c=a[1];return(0,r.useEffect)((function(){c(function(e){var t=e.pluginIds,n=e.versionPersistence,r=e.allDocsData;return Object.fromEntries(t.map((function(e){return[e,(t=e,o=d.read(t,n),r[t].versions.some((function(e){return e.name===o}))?{preferredVersionName:o}:(d.clear(t,n),{preferredVersionName:null}))];var t,o})))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]),[s,(0,r.useMemo)((function(){return{savePreferredVersion:function(e,n){d.save(e,t,n),c((function(t){var r;return Object.assign({},t,((r={})[e]={preferredVersionName:n},r))}))}}}),[t])]}function h(e){var t=e.children,n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){var t=e.children;return s.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){var e=(0,r.useContext)(f);if(!e)throw new c.i6("DocsPreferredVersionContextProvider");return e}function v(e){var t;void 0===e&&(e=a.m);var n=(0,o.zh)(e),i=b(),s=i[0],c=i[1],l=s[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===l})))?t:null,savePreferredVersionName:(0,r.useCallback)((function(t){c.savePreferredVersion(e,t)}),[c,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>s});var r=n(67294),o=n(69688),a=Symbol("EmptyContext"),i=r.createContext(a);function s(e){var t=e.children,n=e.name,o=e.items,a=(0,r.useMemo)((function(){return n&&o?{name:n,items:o}:null}),[n,o]);return r.createElement(i.Provider,{value:a},t)}function c(){var e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocsSidebarProvider");return e}},93163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>p});var r=n(67294),o=n(13102),a=n(87524),i=n(91980),s=n(86668),c=n(69688),l=r.createContext(void 0);function u(){var e,t=(e=(0,o.HY)(),0===(0,s.L)().navbar.items.length&&!e.component),n=(0,a.i)(),c=!t&&"mobile"===n,l=(0,r.useState)(!1),u=l[0],d=l[1];(0,i.Rb)((function(){if(u)return d(!1),!1}));var p=(0,r.useCallback)((function(){d((function(e){return!e}))}),[]);return(0,r.useEffect)((function(){"desktop"===n&&d(!1)}),[n]),(0,r.useMemo)((function(){return{disabled:t,shouldRender:c,toggle:p,shown:u}}),[t,c,p,u])}function d(e){var t=e.children,n=u();return r.createElement(l.Provider,{value:n},t)}function p(){var e=r.useContext(l);if(void 0===e)throw new c.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>c,n2:()=>i});var r=n(67294),o=n(69688),a=r.createContext(null);function i(e){var t=e.children,n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function s(){var e=(0,r.useContext)(a);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){var t=e.component,n=e.props,i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");var s=i[1],c=(0,o.Ql)(n);return(0,r.useEffect)((function(){s({component:t,props:c})}),[s,t,c]),(0,r.useEffect)((function(){return function(){return s({component:null,props:null})}}),[s]),null}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(67294),o="navigation-with-keyboard";function a(){(0,r.useEffect)((function(){function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),function(){document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>l});var r=n(67294),o=n(10412),a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){return o.Z.canUseDOM?window.innerWidth>i?a.desktop:a.mobile:a.ssr}var c=!1;function l(){var e=(0,r.useState)((function(){return c?"ssr":s()})),t=e[0],n=e[1];return(0,r.useEffect)((function(){function e(){n(s())}var t=c?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),function(){window.removeEventListener("resize",e),clearTimeout(t)}}),[]),t}},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});var r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:function(e){return"theme-admonition-"+e}},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:function(e){return"theme-doc-sidebar-item-category-level-"+e},docSidebarItemLinkLevel:function(e){return"theme-doc-sidebar-item-link-level-"+e}},blog:{}}},91442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},53791:(e,t,n)=>{"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function o(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Wl:()=>m,_F:()=>b,cE:()=>f,hI:()=>E,lO:()=>w,vY:()=>x,oz:()=>k,s1:()=>y});var a=n(67294),i=n(16550),s=n(18790),c=n(94104),l=n(60373),u=n(1116),d=n(67392),p=n(48596),f=!!c._r;function m(e){if(e.href)return e.href;for(var t,n=o(e.items);!(t=n()).done;){var r=t.value;if("link"===r.type)return r.href;if("category"===r.type){var a=m(r);if(a)return a}}}var h=function(e,t){return void 0!==e&&(0,p.Mg)(e,t)},g=function(e,t){return e.some((function(e){return b(e,t)}))};function b(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||g(e.items,t))}function v(e){var t=e.sidebarItems,n=e.pathname,r=e.onlyCategories,a=void 0!==r&&r,i=[];return function e(t){for(var r,s=o(t);!(r=s()).done;){var c=r.value;if("category"===c.type&&((0,p.Mg)(c.href,n)||e(c.items))||"link"===c.type&&(0,p.Mg)(c.href,n))return a&&"category"!==c.type||i.unshift(c),!0}return!1}(t),i}function y(){var e,t=(0,u.V)(),n=(0,i.TH)().pathname;return!1!==(null==(e=(0,c.gA)())?void 0:e.pluginData.breadcrumbs)&&t?v({sidebarItems:t.items,pathname:n}):null}function w(e){var t=(0,c.Iw)(e).activeVersion,n=(0,l.J)(e).preferredVersion,r=(0,c.yW)(e);return(0,a.useMemo)((function(){return(0,d.j)([t,n,r].filter(Boolean))}),[t,n,r])}function k(e,t){var n=w(t);return(0,a.useMemo)((function(){var t=n.flatMap((function(e){return e.sidebars?Object.entries(e.sidebars):[]})),r=t.find((function(t){return t[0]===e}));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((function(e){return e.name})).join(", ")+'".\nAvailable sidebar ids are:\n- '+t.map((function(e){return e[0]})).join("\n- "));return r[1]}),[e,n])}function x(e,t){var n=w(t);return(0,a.useMemo)((function(){var t=n.flatMap((function(e){return e.docs})),r=t.find((function(t){return t.id===e}));if(!r){if(n.flatMap((function(e){return e.draftIds})).includes(e))return null;throw new Error("Couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+' "'+n.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+(0,d.j)(t.map((function(e){return e.id}))).join("\n- "))}return r}),[e,n])}function E(e){var t=e.route,n=e.versionMetadata,r=(0,i.TH)(),o=t.routes,a=o.find((function(e){return(0,i.LX)(r.pathname,e)}));if(!a)return null;var c=a.sidebar,l=c?n.docsSidebars[c]:void 0;return{docElement:(0,s.H)(o),sidebarName:c,sidebarItems:l}}},91980:(e,t,n)=>{"use strict";n.d(t,{Rb:()=>s,_X:()=>c});var r=n(67294),o=n(16550),a=n(61688),i=n(69688);function s(e){!function(e){var t=(0,o.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((function(){return t.block((function(e,t){return n(e,t)}))}),[t,n])}((function(t,n){if("POP"===n)return e(t,n)}))}function c(e){return t=function(t){return null===e?null:new URLSearchParams(t.location.search).get(e)},n=(0,o.k6)(),(0,a.useSyncExternalStore)(n.listen,(function(){return t(n)}),(function(){return t(n)}));var t,n}},67392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=function(e,t){return e===t}),e.filter((function(n,r){return e.findIndex((function(e){return t(e,n)}))!==r}))}function o(e){return Array.from(new Set(e))}n.d(t,{j:()=>o,l:()=>r})},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>u,VC:()=>f});var r=n(67294),o=n(86010),a=n(35742),i=n(30226);function s(){var e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var c=n(44996),l=n(52263);function u(e){var t=e.title,n=e.description,o=e.keywords,i=e.image,s=e.children,u=function(e){var t=(0,l.Z)().siteConfig,n=t.title,r=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),d=(0,c.C)().withBaseUrl,p=i?d(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),s)}var d=r.createContext(void 0);function p(e){var t=e.className,n=e.children,i=r.useContext(d),s=(0,o.Z)(i,t);return r.createElement(d.Provider,{value:s},r.createElement(a.Z,null,r.createElement("html",{className:s})),n)}function f(e){var t=e.children,n=s(),a="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,""),i="plugin-id-"+n.plugin.id;return r.createElement(p,{className:(0,o.Z)(a,i)},t)}},69688:(e,t,n)=>{"use strict";n.d(t,{i6:()=>f,Qc:()=>h,zX:()=>d,D9:()=>p,Ql:()=>m});var r=n(26528),o=n(94578);function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}var i=n(89611);function s(e,t,n){return s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&(0,i.Z)(o,n.prototype),o},s.apply(null,arguments)}function c(e){var t="function"==typeof Map?new Map:void 0;return c=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return s(e,arguments,a(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),(0,i.Z)(r,e)},c(e)}var l=n(67294),u=n(10412).Z.canUseDOM?l.useLayoutEffect:l.useEffect;function d(e){var t=(0,l.useRef)(e);return u((function(){t.current=e}),[e]),(0,l.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function p(e){var t=(0,l.useRef)();return u((function(){t.current=e})),t.current}var f=function(e){function t(t,n){var o,a,i,s,c;return(c=e.call(this)||this).name="ReactContextError",c.message="Hook "+(null!=(o=null==(a=c.stack)||null==(i=a.split("\n")[1])||null==(s=i.match((0,r.Z)(/at (?:\w+\.)?(\w+)/,{name:1})))?void 0:s.groups.name)?o:"")+" is called outside the <"+t+">. "+(null!=n?n:""),c}return(0,o.Z)(t,e),t}(c(Error));function m(e){var t=Object.entries(e);return t.sort((function(e,t){return e[0].localeCompare(t[0])})),(0,l.useMemo)((function(){return e}),t.flat())}function h(e){return function(t){var n=t.children;return l.createElement(l.Fragment,null,e.reduceRight((function(e,t){return l.createElement(t,null,e)}),n))}}},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(67294),o=n(723),a=n(52263);function i(e,t){var n=function(e){var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}function s(){var e=(0,a.Z)().siteConfig.baseUrl;return(0,r.useMemo)((function(){return function(e){var t=e.baseUrl;function n(e){return e.path===t&&!0===e.exact}function r(e){return e.path===t&&!e.exact}return function e(t){if(0!==t.length)return t.find(n)||e(t.filter(r).flatMap((function(e){var t;return null!=(t=e.routes)?t:[]})))}(e.routes)}({routes:o.Z,baseUrl:e})}),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>c,RF:()=>d,o5:()=>p});var r=n(67294),o=n(10412),a=n(72389),i=n(69688);var s=r.createContext(void 0);function c(e){var t,n=e.children,o=(t=(0,r.useRef)(!0),(0,r.useMemo)((function(){return{scrollEventsEnabledRef:t,enableScrollEvents:function(){t.current=!0},disableScrollEvents:function(){t.current=!1}}}),[]));return r.createElement(s.Provider,{value:o},n)}function l(){var e=(0,r.useContext)(s);if(null==e)throw new i.i6("ScrollControllerProvider");return e}var u=function(){return o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null};function d(e,t){void 0===t&&(t=[]);var n=l().scrollEventsEnabledRef,o=(0,r.useRef)(u()),a=(0,i.zX)(e);(0,r.useEffect)((function(){var e=function(){if(n.current){var e=u();a(e,o.current),o.current=e}},t={passive:!0};return e(),window.addEventListener("scroll",e,t),function(){return window.removeEventListener("scroll",e,t)}}),[a,n].concat(t))}function p(){var e,t,n,o=l(),a=(e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((function(t){e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((function(){var t=e.current,n=t.elem,r=t.top;if(!n)return{restored:!1};var o=n.getBoundingClientRect().top-r;return o&&window.scrollBy({left:0,top:o}),e.current={elem:null,top:0},{restored:0!==o}}),[]),(0,r.useMemo)((function(){return{save:t,restore:n}}),[n,t])),i=(0,r.useRef)(void 0),s=(0,r.useCallback)((function(e){a.save(e),o.disableScrollEvents(),i.current=function(){var e=a.restore().restored;if(i.current=void 0,e){window.addEventListener("scroll",(function e(){o.enableScrollEvents(),window.removeEventListener("scroll",e)}))}else o.enableScrollEvents()}}),[o,a]);return(0,r.useLayoutEffect)((function(){queueMicrotask((function(){return null==i.current?void 0:i.current()}))})),{blockElementScrollPositionUntilNextRender:s}}function f(){var e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:function(n){e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),function(){}}(n):function(e){var t=null,n=document.documentElement.scrollTop>e;return function r(){var o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),function(){return t&&cancelAnimationFrame(t)}}(n)},cancelScroll:function(){return null==e.current?void 0:e.current()}}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>o});n(52263);var r="default";function o(e,t){return"docs-"+e+"-"+t}},50012:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>u});var r=n(67294),o=n(61688),a="localStorage";function i(e){var t=e.key,n=e.oldValue,r=e.newValue,o=e.storage;if(n!==r){var a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}}function s(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,c||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),c=!0),null}var t}var c=!1;var l={get:function(){return null},set:function(){},del:function(){},listen:function(){return function(){}}};function u(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:t,set:t,del:t,listen:t}}(e);var n=s(null==t?void 0:t.persistence);return null===n?l:{get:function(){try{return n.getItem(e)}catch(t){return console.error("Docusaurus storage error, can't get key="+e,t),null}},set:function(t){try{var r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(o){console.error("Docusaurus storage error, can't set "+e+"="+t,o)}},del:function(){try{var t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(r){console.error("Docusaurus storage error, can't delete key="+e,r)}},listen:function(t){try{var r=function(r){r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),function(){return window.removeEventListener("storage",r)}}catch(o){return console.error("Docusaurus storage error, can't listen for changes of key="+e,o),function(){}}}}}function d(e,t){var n=(0,r.useRef)((function(){return null===e?l:u(e,t)})).current(),a=(0,r.useCallback)((function(e){return"undefined"==typeof window?function(){}:n.listen(e)}),[n]);return[(0,o.useSyncExternalStore)(a,(function(){return"undefined"==typeof window?null:n.get()}),(function(){return null})),n]}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>a});var r=n(52263),o=n(16550);function a(){var e=(0,r.Z)(),t=e.siteConfig,n=t.baseUrl,a=t.url,i=e.i18n,s=i.defaultLocale,c=i.currentLocale,l=(0,o.TH)().pathname,u=c===s?n:n.replace("/"+c+"/","/"),d=l.replace(n,"");return{createUrl:function(e){var t=e.locale;return""+(e.fullyQualified?a:"")+function(e){return e===s?""+u:""+u+e+"/"}(t)+d}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(67294),o=n(16550),a=n(69688);function i(e){var t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((function(){n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(52263);function o(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=t.trailingSlash,r=t.baseUrl;if(e.startsWith("#"))return e;if(void 0===n)return e;var o,a=e.split(/[#?]/)[0],i="/"===a||a===r?a:(o=a,n?function(e){return e.endsWith("/")?e:e+"/"}(o):function(e){return e.endsWith("/")?e.slice(0,-1):e}(o));return e.replace(a,i)}},54143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t].concat(e(t.cause)):[t]}},18780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},94184:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var a=typeof n;if("string"===a||"number"===a)e.push(n);else if(Array.isArray(n)){if(n.length){var i=o.apply(null,n);i&&e.push(i)}}else if("object"===a){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){e.push(n.toString());continue}for(var s in n)r.call(n,s)&&n[s]&&e.push(s)}}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},86010:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}n.d(t,{Z:()=>o});const o=function(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}},99318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>q,Ep:()=>p});var r=n(87462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],s=e&&o(e),c=t&&o(t),l=s||c;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!l)for(;d--;d)i.unshift("..");!l||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(38776);function c(e){return"/"===e.charAt(0)?e:"/"+e}function l(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,l=i.forceRefresh,w=void 0!==l&&l,k=i.getUserConfirmation,x=void 0===k?g:k,E=i.keyLength,_=void 0===E?6:E,S=e.basename?d(c(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return S&&(a=u(a,S)),f(a,r,n)}function T(){return Math.random().toString(36).substr(2,_)}var q=m();function A(e){(0,r.Z)(z,e),z.length=n.length,q.notifyListeners(z.location,z.action)}function L(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||P(C(e.state))}function R(){P(C(y()))}var N=!1;function P(e){if(N)N=!1,A();else{q.confirmTransitionTo(e,"POP",x,(function(t){t?A({action:"POP",location:e}):function(e){var t=z.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(N=!0,M(o))}(e)}))}}var O=C(y()),I=[O.key];function D(e){return S+p(e)}function M(e){n.go(e)}var j=0;function F(e){1===(j+=e)&&1===e?(window.addEventListener(b,L),a&&window.addEventListener(v,R)):0===j&&(window.removeEventListener(b,L),a&&window.removeEventListener(v,R))}var B=!1;var z={length:n.length,action:"POP",location:O,createHref:D,push:function(e,t){var r="PUSH",a=f(e,t,T(),z.location);q.confirmTransitionTo(a,r,x,(function(e){if(e){var t=D(a),i=a.key,s=a.state;if(o)if(n.pushState({key:i,state:s},null,t),w)window.location.href=t;else{var c=I.indexOf(z.location.key),l=I.slice(0,c+1);l.push(a.key),I=l,A({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,T(),z.location);q.confirmTransitionTo(a,r,x,(function(e){if(e){var t=D(a),i=a.key,s=a.state;if(o)if(n.replaceState({key:i,state:s},null,t),w)window.location.replace(t);else{var c=I.indexOf(z.location.key);-1!==c&&(I[c]=a.key),A({action:r,location:a})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=q.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=q.appendListener(e);return F(1),function(){F(-1),t()}}};return z}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+l(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:l,decodePath:c},slash:{encodePath:c,decodePath:c}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function _(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function S(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?g:o,i=n.hashType,l=void 0===i?"slash":i,b=e.basename?d(c(e.basename)):"",v=x[l],y=v.encodePath,w=v.decodePath;function C(){var e=w(_());return b&&(e=u(e,b)),f(e)}var T=m();function q(e){(0,r.Z)(B,e),B.length=t.length,T.notifyListeners(B.location,B.action)}var A=!1,L=null;function R(){var e,t,n=_(),r=y(n);if(n!==r)S(r);else{var o=C(),i=B.location;if(!A&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(L===p(o))return;L=null,function(e){if(A)A=!1,q();else{var t="POP";T.confirmTransitionTo(e,t,a,(function(n){n?q({action:t,location:e}):function(e){var t=B.location,n=I.lastIndexOf(p(t));-1===n&&(n=0);var r=I.lastIndexOf(p(e));-1===r&&(r=0);var o=n-r;o&&(A=!0,D(o))}(e)}))}}(o)}}var N=_(),P=y(N);N!==P&&S(P);var O=C(),I=[p(O)];function D(e){t.go(e)}var M=0;function j(e){1===(M+=e)&&1===e?window.addEventListener(k,R):0===M&&window.removeEventListener(k,R)}var F=!1;var B={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);if(_()!==o){L=t,function(e){window.location.hash=e}(o);var a=I.lastIndexOf(p(B.location)),i=I.slice(0,a+1);i.push(t),I=i,q({action:n,location:r})}else q()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);_()!==o&&(L=t,S(o));var a=I.indexOf(p(B.location));-1!==a&&(I[a]=t),q({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return F||(j(1),F=!0),function(){return F&&(F=!1,j(-1)),t()}},listen:function(e){var t=T.appendListener(e);return j(1),function(){j(-1),t()}}};return B}function T(e,t,n){return Math.min(Math.max(e,t),n)}function q(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,s=void 0===i?0:i,c=t.keyLength,l=void 0===c?6:c,u=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,l)}var g=T(s,0,a.length-1),b=a.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(59864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function c(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=c(t),h=c(n),g=0;g<i.length;++g){var b=i[g];if(!(a[b]||r&&r[b]||h&&h[b]||s&&s[b])){var v=p(n,b);try{l(t,b,v)}catch(y){}}}}return t}},41143:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],u=0;(c=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},32497:(e,t,n)=>{"use strict";n.r(t)},37253:(e,t,n)=>{"use strict";n.r(t)},83128:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),l=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),c(l,i(e,u,d)),1===e?(c(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){c(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),l=document.querySelector(r.parent);return c(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function l(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;l(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);l(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var a,i,s=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),c=1;c<arguments.length;c++){for(var l in a=Object(arguments[c]))n.call(a,l)&&(s[l]=a[l]);if(t){i=t(a);for(var u=0;u<i.length;u++)r.call(a,i[u])&&(s[i[u]]=a[i[u]])}}return s}},14779:(e,t,n)=>{var r=n(96173);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=h&&null!=m&&m!==h,x="+"===y||"*"===y,E="?"===y||"*"===y,_=n[2]||u,S=b||v;r.push({name:g||a++,prefix:h||"",delimiter:_,optional:E,repeat:x,partial:k,asterisk:!!w,pattern:S?l(S):w?".*":"[^"+c(_)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",d(t)));return function(t,o){for(var a="",s=t||{},c=(o||{}).pretty?i:encodeURIComponent,l=0;l<e.length;l++){var u=e[l];if("string"!=typeof u){var d,p=s[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=c(p[f]),!n[l].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):c(p),!n[l].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function l(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",s=0;s<e.length;s++){var l=e[s];if("string"==typeof l)i+=c(l);else{var p=c(l.prefix),f="(?:"+l.pattern+")";t.push(l),l.repeat&&(f+="(?:"+p+f+")*"),i+=f=l.optional?l.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=c(n.delimiter||"/"),h=i.slice(-m.length)===m;return o||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=a?"$":o&&h?"":"(?="+m+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(f(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(a(e,n),t,n)}(e,t,n)}},96173:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},87410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var s in a)if(a.hasOwnProperty(s)){if(s==t)for(var c in n)n.hasOwnProperty(c)&&(i[c]=n[c]);n.hasOwnProperty(s)||(i[s]=a[s])}var l=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===l&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],o||s);var c=t[s],l=r.util.type(c);"Object"!==l||a[i(c)]?"Array"!==l||a[i(c)]||(a[i(c)]=!0,e(c,n,s,a)):(a[i(c)]=!0,e(c,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",a),a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new s;return c(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,s,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,x=s.next,E=u;x!==t.tail&&!(d&&E>=d.reach);E+=x.value.length,x=x.next){var _=x.value;if(t.length>e.length)return;if(!(_ instanceof o)){var S,C=1;if(v){if(!(S=a(k,E,e,b))||S.index>=e.length)break;var T=S.index,q=S.index+S[0].length,A=E;for(A+=x.value.length;T>=A;)A+=(x=x.next).value.length;if(E=A-=x.value.length,x.value instanceof o)continue;for(var L=x;L!==t.tail&&(A<q||"string"==typeof L.value);L=L.next)C++,A+=L.value.length;C--,_=e.slice(E,A),S.index-=E}else if(!(S=a(k,0,_,b)))continue;T=S.index;var R=S[0],N=_.slice(0,T),P=_.slice(T+R.length),O=E+_.length;d&&O>d.reach&&(d.reach=O);var I=x.prev;if(N&&(I=c(t,I,N),E+=N.length),l(t,I,C),x=c(t,I,new o(p,g?r.tokenize(R,g):R,y,R)),P&&c(t,x,P),C>1){var D={cause:p+","+m,reach:O};i(e,t,n,x.prev,E,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function l(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var s="";for(var c in a.attributes)s+=" "+c+'="'+(a.attributes[c]||"").replace(/"/g,"&quot;")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+s+">"+a.content+"</"+a.tag+">"},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&amp;/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.shell=e.languages.bash}(o),o.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o=t[n];if("code"===o.type){var a=o.content[1],i=o.content[3];if(a&&i&&"code-language"===a.type&&"code-block"===i.type&&"string"==typeof a.content){var s=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),c="language-"+(s=(/[a-z][\w-]*/i.exec(s)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,c]:i.alias.push(c):i.alias=[c]}}else e(o.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r],l=/language-(.+)/.exec(a);if(l){n=l[1];break}}var u,d=e.languages[n];if(d)t.content=e.highlight((u=t.content,u.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),c(n);var r=s[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),s={amp:"&",lt:"<",gt:">",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),o.length>0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var c=n;c<s;c++){var l=t[c];"variable"===l.type&&o.indexOf(l.content)>=0&&f(l,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))o++;else if(r.test(s)&&0===--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),o.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function c(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function l(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,c(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function u(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,u={},d=c(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=s(i++,r)););return u[n]=o,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[i],a="string"==typeof r?r:r.content,s=a.indexOf(o);if(-1!==s){++i;var c=a.substring(0,s),d=l(u[o]),f=a.substring(s+o.length),m=[];if(c&&m.push(c),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r<o;r++){var a=n[r];if("string"!=typeof a){var i=a.content;if(Array.isArray(i))if("template-string"===a.type){var s=i[1];if(3===i.length&&"string"!=typeof s&&"embedded-code"===s.type){var c=p(s),l=s.alias,d=Array.isArray(l)?l[0]:l,f=e.languages[d];if(!f)continue;i[1]=u(c,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(o),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];"RegExp"===e.util.type(a)&&(a=e.languages.javascript[o]={pattern:a});var i=a.inside||{};a.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(o),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},s=function(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;if("string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var c=i(o);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(c+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(c=i(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",c,null,c)}o.content&&"string"!=typeof o.content&&s(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var c=0;c<s.length&&!(o>=a.length);c++){var l=s[c];if("string"==typeof l||l.content&&"string"==typeof l.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof l?l:l.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof l?s.splice.apply(s,[c,1].concat(v)):l.content=v}}else l.content&&i(l.content)}return s}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(29901),o=n(39642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6726},16500:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var s={},c=e[r];if(c){function l(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in o(t,a),s[t]=!0,n[t])s[i]=!0}t(c.require,l),t(c.optional,l),t(c.modify,l)}n[r]=s,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,s){var c=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),l=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(c);i=i.map(l),s=(s||[]).map(l);var u=n(i),d=n(s);i.forEach((function e(n){var r=c[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(c),m=u;o(m);){for(var h in p={},m){var g=c[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,s={},c={};function l(e){if(e in s)return s[e];c[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=l(e);return delete c[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return s[e]=o}for(var u in n)l(u);var d=[];for(var p in c)d.push(s[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},92703:(e,t,n)=>{"use strict";var r=n(50414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),o=n(27418),a=n(63840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var s=new Set,c={};function l(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(c[e]=t,e=0;e<t.length;e++)s.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var o=b.hasOwnProperty(t)?b[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=60103,E=60106,_=60107,S=60108,C=60114,T=60109,q=60110,A=60112,L=60113,R=60120,N=60115,P=60116,O=60121,I=60128,D=60129,M=60130,j=60131;if("function"==typeof Symbol&&Symbol.for){var F=Symbol.for;x=F("react.element"),E=F("react.portal"),_=F("react.fragment"),S=F("react.strict_mode"),C=F("react.profiler"),T=F("react.provider"),q=F("react.context"),A=F("react.forward_ref"),L=F("react.suspense"),R=F("react.suspense_list"),N=F("react.memo"),P=F("react.lazy"),O=F("react.block"),F("react.scope"),I=F("react.opaque.id"),D=F("react.debug_trace_mode"),M=F("react.offscreen"),j=F("react.legacy_hidden")}var B,z="function"==typeof Symbol&&Symbol.iterator;function U(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=z&&e[z]||e["@@iterator"])?e:null}function Z(e){if(void 0===B)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);B=t&&t[1]||""}return"\n"+B+e}var $=!1;function H(e,t){if(!e||$)return"";$=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var o=c.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,s=a.length-1;1<=i&&0<=s&&o[i]!==a[s];)s--;for(;1<=i&&0<=s;i--,s--)if(o[i]!==a[s]){if(1!==i||1!==s)do{if(i--,0>--s||o[i]!==a[s])return"\n"+o[i].replace(" at new "," at ")}while(1<=i&&0<=s);break}}}finally{$=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Z(e):""}function G(e){switch(e.tag){case 5:return Z(e.type);case 16:return Z("Lazy");case 13:return Z("Suspense");case 19:return Z("SuspenseList");case 0:case 2:case 15:return e=H(e.type,!1);case 11:return e=H(e.type.render,!1);case 22:return e=H(e.type._render,!1);case 1:return e=H(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case _:return"Fragment";case E:return"Portal";case C:return"Profiler";case S:return"StrictMode";case L:return"Suspense";case R:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case q:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case A:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case N:return V(e.type);case O:return V(e._render);case P:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Y(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function K(e){e._valueTracker||(e._valueTracker=function(e){var t=Y(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Y(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Q(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function oe(e,t,n){"number"===t&&Q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ae(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ce(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function le(e,t){var n=W(t.value),r=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ue(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function pe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return he(e,t)}))}:he);function be(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ve={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var xe=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ee(e,t){if(t){if(xe[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function _e(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Se(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,qe=null;function Ae(e){if(e=no(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=oo(t),Ce(e.stateNode,e.type,t))}}function Le(e){Te?qe?qe.push(e):qe=[e]:Te=e}function Re(){if(Te){var e=Te,t=qe;if(qe=Te=null,Ae(e),t)for(e=0;e<t.length;e++)Ae(t[e])}}function Ne(e,t){return e(t)}function Pe(e,t,n,r,o){return e(t,n,r,o)}function Oe(){}var Ie=Ne,De=!1,Me=!1;function je(){null===Te&&null===qe||(Oe(),Re())}function Fe(e,t){var n=e.stateNode;if(null===n)return null;var r=oo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var Be=!1;if(d)try{var ze={};Object.defineProperty(ze,"passive",{get:function(){Be=!0}}),window.addEventListener("test",ze,ze),window.removeEventListener("test",ze,ze)}catch(he){Be=!1}function Ue(e,t,n,r,o,a,i,s,c){var l=Array.prototype.slice.call(arguments,3);try{t.apply(n,l)}catch(u){this.onError(u)}}var Ze=!1,$e=null,He=!1,Ge=null,Ve={onError:function(e){Ze=!0,$e=e}};function We(e,t,n,r,o,a,i,s,c){Ze=!1,$e=null,Ue.apply(Ve,arguments)}function Ye(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ke(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Ye(e)!==e)throw Error(i(188))}function Qe(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ye(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return Xe(o),e;if(a===r)return Xe(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var s=!1,c=o.child;c;){if(c===n){s=!0,n=o,r=a;break}if(c===r){s=!0,r=o,n=a;break}c=c.sibling}if(!s){for(c=a.child;c;){if(c===n){s=!0,n=a,r=o;break}if(c===r){s=!0,r=a,n=o;break}c=c.sibling}if(!s)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,ot=!1,at=[],it=null,st=null,ct=null,lt=new Map,ut=new Map,dt=[],pt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function ft(e,t,n,r,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":st=null;break;case"mouseover":case"mouseout":ct=null;break;case"pointerover":case"pointerout":lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ut.delete(t.pointerId)}}function ht(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e=ft(t,n,r,o,a),null!==t&&(null!==(t=no(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function gt(e){var t=to(e.target);if(null!==t){var n=Ye(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ke(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){a.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=no(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(ot=!1;0<at.length;){var e=at[0];if(null!==e.blockedOn){null!==(e=no(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&at.shift()}null!==it&&bt(it)&&(it=null),null!==st&&bt(st)&&(st=null),null!==ct&&bt(ct)&&(ct=null),lt.forEach(vt),ut.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<at.length){wt(at[0],e);for(var n=1;n<at.length;n++){var r=at[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==st&&wt(st,e),null!==ct&&wt(ct,e),lt.forEach(t),ut.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function xt(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Et={animationend:xt("Animation","AnimationEnd"),animationiteration:xt("Animation","AnimationIteration"),animationstart:xt("Animation","AnimationStart"),transitionend:xt("Transition","TransitionEnd")},_t={},St={};function Ct(e){if(_t[e])return _t[e];if(!Et[e])return e;var t,n=Et[e];for(t in n)if(n.hasOwnProperty(t)&&t in St)return _t[e]=n[t];return e}d&&(St=document.createElement("div").style,"AnimationEvent"in window||(delete Et.animationend.animation,delete Et.animationiteration.animation,delete Et.animationstart.animation),"TransitionEvent"in window||delete Et.transitionend.transition);var Tt=Ct("animationend"),qt=Ct("animationiteration"),At=Ct("animationstart"),Lt=Ct("transitionend"),Rt=new Map,Nt=new Map,Pt=["abort","abort",Tt,"animationEnd",qt,"animationIteration",At,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Lt,"transitionEnd","waiting","waiting"];function Ot(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),Nt.set(r,t),Rt.set(r,o),l(o,[r])}}(0,a.unstable_now)();var It=8;function Dt(e){if(0!=(1&e))return It=15,1;if(0!=(2&e))return It=14,2;if(0!=(4&e))return It=13,4;var t=24&e;return 0!==t?(It=12,t):0!=(32&e)?(It=11,32):0!==(t=192&e)?(It=10,t):0!=(256&e)?(It=9,256):0!==(t=3584&e)?(It=8,t):0!=(4096&e)?(It=7,4096):0!==(t=4186112&e)?(It=6,t):0!==(t=62914560&e)?(It=5,t):67108864&e?(It=4,67108864):0!=(134217728&e)?(It=3,134217728):0!==(t=805306368&e)?(It=2,t):0!=(1073741824&e)?(It=1,1073741824):(It=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return It=0;var r=0,o=0,a=e.expiredLanes,i=e.suspendedLanes,s=e.pingedLanes;if(0!==a)r=a,o=It=15;else if(0!==(a=134217727&n)){var c=a&~i;0!==c?(r=Dt(c),o=It):0!==(s&=a)&&(r=Dt(s),o=It)}else 0!==(a=n&~i)?(r=Dt(a),o=It):0!==s&&(r=Dt(s),o=It);if(0===r)return 0;if(r=n&((0>(r=31-Zt(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Dt(t),o<=It)return t;It=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-Zt(t)),r|=e[n],t&=~o;return r}function jt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Ft(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=Bt(24&~t))?Ft(10,t):e;case 10:return 0===(e=Bt(192&~t))?Ft(8,t):e;case 8:return 0===(e=Bt(3584&~t))&&(0===(e=Bt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=Bt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function Bt(e){return e&-e}function zt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ut(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Zt(t)]=n}var Zt=Math.clz32?Math.clz32:function(e){return 0===e?32:31-($t(e)/Ht|0)|0},$t=Math.log,Ht=Math.LN2;var Gt=a.unstable_UserBlockingPriority,Vt=a.unstable_runWithPriority,Wt=!0;function Yt(e,t,n,r){De||Oe();var o=Xt,a=De;De=!0;try{Pe(o,e,t,n,r)}finally{(De=a)||je()}}function Kt(e,t,n,r){Vt(Gt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var o;if(Wt)if((o=0==(4&t))&&0<at.length&&-1<pt.indexOf(e))e=ft(null,e,t,n,r),at.push(e);else{var a=Qt(e,t,n,r);if(null===a)o&&mt(e,r);else{if(o){if(-1<pt.indexOf(e))return e=ft(a,e,t,n,r),void at.push(e);if(function(e,t,n,r,o){switch(t){case"focusin":return it=ht(it,e,t,n,r,o),!0;case"dragenter":return st=ht(st,e,t,n,r,o),!0;case"mouseover":return ct=ht(ct,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return lt.set(a,ht(lt.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,ut.set(a,ht(ut.get(a)||null,e,t,n,r,o)),!0}return!1}(a,e,t,n,r))return;mt(e,r)}Or(e,t,r,null,n)}}}function Qt(e,t,n,r){var o=Se(r);if(null!==(o=to(o))){var a=Ye(o);if(null===a)o=null;else{var i=a.tag;if(13===i){if(null!==(o=Ke(a)))return o;o=null}else if(3===i){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null)}}return Or(e,t,r,o,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,o="value"in Jt?Jt.value:Jt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return tn=o.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function an(){return!1}function sn(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?on:an,this.isPropagationStopped=an,this}return o(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var cn,ln,un,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=sn(dn),fn=o({},dn,{view:0,detail:0}),mn=sn(fn),hn=o({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==un&&(un&&"mousemove"===e.type?(cn=e.screenX-un.screenX,ln=e.screenY-un.screenY):ln=cn=0,un=e),cn)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),gn=sn(hn),bn=sn(o({},hn,{dataTransfer:0})),vn=sn(o({},fn,{relatedTarget:0})),yn=sn(o({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=o({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=sn(wn),xn=sn(o({},dn,{data:0})),En={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},_n={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function Tn(){return Cn}var qn=o({},fn,{key:function(e){if(e.key){var t=En[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?_n[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),An=sn(qn),Ln=sn(o({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Rn=sn(o({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Nn=sn(o({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Pn=o({},hn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),On=sn(Pn),In=[9,13,27,32],Dn=d&&"CompositionEvent"in window,Mn=null;d&&"documentMode"in document&&(Mn=document.documentMode);var jn=d&&"TextEvent"in window&&!Mn,Fn=d&&(!Dn||Mn&&8<Mn&&11>=Mn),Bn=String.fromCharCode(32),zn=!1;function Un(e,t){switch(e){case"keyup":return-1!==In.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Zn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var $n=!1;var Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Gn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function Vn(e,t,n,r){Le(r),0<(t=Dr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Wn=null,Yn=null;function Kn(e){qr(e,0)}function Xn(e){if(X(ro(e)))return e}function Qn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Wn&&(Wn.detachEvent("onpropertychange",or),Yn=Wn=null)}function or(e){if("value"===e.propertyName&&Xn(Yn)){var t=[];if(Vn(t,Yn,e,Se(e)),e=Kn,De)e(t);else{De=!0;try{Ne(e,t)}finally{De=!1,je()}}}}function ar(e,t,n){"focusin"===e?(rr(),Yn=n,(Wn=t).attachEvent("onpropertychange",or)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Yn)}function sr(e,t){if("click"===e)return Xn(t)}function cr(e,t){if("input"===e||"change"===e)return Xn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},ur=Object.prototype.hasOwnProperty;function dr(e,t){if(lr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!ur.call(t,n[r])||!lr(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fr(e,t){var n,r=pr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=pr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=Q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Q((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function xr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==Q(r)||("selectionStart"in(r=vr)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=Dr(yr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}Ot("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Ot("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Ot(Pt,2);for(var Er="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),_r=0;_r<Er.length;_r++)Nt.set(Er[_r],0);u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Sr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Sr));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,s,c,l){if(We.apply(this,arguments),Ze){if(!Ze)throw Error(i(198));var u=$e;Ze=!1,$e=null,He||(He=!0,Ge=u)}}(r,t,void 0,e),e.currentTarget=null}function qr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&o.isPropagationStopped())break e;Tr(o,s,l),a=c}else for(i=0;i<r.length;i++){if(c=(s=r[i]).instance,l=s.currentTarget,s=s.listener,c!==a&&o.isPropagationStopped())break e;Tr(o,s,l),a=c}}}if(He)throw e=Ge,He=!1,Ge=null,e}function Ar(e,t){var n=ao(t),r=e+"__bubble";n.has(r)||(Pr(t,e,2,!1),n.add(r))}var Lr="_reactListening"+Math.random().toString(36).slice(2);function Rr(e){e[Lr]||(e[Lr]=!0,s.forEach((function(t){Cr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,a=n;if("selectionchange"===e&&9!==n.nodeType&&(a=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;o|=2,a=r}var i=ao(a),s=e+"__"+(t?"capture":"bubble");i.has(s)||(t&&(o|=4),Pr(a,e,o,t),i.add(s))}function Pr(e,t,n,r){var o=Nt.get(t);switch(void 0===o?2:o){case 0:o=Yt;break;case 1:o=Kt;break;default:o=Xt}n=o.bind(null,t,n,e),o=void 0,!Be||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Or(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===o||8===s.nodeType&&s.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var c=i.tag;if((3===c||4===c)&&((c=i.stateNode.containerInfo)===o||8===c.nodeType&&c.parentNode===o))return;i=i.return}for(;null!==s;){if(null===(i=to(s)))return;if(5===(c=i.tag)||6===c){r=a=i;continue e}s=s.parentNode}}r=r.return}!function(e,t,n){if(Me)return e(t,n);Me=!0;try{return Ie(e,t,n)}finally{Me=!1,je()}}((function(){var r=a,o=Se(n),i=[];e:{var s=Rt.get(e);if(void 0!==s){var c=pn,l=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":c=An;break;case"focusin":l="focus",c=vn;break;case"focusout":l="blur",c=vn;break;case"beforeblur":case"afterblur":c=vn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":c=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":c=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":c=Rn;break;case Tt:case qt:case At:c=yn;break;case Lt:c=Nn;break;case"scroll":c=mn;break;case"wheel":c=On;break;case"copy":case"cut":case"paste":c=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":c=Ln}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Fe(m,p))&&u.push(Ir(m,h,f)))),d)break;m=m.return}0<u.length&&(s=new c(s,l,null,n,o),i.push({event:s,listeners:u}))}}if(0==(7&t)){if(c="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(l=n.relatedTarget||n.fromElement)||!to(l)&&!l[Jr])&&(c||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,c?(c=r,null!==(l=(l=n.relatedTarget||n.toElement)?to(l):null)&&(l!==(d=Ye(l))||5!==l.tag&&6!==l.tag)&&(l=null)):(c=null,l=r),c!==l)){if(u=gn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=Ln,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==c?s:ro(c),f=null==l?s:ro(l),(s=new u(h,m+"leave",c,n,o)).target=d,s.relatedTarget=f,h=null,to(o)===r&&((u=new u(p,m+"enter",l,n,o)).target=f,u.relatedTarget=d,h=u),d=h,c&&l)e:{for(p=l,m=0,f=u=c;f;f=Mr(f))m++;for(f=0,h=p;h;h=Mr(h))f++;for(;0<m-f;)u=Mr(u),m--;for(;0<f-m;)p=Mr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Mr(u),p=Mr(p)}u=null}else u=null;null!==c&&jr(i,s,c,u,!1),null!==l&&null!==d&&jr(i,d,l,u,!0)}if("select"===(c=(s=r?ro(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===c&&"file"===s.type)var g=Qn;else if(Gn(s))if(Jn)g=cr;else{g=ir;var b=ar}else(c=s.nodeName)&&"input"===c.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=sr);switch(g&&(g=g(e,r))?Vn(i,g,n,o):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&oe(s,"number",s.value)),b=r?ro(r):window,e){case"focusin":(Gn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,xr(i,n,o);break;case"selectionchange":if(br)break;case"keydown":case"keyup":xr(i,n,o)}var v;if(Dn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else $n?Un(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Fn&&"ko"!==n.locale&&($n||"onCompositionStart"!==y?"onCompositionEnd"===y&&$n&&(v=nn()):(en="value"in(Jt=o)?Jt.value:Jt.textContent,$n=!0)),0<(b=Dr(r,y)).length&&(y=new xn(y,e,null,n,o),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=Zn(n))&&(y.data=v))),(v=jn?function(e,t){switch(e){case"compositionend":return Zn(t);case"keypress":return 32!==t.which?null:(zn=!0,Bn);case"textInput":return(e=t.data)===Bn&&zn?null:e;default:return null}}(e,n):function(e,t){if($n)return"compositionend"===e||!Dn&&Un(e,t)?(e=nn(),tn=en=Jt=null,$n=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Fn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Dr(r,"onBeforeInput")).length&&(o=new xn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=v))}qr(i,t)}))}function Ir(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Dr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Fe(e,n))&&r.unshift(Ir(e,a,o)),null!=(a=Fe(e,t))&&r.push(Ir(e,a,o))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function jr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(null!==c&&c===r)break;5===s.tag&&null!==l&&(s=l,o?null!=(c=Fe(n,a))&&i.unshift(Ir(n,c,s)):o||null!=(c=Fe(n,a))&&i.push(Ir(n,c,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Fr(){}var Br=null,zr=null;function Ur(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Zr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var $r="function"==typeof setTimeout?setTimeout:void 0,Hr="function"==typeof clearTimeout?clearTimeout:void 0;function Gr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Wr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Yr=0;var Kr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Kr,Qr="__reactProps$"+Kr,Jr="__reactContainer$"+Kr,eo="__reactEvents$"+Kr;function to(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Wr(e);null!==e;){if(n=e[Xr])return n;e=Wr(e)}return t}n=(e=n).parentNode}return null}function no(e){return!(e=e[Xr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ro(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function oo(e){return e[Qr]||null}function ao(e){var t=e[eo];return void 0===t&&(t=e[eo]=new Set),t}var io=[],so=-1;function co(e){return{current:e}}function lo(e){0>so||(e.current=io[so],io[so]=null,so--)}function uo(e,t){so++,io[so]=e.current,e.current=t}var po={},fo=co(po),mo=co(!1),ho=po;function go(e,t){var n=e.type.contextTypes;if(!n)return po;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function bo(e){return null!=(e=e.childContextTypes)}function vo(){lo(mo),lo(fo)}function yo(e,t,n){if(fo.current!==po)throw Error(i(168));uo(fo,t),uo(mo,n)}function wo(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(i(108,V(t)||"Unknown",a));return o({},n,r)}function ko(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||po,ho=fo.current,uo(fo,e),uo(mo,mo.current),!0}function xo(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=wo(e,t,ho),r.__reactInternalMemoizedMergedChildContext=e,lo(mo),lo(fo),uo(fo,e)):lo(mo),uo(mo,n)}var Eo=null,_o=null,So=a.unstable_runWithPriority,Co=a.unstable_scheduleCallback,To=a.unstable_cancelCallback,qo=a.unstable_shouldYield,Ao=a.unstable_requestPaint,Lo=a.unstable_now,Ro=a.unstable_getCurrentPriorityLevel,No=a.unstable_ImmediatePriority,Po=a.unstable_UserBlockingPriority,Oo=a.unstable_NormalPriority,Io=a.unstable_LowPriority,Do=a.unstable_IdlePriority,Mo={},jo=void 0!==Ao?Ao:function(){},Fo=null,Bo=null,zo=!1,Uo=Lo(),Zo=1e4>Uo?Lo:function(){return Lo()-Uo};function $o(){switch(Ro()){case No:return 99;case Po:return 98;case Oo:return 97;case Io:return 96;case Do:return 95;default:throw Error(i(332))}}function Ho(e){switch(e){case 99:return No;case 98:return Po;case 97:return Oo;case 96:return Io;case 95:return Do;default:throw Error(i(332))}}function Go(e,t){return e=Ho(e),So(e,t)}function Vo(e,t,n){return e=Ho(e),Co(e,t,n)}function Wo(){if(null!==Bo){var e=Bo;Bo=null,To(e)}Yo()}function Yo(){if(!zo&&null!==Fo){zo=!0;var e=0;try{var t=Fo;Go(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Fo=null}catch(n){throw null!==Fo&&(Fo=Fo.slice(e+1)),Co(No,Wo),n}finally{zo=!1}}}var Ko=k.ReactCurrentBatchConfig;function Xo(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Qo=co(null),Jo=null,ea=null,ta=null;function na(){ta=ea=Jo=null}function ra(e){var t=Qo.current;lo(Qo),e.type._context._currentValue=t}function oa(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function aa(e,t){Jo=e,ta=ea=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Di=!0),e.firstContext=null)}function ia(e,t){if(ta!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(ta=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ea){if(null===Jo)throw Error(i(308));ea=t,Jo.dependencies={lanes:0,firstContext:t,responders:null}}else ea=ea.next=t;return e._currentValue}var sa=!1;function ca(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function la(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ua(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function da(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function pa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fa(e,t,n,r){var a=e.updateQueue;sa=!1;var i=a.firstBaseUpdate,s=a.lastBaseUpdate,c=a.shared.pending;if(null!==c){a.shared.pending=null;var l=c,u=l.next;l.next=null,null===s?i=u:s.next=u,s=l;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==s&&(null===p?d.firstBaseUpdate=u:p.next=u,d.lastBaseUpdate=l)}}if(null!==i){for(p=a.baseState,s=0,d=u=l=null;;){c=i.lane;var f=i.eventTime;if((r&c)===c){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(c=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,c);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(c="function"==typeof(m=h.payload)?m.call(f,p,c):m))break e;p=o({},p,c);break e;case 2:sa=!0}}null!==i.callback&&(e.flags|=32,null===(c=a.effects)?a.effects=[i]:c.push(i))}else f={eventTime:f,lane:c,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(u=d=f,l=p):d=d.next=f,s|=c;if(null===(i=i.next)){if(null===(c=a.shared.pending))break;i=c.next,c.next=null,a.lastBaseUpdate=c,a.shared.pending=null}}null===d&&(l=p),a.baseState=l,a.firstBaseUpdate=u,a.lastBaseUpdate=d,zs|=s,e.lanes=s,e.memoizedState=p}}function ma(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(i(191,o));o.call(r)}}}var ha=(new r.Component).refs;function ga(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var ba={isMounted:function(e){return!!(e=e._reactInternals)&&Ye(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=pc(),o=fc(e),a=ua(r,o);a.payload=t,null!=n&&(a.callback=n),da(e,a),mc(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pc(),o=fc(e),a=ua(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),da(e,a),mc(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pc(),r=fc(e),o=ua(n,r);o.tag=2,null!=t&&(o.callback=t),da(e,o),mc(e,r,n)}};function va(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(o,a))}function ya(e,t,n){var r=!1,o=po,a=t.contextType;return"object"==typeof a&&null!==a?a=ia(a):(o=bo(t)?ho:fo.current,a=(r=null!=(r=t.contextTypes))?go(e,o):po),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=ba,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function wa(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&ba.enqueueReplaceState(t,t.state,null)}function ka(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=ha,ca(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=ia(a):(a=bo(t)?ho:fo.current,o.context=go(e,a)),fa(e,n,o,r),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(ga(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&ba.enqueueReplaceState(o,o.state,null),fa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var xa=Array.isArray;function Ea(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=r.refs;t===ha&&(t=r.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function _a(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Sa(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Gc(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function s(t){return e&&null===t.alternate&&(t.flags=2),t}function c(e,t,n,r){return null===t||6!==t.tag?((t=Kc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function l(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=Ea(e,t,n),r.return=e,r):((r=Vc(n.type,n.key,n.props,null,e.mode,r)).ref=Ea(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Xc(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Wc(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Kc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case x:return(n=Vc(t.type,t.key,t.props,null,e.mode,n)).ref=Ea(e,null,t),n.return=e,n;case E:return(t=Xc(t,e.mode,n)).return=e,t}if(xa(t)||U(t))return(t=Wc(t,e.mode,n,null)).return=e,t;_a(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:c(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case x:return n.key===o?n.type===_?d(e,t,n.props.children,r,o):l(e,t,n,r):null;case E:return n.key===o?u(e,t,n,r):null}if(xa(n)||U(n))return null!==o?null:d(e,t,n,r,null);_a(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return c(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case x:return e=e.get(null===r.key?n:r.key)||null,r.type===_?d(t,e,r.props.children,o,r.key):l(t,e,r,o);case E:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(xa(r)||U(r))return d(t,e=e.get(n)||null,r,o,null);_a(t,r)}return null}function h(o,i,s,c){for(var l=null,u=null,d=i,h=i=0,g=null;null!==d&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(o,d,s[h],c);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),i=a(b,i,h),null===u?l=b:u.sibling=b,u=b,d=g}if(h===s.length)return n(o,d),l;if(null===d){for(;h<s.length;h++)null!==(d=p(o,s[h],c))&&(i=a(d,i,h),null===u?l=d:u.sibling=d,u=d);return l}for(d=r(o,d);h<s.length;h++)null!==(g=m(d,o,h,s[h],c))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=a(g,i,h),null===u?l=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),l}function g(o,s,c,l){var u=U(c);if("function"!=typeof u)throw Error(i(150));if(null==(c=u.call(c)))throw Error(i(151));for(var d=u=null,h=s,g=s=0,b=null,v=c.next();null!==h&&!v.done;g++,v=c.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(o,h,v.value,l);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(o,h),s=a(y,s,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(o,h),u;if(null===h){for(;!v.done;g++,v=c.next())null!==(v=p(o,v.value,l))&&(s=a(v,s,g),null===d?u=v:d.sibling=v,d=v);return u}for(h=r(o,h);!v.done;g++,v=c.next())null!==(v=m(h,o,g,v.value,l))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),s=a(v,s,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(o,e)})),u}return function(e,r,a,c){var l="object"==typeof a&&null!==a&&a.type===_&&null===a.key;l&&(a=a.props.children);var u="object"==typeof a&&null!==a;if(u)switch(a.$$typeof){case x:e:{for(u=a.key,l=r;null!==l;){if(l.key===u){if(7===l.tag){if(a.type===_){n(e,l.sibling),(r=o(l,a.props.children)).return=e,e=r;break e}}else if(l.elementType===a.type){n(e,l.sibling),(r=o(l,a.props)).ref=Ea(e,l,a),r.return=e,e=r;break e}n(e,l);break}t(e,l),l=l.sibling}a.type===_?((r=Wc(a.props.children,e.mode,c,a.key)).return=e,e=r):((c=Vc(a.type,a.key,a.props,null,e.mode,c)).ref=Ea(e,r,a),c.return=e,e=c)}return s(e);case E:e:{for(l=a.key;null!==r;){if(r.key===l){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Xc(a,e.mode,c)).return=e,e=r}return s(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=Kc(a,e.mode,c)).return=e,e=r),s(e);if(xa(a))return h(e,r,a,c);if(U(a))return g(e,r,a,c);if(u&&_a(e,a),void 0===a&&!l)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Ca=Sa(!0),Ta=Sa(!1),qa={},Aa=co(qa),La=co(qa),Ra=co(qa);function Na(e){if(e===qa)throw Error(i(174));return e}function Pa(e,t){switch(uo(Ra,t),uo(La,e),uo(Aa,qa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}lo(Aa),uo(Aa,t)}function Oa(){lo(Aa),lo(La),lo(Ra)}function Ia(e){Na(Ra.current);var t=Na(Aa.current),n=fe(t,e.type);t!==n&&(uo(La,e),uo(Aa,n))}function Da(e){La.current===e&&(lo(Aa),lo(La))}var Ma=co(0);function ja(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Fa=null,Ba=null,za=!1;function Ua(e,t){var n=$c(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Za(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function $a(e){if(za){var t=Ba;if(t){var n=t;if(!Za(e,t)){if(!(t=Vr(n.nextSibling))||!Za(e,t))return e.flags=-1025&e.flags|2,za=!1,void(Fa=e);Ua(Fa,n)}Fa=e,Ba=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,za=!1,Fa=e}}function Ha(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Fa=e}function Ga(e){if(e!==Fa)return!1;if(!za)return Ha(e),za=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Zr(t,e.memoizedProps))for(t=Ba;t;)Ua(e,t),t=Vr(t.nextSibling);if(Ha(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){Ba=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}Ba=null}}else Ba=Fa?Vr(e.stateNode.nextSibling):null;return!0}function Va(){Ba=Fa=null,za=!1}var Wa=[];function Ya(){for(var e=0;e<Wa.length;e++)Wa[e]._workInProgressVersionPrimary=null;Wa.length=0}var Ka=k.ReactCurrentDispatcher,Xa=k.ReactCurrentBatchConfig,Qa=0,Ja=null,ei=null,ti=null,ni=!1,ri=!1;function oi(){throw Error(i(321))}function ai(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,o,a){if(Qa=a,Ja=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ka.current=null===e||null===e.memoizedState?Ni:Pi,e=n(r,o),ri){a=0;do{if(ri=!1,!(25>a))throw Error(i(301));a+=1,ti=ei=null,t.updateQueue=null,Ka.current=Oi,e=n(r,o)}while(ri)}if(Ka.current=Ri,t=null!==ei&&null!==ei.next,Qa=0,ti=ei=Ja=null,ni=!1,t)throw Error(i(300));return e}function si(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Ja.memoizedState=ti=e:ti=ti.next=e,ti}function ci(){if(null===ei){var e=Ja.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Ja.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Ja.memoizedState=ti=e:ti=ti.next=e}return ti}function li(e,t){return"function"==typeof t?t(e):t}function ui(e){var t=ci(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,o=r.baseQueue,a=n.pending;if(null!==a){if(null!==o){var s=o.next;o.next=a.next,a.next=s}r.baseQueue=o=a,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var c=s=a=null,l=o;do{var u=l.lane;if((Qa&u)===u)null!==c&&(c=c.next={lane:0,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null}),r=l.eagerReducer===e?l.eagerState:e(r,l.action);else{var d={lane:u,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null};null===c?(s=c=d,a=r):c=c.next=d,Ja.lanes|=u,zs|=u}l=l.next}while(null!==l&&l!==o);null===c?a=r:c.next=s,lr(r,t.memoizedState)||(Di=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=c,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=ci(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var s=o=o.next;do{a=e(a,s.action),s=s.next}while(s!==o);lr(a,t.memoizedState)||(Di=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===r:(e=e.mutableReadLanes,(e=(Qa&e)===e)&&(t._workInProgressVersionPrimary=r,Wa.push(t))),e)return n(t._source);throw Wa.push(t),Error(i(350))}function fi(e,t,n,r){var o=Ps;if(null===o)throw Error(i(349));var a=t._getVersion,s=a(t._source),c=Ka.current,l=c.useState((function(){return pi(o,t,n)})),u=l[1],d=l[0];l=ti;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=Ja;return e.memoizedState={refs:f,source:t,subscribe:r},c.useEffect((function(){f.getSnapshot=n,f.setSnapshot=u;var e=a(t._source);if(!lr(s,e)){e=n(t._source),lr(d,e)||(u(e),e=fc(g),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,i=e;0<i;){var c=31-Zt(i),l=1<<c;r[c]|=e,i&=~l}}}),[n,t,r]),c.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fc(g);o.mutableReadLanes|=r&o.pendingLanes}catch(a){n((function(){throw a}))}}))}),[t,r]),lr(m,n)&&lr(h,t)&&lr(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:li,lastRenderedState:d}).dispatch=u=Li.bind(null,Ja,e),l.queue=e,l.baseQueue=null,d=pi(o,t,n),l.memoizedState=l.baseState=d),d}function mi(e,t,n){return fi(ci(),e,t,n)}function hi(e){var t=si();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:li,lastRenderedState:e}).dispatch=Li.bind(null,Ja,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Ja.updateQueue)?(t={lastEffect:null},Ja.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function bi(e){return e={current:e},si().memoizedState=e}function vi(){return ci().memoizedState}function yi(e,t,n,r){var o=si();Ja.flags|=e,o.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var o=ci();r=void 0===r?null:r;var a=void 0;if(null!==ei){var i=ei.memoizedState;if(a=i.destroy,null!==r&&ai(r,i.deps))return void gi(t,n,a,r)}Ja.flags|=e,o.memoizedState=gi(1|t,n,a,r)}function ki(e,t){return yi(516,4,e,t)}function xi(e,t){return wi(516,4,e,t)}function Ei(e,t){return wi(4,2,e,t)}function _i(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Si(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,_i.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function qi(e,t){var n=ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ai(e,t){var n=$o();Go(98>n?98:n,(function(){e(!0)})),Go(97<n?97:n,(function(){var n=Xa.transition;Xa.transition=1;try{e(!1),t()}finally{Xa.transition=n}}))}function Li(e,t,n){var r=pc(),o=fc(e),a={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?a.next=a:(a.next=i.next,i.next=a),t.pending=a,i=e.alternate,e===Ja||null!==i&&i===Ja)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var s=t.lastRenderedState,c=i(s,n);if(a.eagerReducer=i,a.eagerState=c,lr(c,s))return}catch(l){}mc(e,o,r)}}var Ri={readContext:ia,useCallback:oi,useContext:oi,useEffect:oi,useImperativeHandle:oi,useLayoutEffect:oi,useMemo:oi,useReducer:oi,useRef:oi,useState:oi,useDebugValue:oi,useDeferredValue:oi,useTransition:oi,useMutableSource:oi,useOpaqueIdentifier:oi,unstable_isNewReconciler:!1},Ni={readContext:ia,useCallback:function(e,t){return si().memoizedState=[e,void 0===t?null:t],e},useContext:ia,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,_i.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=si();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=si();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Li.bind(null,Ja,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ci,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Ai.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=si();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fi(r,e,t,n)},useOpaqueIdentifier:function(){if(za){var e=!1,t=function(e){return{$$typeof:I,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Yr++).toString(36))),Error(i(355))})),n=hi(t)[1];return 0==(2&Ja.mode)&&(Ja.flags|=516,gi(5,(function(){n("r:"+(Yr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Yr++).toString(36)),t},unstable_isNewReconciler:!1},Pi={readContext:ia,useCallback:Ti,useContext:ia,useEffect:xi,useImperativeHandle:Si,useLayoutEffect:Ei,useMemo:qi,useReducer:ui,useRef:vi,useState:function(){return ui(li)},useDebugValue:Ci,useDeferredValue:function(e){var t=ui(li),n=t[0],r=t[1];return xi((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=ui(li)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ui(li)[0]},unstable_isNewReconciler:!1},Oi={readContext:ia,useCallback:Ti,useContext:ia,useEffect:xi,useImperativeHandle:Si,useLayoutEffect:Ei,useMemo:qi,useReducer:di,useRef:vi,useState:function(){return di(li)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(li),n=t[0],r=t[1];return xi((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=di(li)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(li)[0]},unstable_isNewReconciler:!1},Ii=k.ReactCurrentOwner,Di=!1;function Mi(e,t,n,r){t.child=null===e?Ta(t,null,n,r):Ca(t,e.child,n,r)}function ji(e,t,n,r,o){n=n.render;var a=t.ref;return aa(t,o),r=ii(e,t,n,r,a,o),null===e||Di?(t.flags|=1,Mi(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,as(e,t,o))}function Fi(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||Hc(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vc(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,Bi(e,t,i,r,o,a))}return i=e.child,0==(o&a)&&(o=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(o,r)&&e.ref===t.ref)?as(e,t,a):(t.flags|=1,(e=Gc(i,r)).ref=t.ref,e.return=t,t.child=e)}function Bi(e,t,n,r,o,a){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Di=!1,0==(a&o))return t.lanes=e.lanes,as(e,t,a);0!=(16384&e.flags)&&(Di=!0)}return Zi(e,t,n,r,a)}function zi(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},xc(t,n);else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},xc(t,e),null;t.memoizedState={baseLanes:0},xc(t,null!==a?a.baseLanes:n)}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,xc(t,r);return Mi(e,t,o,n),t.child}function Ui(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Zi(e,t,n,r,o){var a=bo(n)?ho:fo.current;return a=go(t,a),aa(t,o),n=ii(e,t,n,r,a,o),null===e||Di?(t.flags|=1,Mi(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,as(e,t,o))}function $i(e,t,n,r,o){if(bo(n)){var a=!0;ko(t)}else a=!1;if(aa(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),ya(t,n,r),ka(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var c=i.context,l=n.contextType;"object"==typeof l&&null!==l?l=ia(l):l=go(t,l=bo(n)?ho:fo.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||c!==l)&&wa(t,i,r,l),sa=!1;var p=t.memoizedState;i.state=p,fa(t,r,i,o),c=t.memoizedState,s!==r||p!==c||mo.current||sa?("function"==typeof u&&(ga(t,n,u,r),c=t.memoizedState),(s=sa||va(t,n,s,r,p,c,l))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=c),i.props=r,i.state=c,i.context=l,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,la(e,t),s=t.memoizedProps,l=t.type===t.elementType?s:Xo(t.type,s),i.props=l,d=t.pendingProps,p=i.context,"object"==typeof(c=n.contextType)&&null!==c?c=ia(c):c=go(t,c=bo(n)?ho:fo.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==c)&&wa(t,i,r,c),sa=!1,p=t.memoizedState,i.state=p,fa(t,r,i,o);var m=t.memoizedState;s!==d||p!==m||mo.current||sa?("function"==typeof f&&(ga(t,n,f,r),m=t.memoizedState),(l=sa||va(t,n,l,r,p,m,c))?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,c),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,c)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=c,r=l):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Hi(e,t,n,r,a,o)}function Hi(e,t,n,r,o,a){Ui(e,t);var i=0!=(64&t.flags);if(!r&&!i)return o&&xo(t,n,!1),as(e,t,a);r=t.stateNode,Ii.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ca(t,e.child,null,a),t.child=Ca(t,null,s,a)):Mi(e,t,s,a),t.memoizedState=r.state,o&&xo(t,n,!0),t.child}function Gi(e){var t=e.stateNode;t.pendingContext?yo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&yo(0,t.context,!1),Pa(e,t.containerInfo)}var Vi,Wi,Yi,Ki,Xi={dehydrated:null,retryLane:0};function Qi(e,t,n){var r,o=t.pendingProps,a=Ma.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&a)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(a|=1),uo(Ma,1&a),null===e?(void 0!==o.fallback&&$a(t),e=o.children,a=o.fallback,i?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof o.unstable_expectedLoadTime?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Yc({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(o=ts(e,t,o.children,o.fallback,n),i=t.child,a=e.child.memoizedState,i.memoizedState=null===a?{baseLanes:n}:{baseLanes:a.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,o):(n=es(e,t,o.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var o=e.mode,a=e.child;return t={mode:"hidden",children:t},0==(2&o)&&null!==a?(a.childLanes=0,a.pendingProps=t):a=Yc(t,o,0,null),n=Wc(n,o,r,null),a.return=e,n.return=e,a.sibling=n,e.child=a,n}function es(e,t,n,r){var o=e.child;return e=o.sibling,n=Gc(o,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function ts(e,t,n,r,o){var a=t.mode,i=e.child;e=i.sibling;var s={mode:"hidden",children:n};return 0==(2&a)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=s,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Gc(i,s),null!==e?r=Gc(e,r):(r=Wc(r,a,o,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function ns(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),oa(e.return,t)}function rs(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,lastEffect:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.lastEffect=a)}function os(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Ma.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ns(e,n);else if(19===e.tag)ns(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(uo(Ma,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ja(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),rs(t,!1,o,n,a,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===ja(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}rs(t,!0,n,null,a,t.lastEffect);break;case"together":rs(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function as(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),zs|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Gc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Gc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function is(e,t){if(!za)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ss(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return bo(t.type)&&vo(),null;case 3:return Oa(),lo(mo),lo(fo),Ya(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Ga(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Wi(t),null;case 5:Da(t);var a=Na(Ra.current);if(n=t.type,null!==e&&null!=t.stateNode)Yi(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Na(Aa.current),Ga(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[Xr]=t,r[Qr]=s,n){case"dialog":Ar("cancel",r),Ar("close",r);break;case"iframe":case"object":case"embed":Ar("load",r);break;case"video":case"audio":for(e=0;e<Sr.length;e++)Ar(Sr[e],r);break;case"source":Ar("error",r);break;case"img":case"image":case"link":Ar("error",r),Ar("load",r);break;case"details":Ar("toggle",r);break;case"input":ee(r,s),Ar("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!s.multiple},Ar("invalid",r);break;case"textarea":ce(r,s),Ar("invalid",r)}for(var l in Ee(n,s),e=null,s)s.hasOwnProperty(l)&&(a=s[l],"children"===l?"string"==typeof a?r.textContent!==a&&(e=["children",a]):"number"==typeof a&&r.textContent!==""+a&&(e=["children",""+a]):c.hasOwnProperty(l)&&null!=a&&"onScroll"===l&&Ar("scroll",r));switch(n){case"input":K(r),re(r,s,!0);break;case"textarea":K(r),ue(r);break;case"select":case"option":break;default:"function"==typeof s.onClick&&(r.onclick=Fr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(l=9===a.nodeType?a:a.ownerDocument,e===de.html&&(e=pe(n)),e===de.html?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[Xr]=t,e[Qr]=r,Vi(e,t,!1,!1),t.stateNode=e,l=_e(n,r),n){case"dialog":Ar("cancel",e),Ar("close",e),a=r;break;case"iframe":case"object":case"embed":Ar("load",e),a=r;break;case"video":case"audio":for(a=0;a<Sr.length;a++)Ar(Sr[a],e);a=r;break;case"source":Ar("error",e),a=r;break;case"img":case"image":case"link":Ar("error",e),Ar("load",e),a=r;break;case"details":Ar("toggle",e),a=r;break;case"input":ee(e,r),a=J(e,r),Ar("invalid",e);break;case"option":a=ae(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=o({},r,{value:void 0}),Ar("invalid",e);break;case"textarea":ce(e,r),a=se(e,r),Ar("invalid",e);break;default:a=r}Ee(n,a);var u=a;for(s in u)if(u.hasOwnProperty(s)){var d=u[s];"style"===s?ke(e,d):"dangerouslySetInnerHTML"===s?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===s?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(c.hasOwnProperty(s)?null!=d&&"onScroll"===s&&Ar("scroll",e):null!=d&&w(e,s,d,l))}switch(n){case"input":K(e),re(e,r,!1);break;case"textarea":K(e),ue(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(s=r.value)?ie(e,!!r.multiple,s,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Fr)}Ur(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Ki(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Na(Ra.current),Na(Aa.current),Ga(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return lo(Ma),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Ga(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Ma.current)?0===js&&(js=3):(0!==js&&3!==js||(js=4),null===Ps||0==(134217727&zs)&&0==(134217727&Us)||vc(Ps,Is))),(r||n)&&(t.flags|=4),null);case 4:return Oa(),Wi(t),null===e&&Rr(t.stateNode.containerInfo),null;case 10:return ra(t),null;case 19:if(lo(Ma),null===(r=t.memoizedState))return null;if(s=0!=(64&t.flags),null===(l=r.rendering))if(s)is(r,!1);else{if(0!==js||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(l=ja(e))){for(t.flags|=64,is(r,!1),null!==(s=l.updateQueue)&&(t.updateQueue=s,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(s=n).flags&=2,s.nextEffect=null,s.firstEffect=null,s.lastEffect=null,null===(l=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=l.childLanes,s.lanes=l.lanes,s.child=l.child,s.memoizedProps=l.memoizedProps,s.memoizedState=l.memoizedState,s.updateQueue=l.updateQueue,s.type=l.type,e=l.dependencies,s.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return uo(Ma,1&Ma.current|2),t.child}e=e.sibling}null!==r.tail&&Zo()>Gs&&(t.flags|=64,s=!0,is(r,!1),t.lanes=33554432)}else{if(!s)if(null!==(e=ja(l))){if(t.flags|=64,s=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),is(r,!0),null===r.tail&&"hidden"===r.tailMode&&!l.alternate&&!za)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Zo()-r.renderingStartTime>Gs&&1073741824!==n&&(t.flags|=64,s=!0,is(r,!1),t.lanes=33554432);r.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=r.last)?n.sibling=l:t.child=l,r.last=l)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Zo(),n.sibling=null,t=Ma.current,uo(Ma,s?1&t|2:1&t),n):null;case 23:case 24:return Ec(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function cs(e){switch(e.tag){case 1:bo(e.type)&&vo();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Oa(),lo(mo),lo(fo),Ya(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Da(e),null;case 13:return lo(Ma),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return lo(Ma),null;case 4:return Oa(),null;case 10:return ra(e),null;case 23:case 24:return Ec(),null;default:return null}}function ls(e,t){try{var n="",r=t;do{n+=G(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o}}function us(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Wi=function(){},Yi=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Na(Aa.current);var i,s=null;switch(n){case"input":a=J(e,a),r=J(e,r),s=[];break;case"option":a=ae(e,a),r=ae(e,r),s=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),s=[];break;case"textarea":a=se(e,a),r=se(e,r),s=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Fr)}for(d in Ee(n,r),n=null,a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&null!=a[d])if("style"===d){var l=a[d];for(i in l)l.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(c.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in r){var u=r[d];if(l=null!=a?a[d]:void 0,r.hasOwnProperty(d)&&u!==l&&(null!=u||null!=l))if("style"===d)if(l){for(i in l)!l.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in u)u.hasOwnProperty(i)&&l[i]!==u[i]&&(n||(n={}),n[i]=u[i])}else n||(s||(s=[]),s.push(d,n)),n=u;else"dangerouslySetInnerHTML"===d?(u=u?u.__html:void 0,l=l?l.__html:void 0,null!=u&&l!==u&&(s=s||[]).push(d,u)):"children"===d?"string"!=typeof u&&"number"!=typeof u||(s=s||[]).push(d,""+u):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(c.hasOwnProperty(d)?(null!=u&&"onScroll"===d&&Ar("scroll",e),s||l===u||(s=[])):"object"==typeof u&&null!==u&&u.$$typeof===I?u.toString():(s=s||[]).push(d,u))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}},Ki=function(e,t,n,r){n!==r&&(t.flags|=4)};var ds="function"==typeof WeakMap?WeakMap:Map;function ps(e,t,n){(n=ua(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Ks||(Ks=!0,Xs=r),us(0,t)},n}function fs(e,t,n){(n=ua(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return us(0,t),r(o)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Qs?Qs=new Set([this]):Qs.add(this),us(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ms="function"==typeof WeakSet?WeakSet:Set;function hs(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){Bc(e,n)}else t.current=null}function gs(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Xo(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Gr(t.stateNode.containerInfo))}throw Error(i(163))}function bs(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;r=o.next,0!=(4&(o=o.tag))&&0!=(1&o)&&(Mc(n,e),Dc(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Xo(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ma(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ma(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Ur(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vs(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,r.style.display=we("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function ys(e,t){if(_o&&"function"==typeof _o.onCommitFiberUnmount)try{_o.onCommitFiberUnmount(Eo,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,void 0!==o)if(0!=(4&r))Mc(t,n);else{r=t;try{o()}catch(a){Bc(r,a)}}n=n.next}while(n!==e)}break;case 1:if(hs(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){Bc(t,a)}break;case 5:hs(t);break;case 4:Ss(e,t)}}function ws(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function ks(e){return 5===e.tag||3===e.tag||4===e.tag}function xs(e){e:{for(var t=e.return;null!==t;){if(ks(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||ks(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?Es(e,n,t):_s(e,n,t)}function Es(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Fr));else if(4!==r&&null!==(e=e.child))for(Es(e,t,n),e=e.sibling;null!==e;)Es(e,t,n),e=e.sibling}function _s(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(_s(e,t,n),e=e.sibling;null!==e;)_s(e,t,n),e=e.sibling}function Ss(e,t){for(var n,r,o=t,a=!1;;){if(!a){a=o.return;e:for(;;){if(null===a)throw Error(i(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===o.tag||6===o.tag){e:for(var s=e,c=o,l=c;;)if(ys(s,l),null!==l.child&&4!==l.tag)l.child.return=l,l=l.child;else{if(l===c)break e;for(;null===l.sibling;){if(null===l.return||l.return===c)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}r?(s=n,c=o.stateNode,8===s.nodeType?s.parentNode.removeChild(c):s.removeChild(c)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,r=!0,o.child.return=o,o=o.child;continue}}else if(ys(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(a=!1)}o.sibling.return=o.return,o=o.sibling}}function Cs(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var o=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Qr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),_e(e,o),t=_e(e,r),o=0;o<a.length;o+=2){var s=a[o],c=a[o+1];"style"===s?ke(n,c):"dangerouslySetInnerHTML"===s?ge(n,c):"children"===s?be(n,c):w(n,s,c,t)}switch(e){case"input":ne(n,r);break;case"textarea":le(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(a=r.value)?ie(n,!!r.multiple,a,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Hs=Zo(),vs(t.child,!0)),void Ts(t);case 19:return void Ts(t);case 23:case 24:return void vs(t,null!==t.memoizedState)}throw Error(i(163))}function Ts(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ms),t.forEach((function(t){var r=Uc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function qs(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var As=Math.ceil,Ls=k.ReactCurrentDispatcher,Rs=k.ReactCurrentOwner,Ns=0,Ps=null,Os=null,Is=0,Ds=0,Ms=co(0),js=0,Fs=null,Bs=0,zs=0,Us=0,Zs=0,$s=null,Hs=0,Gs=1/0;function Vs(){Gs=Zo()+500}var Ws,Ys=null,Ks=!1,Xs=null,Qs=null,Js=!1,ec=null,tc=90,nc=[],rc=[],oc=null,ac=0,ic=null,sc=-1,cc=0,lc=0,uc=null,dc=!1;function pc(){return 0!=(48&Ns)?Zo():-1!==sc?sc:sc=Zo()}function fc(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===$o()?1:2;if(0===cc&&(cc=Bs),0!==Ko.transition){0!==lc&&(lc=null!==$s?$s.pendingLanes:0),e=cc;var t=4186112&~lc;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=$o(),0!=(4&Ns)&&98===e?e=Ft(12,cc):e=Ft(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),cc),e}function mc(e,t,n){if(50<ac)throw ac=0,ic=null,Error(i(185));if(null===(e=hc(e,t)))return null;Ut(e,t,n),e===Ps&&(Us|=t,4===js&&vc(e,Is));var r=$o();1===t?0!=(8&Ns)&&0==(48&Ns)?yc(e):(gc(e,n),0===Ns&&(Vs(),Wo())):(0==(4&Ns)||98!==r&&99!==r||(null===oc?oc=new Set([e]):oc.add(e)),gc(e,n)),$s=e}function hc(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gc(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,a=e.expirationTimes,s=e.pendingLanes;0<s;){var c=31-Zt(s),l=1<<c,u=a[c];if(-1===u){if(0==(l&r)||0!=(l&o)){u=t,Dt(l);var d=It;a[c]=10<=d?u+250:6<=d?u+5e3:-1}}else u<=t&&(e.expiredLanes|=l);s&=~l}if(r=Mt(e,e===Ps?Is:0),t=It,0===r)null!==n&&(n!==Mo&&To(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Mo&&To(n)}15===t?(n=yc.bind(null,e),null===Fo?(Fo=[n],Bo=Co(No,Yo)):Fo.push(n),n=Mo):14===t?n=Vo(99,yc.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Vo(n,bc.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bc(e){if(sc=-1,lc=cc=0,0!=(48&Ns))throw Error(i(327));var t=e.callbackNode;if(Ic()&&e.callbackNode!==t)return null;var n=Mt(e,e===Ps?Is:0);if(0===n)return null;var r=n,o=Ns;Ns|=16;var a=Cc();for(Ps===e&&Is===r||(Vs(),_c(e,r));;)try{Ac();break}catch(c){Sc(e,c)}if(na(),Ls.current=a,Ns=o,null!==Os?r=0:(Ps=null,Is=0,r=js),0!=(Bs&Us))_c(e,0);else if(0!==r){if(2===r&&(Ns|=64,e.hydrate&&(e.hydrate=!1,Gr(e.containerInfo)),0!==(n=jt(e))&&(r=Tc(e,n))),1===r)throw t=Fs,_c(e,0),vc(e,n),gc(e,Zo()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Nc(e);break;case 3:if(vc(e,n),(62914560&n)===n&&10<(r=Hs+500-Zo())){if(0!==Mt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){pc(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=$r(Nc.bind(null,e),r);break}Nc(e);break;case 4:if(vc(e,n),(4186112&n)===n)break;for(r=e.eventTimes,o=-1;0<n;){var s=31-Zt(n);a=1<<s,(s=r[s])>o&&(o=s),n&=~a}if(n=o,10<(n=(120>(n=Zo()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*As(n/1960))-n)){e.timeoutHandle=$r(Nc.bind(null,e),n);break}Nc(e);break;default:throw Error(i(329))}}return gc(e,Zo()),e.callbackNode===t?bc.bind(null,e):null}function vc(e,t){for(t&=~Zs,t&=~Us,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Zt(t),r=1<<n;e[n]=-1,t&=~r}}function yc(e){if(0!=(48&Ns))throw Error(i(327));if(Ic(),e===Ps&&0!=(e.expiredLanes&Is)){var t=Is,n=Tc(e,t);0!=(Bs&Us)&&(n=Tc(e,t=Mt(e,t)))}else n=Tc(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(Ns|=64,e.hydrate&&(e.hydrate=!1,Gr(e.containerInfo)),0!==(t=jt(e))&&(n=Tc(e,t))),1===n)throw n=Fs,_c(e,0),vc(e,t),gc(e,Zo()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Nc(e),gc(e,Zo()),null}function wc(e,t){var n=Ns;Ns|=1;try{return e(t)}finally{0===(Ns=n)&&(Vs(),Wo())}}function kc(e,t){var n=Ns;Ns&=-2,Ns|=8;try{return e(t)}finally{0===(Ns=n)&&(Vs(),Wo())}}function xc(e,t){uo(Ms,Ds),Ds|=t,Bs|=t}function Ec(){Ds=Ms.current,lo(Ms)}function _c(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Hr(n)),null!==Os)for(n=Os.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&vo();break;case 3:Oa(),lo(mo),lo(fo),Ya();break;case 5:Da(r);break;case 4:Oa();break;case 13:case 19:lo(Ma);break;case 10:ra(r);break;case 23:case 24:Ec()}n=n.return}Ps=e,Os=Gc(e.current,null),Is=Ds=Bs=t,js=0,Fs=null,Zs=Us=zs=0}function Sc(e,t){for(;;){var n=Os;try{if(na(),Ka.current=Ri,ni){for(var r=Ja.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ni=!1}if(Qa=0,ti=ei=Ja=null,ri=!1,Rs.current=null,null===n||null===n.return){js=1,Fs=t,Os=null;break}e:{var a=e,i=n.return,s=n,c=t;if(t=Is,s.flags|=2048,s.firstEffect=s.lastEffect=null,null!==c&&"object"==typeof c&&"function"==typeof c.then){var l=c;if(0==(2&s.mode)){var u=s.alternate;u?(s.updateQueue=u.updateQueue,s.memoizedState=u.memoizedState,s.lanes=u.lanes):(s.updateQueue=null,s.memoizedState=null)}var d=0!=(1&Ma.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(l),p.updateQueue=b}else g.add(l);if(0==(2&p.mode)){if(p.flags|=64,s.flags|=16384,s.flags&=-2981,1===s.tag)if(null===s.alternate)s.tag=17;else{var v=ua(-1,1);v.tag=2,da(s,v)}s.lanes|=1;break e}c=void 0,s=t;var y=a.pingCache;if(null===y?(y=a.pingCache=new ds,c=new Set,y.set(l,c)):void 0===(c=y.get(l))&&(c=new Set,y.set(l,c)),!c.has(s)){c.add(s);var w=zc.bind(null,a,l,s);l.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);c=Error((V(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==js&&(js=2),c=ls(c,s),p=i;do{switch(p.tag){case 3:a=c,p.flags|=4096,t&=-t,p.lanes|=t,pa(p,ps(0,a,t));break e;case 1:a=c;var k=p.type,x=p.stateNode;if(0==(64&p.flags)&&("function"==typeof k.getDerivedStateFromError||null!==x&&"function"==typeof x.componentDidCatch&&(null===Qs||!Qs.has(x)))){p.flags|=4096,t&=-t,p.lanes|=t,pa(p,fs(p,a,t));break e}}p=p.return}while(null!==p)}Rc(n)}catch(E){t=E,Os===n&&null!==n&&(Os=n=n.return);continue}break}}function Cc(){var e=Ls.current;return Ls.current=Ri,null===e?Ri:e}function Tc(e,t){var n=Ns;Ns|=16;var r=Cc();for(Ps===e&&Is===t||_c(e,t);;)try{qc();break}catch(o){Sc(e,o)}if(na(),Ns=n,Ls.current=r,null!==Os)throw Error(i(261));return Ps=null,Is=0,js}function qc(){for(;null!==Os;)Lc(Os)}function Ac(){for(;null!==Os&&!qo();)Lc(Os)}function Lc(e){var t=Ws(e.alternate,e,Ds);e.memoizedProps=e.pendingProps,null===t?Rc(e):Os=t,Rs.current=null}function Rc(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ss(n,t,Ds)))return void(Os=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Ds)||0==(4&n.mode)){for(var r=0,o=n.child;null!==o;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=cs(t)))return n.flags&=2047,void(Os=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Os=t);Os=t=e}while(null!==t);0===js&&(js=5)}function Nc(e){var t=$o();return Go(99,Pc.bind(null,e,t)),null}function Pc(e,t){do{Ic()}while(null!==ec);if(0!=(48&Ns))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,o=r,a=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var s=e.eventTimes,c=e.expirationTimes;0<a;){var l=31-Zt(a),u=1<<l;o[l]=0,s[l]=-1,c[l]=-1,a&=~u}if(null!==oc&&0==(24&r)&&oc.has(e)&&oc.delete(e),e===Ps&&(Os=Ps=null,Is=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(o=Ns,Ns|=32,Rs.current=null,Br=Wt,gr(s=hr())){if("selectionStart"in s)c={start:s.selectionStart,end:s.selectionEnd};else e:if(c=(c=s.ownerDocument)&&c.defaultView||window,(u=c.getSelection&&c.getSelection())&&0!==u.rangeCount){c=u.anchorNode,a=u.anchorOffset,l=u.focusNode,u=u.focusOffset;try{c.nodeType,l.nodeType}catch(C){c=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=s,b=null;t:for(;;){for(var v;g!==c||0!==a&&3!==g.nodeType||(p=d+a),g!==l||0!==u&&3!==g.nodeType||(f=d+u),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===s)break t;if(b===c&&++m===a&&(p=d),b===l&&++h===u&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}c=-1===p||-1===f?null:{start:p,end:f}}else c=null;c=c||{start:0,end:0}}else c=null;zr={focusedElem:s,selectionRange:c},Wt=!1,uc=null,dc=!1,Ys=r;do{try{Oc()}catch(C){if(null===Ys)throw Error(i(330));Bc(Ys,C),Ys=Ys.nextEffect}}while(null!==Ys);uc=null,Ys=r;do{try{for(s=e;null!==Ys;){var y=Ys.flags;if(16&y&&be(Ys.stateNode,""),128&y){var w=Ys.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:xs(Ys),Ys.flags&=-3;break;case 6:xs(Ys),Ys.flags&=-3,Cs(Ys.alternate,Ys);break;case 1024:Ys.flags&=-1025;break;case 1028:Ys.flags&=-1025,Cs(Ys.alternate,Ys);break;case 4:Cs(Ys.alternate,Ys);break;case 8:Ss(s,c=Ys);var x=c.alternate;ws(c),null!==x&&ws(x)}Ys=Ys.nextEffect}}catch(C){if(null===Ys)throw Error(i(330));Bc(Ys,C),Ys=Ys.nextEffect}}while(null!==Ys);if(k=zr,w=hr(),y=k.focusedElem,s=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==s&&gr(y)&&(w=s.start,void 0===(k=s.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),c=y.textContent.length,x=Math.min(s.start,c),s=void 0===s.end?x:Math.min(s.end,c),!k.extend&&x>s&&(c=s,s=x,x=c),c=fr(y,x),a=fr(y,s),c&&a&&(1!==k.rangeCount||k.anchorNode!==c.node||k.anchorOffset!==c.offset||k.focusNode!==a.node||k.focusOffset!==a.offset)&&((w=w.createRange()).setStart(c.node,c.offset),k.removeAllRanges(),x>s?(k.addRange(w),k.extend(a.node,a.offset)):(w.setEnd(a.node,a.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Wt=!!Br,zr=Br=null,e.current=n,Ys=r;do{try{for(y=e;null!==Ys;){var E=Ys.flags;if(36&E&&bs(y,Ys.alternate,Ys),128&E){w=void 0;var _=Ys.ref;if(null!==_){var S=Ys.stateNode;Ys.tag,w=S,"function"==typeof _?_(w):_.current=w}}Ys=Ys.nextEffect}}catch(C){if(null===Ys)throw Error(i(330));Bc(Ys,C),Ys=Ys.nextEffect}}while(null!==Ys);Ys=null,jo(),Ns=o}else e.current=n;if(Js)Js=!1,ec=e,tc=t;else for(Ys=r;null!==Ys;)t=Ys.nextEffect,Ys.nextEffect=null,8&Ys.flags&&((E=Ys).sibling=null,E.stateNode=null),Ys=t;if(0===(r=e.pendingLanes)&&(Qs=null),1===r?e===ic?ac++:(ac=0,ic=e):ac=0,n=n.stateNode,_o&&"function"==typeof _o.onCommitFiberRoot)try{_o.onCommitFiberRoot(Eo,n,void 0,64==(64&n.current.flags))}catch(C){}if(gc(e,Zo()),Ks)throw Ks=!1,e=Xs,Xs=null,e;return 0!=(8&Ns)||Wo(),null}function Oc(){for(;null!==Ys;){var e=Ys.alternate;dc||null===uc||(0!=(8&Ys.flags)?Je(Ys,uc)&&(dc=!0):13===Ys.tag&&qs(e,Ys)&&Je(Ys,uc)&&(dc=!0));var t=Ys.flags;0!=(256&t)&&gs(e,Ys),0==(512&t)||Js||(Js=!0,Vo(97,(function(){return Ic(),null}))),Ys=Ys.nextEffect}}function Ic(){if(90!==tc){var e=97<tc?97:tc;return tc=90,Go(e,jc)}return!1}function Dc(e,t){nc.push(t,e),Js||(Js=!0,Vo(97,(function(){return Ic(),null})))}function Mc(e,t){rc.push(t,e),Js||(Js=!0,Vo(97,(function(){return Ic(),null})))}function jc(){if(null===ec)return!1;var e=ec;if(ec=null,0!=(48&Ns))throw Error(i(331));var t=Ns;Ns|=32;var n=rc;rc=[];for(var r=0;r<n.length;r+=2){var o=n[r],a=n[r+1],s=o.destroy;if(o.destroy=void 0,"function"==typeof s)try{s()}catch(l){if(null===a)throw Error(i(330));Bc(a,l)}}for(n=nc,nc=[],r=0;r<n.length;r+=2){o=n[r],a=n[r+1];try{var c=o.create;o.destroy=c()}catch(l){if(null===a)throw Error(i(330));Bc(a,l)}}for(c=e.current.firstEffect;null!==c;)e=c.nextEffect,c.nextEffect=null,8&c.flags&&(c.sibling=null,c.stateNode=null),c=e;return Ns=t,Wo(),!0}function Fc(e,t,n){da(e,t=ps(0,t=ls(n,t),1)),t=pc(),null!==(e=hc(e,1))&&(Ut(e,1,t),gc(e,t))}function Bc(e,t){if(3===e.tag)Fc(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Fc(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Qs||!Qs.has(r))){var o=fs(n,e=ls(t,e),1);if(da(n,o),o=pc(),null!==(n=hc(n,1)))Ut(n,1,o),gc(n,o);else if("function"==typeof r.componentDidCatch&&(null===Qs||!Qs.has(r)))try{r.componentDidCatch(t,e)}catch(a){}break}}n=n.return}}function zc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=pc(),e.pingedLanes|=e.suspendedLanes&n,Ps===e&&(Is&n)===n&&(4===js||3===js&&(62914560&Is)===Is&&500>Zo()-Hs?_c(e,0):Zs|=n),gc(e,t)}function Uc(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===$o()?1:2:(0===cc&&(cc=Bs),0===(t=Bt(62914560&~cc))&&(t=4194304))),n=pc(),null!==(e=hc(e,t))&&(Ut(e,t,n),gc(e,n))}function Zc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function $c(e,t,n,r){return new Zc(e,t,n,r)}function Hc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Gc(e,t){var n=e.alternate;return null===n?((n=$c(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vc(e,t,n,r,o,a){var s=2;if(r=e,"function"==typeof e)Hc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case _:return Wc(n.children,o,a,t);case D:s=8,o|=16;break;case S:s=8,o|=1;break;case C:return(e=$c(12,n,t,8|o)).elementType=C,e.type=C,e.lanes=a,e;case L:return(e=$c(13,n,t,o)).type=L,e.elementType=L,e.lanes=a,e;case R:return(e=$c(19,n,t,o)).elementType=R,e.lanes=a,e;case M:return Yc(n,o,a,t);case j:return(e=$c(24,n,t,o)).elementType=j,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:s=10;break e;case q:s=9;break e;case A:s=11;break e;case N:s=14;break e;case P:s=16,r=null;break e;case O:s=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=$c(s,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Wc(e,t,n,r){return(e=$c(7,e,r,t)).lanes=n,e}function Yc(e,t,n,r){return(e=$c(23,e,r,t)).elementType=M,e.lanes=n,e}function Kc(e,t,n){return(e=$c(6,e,null,t)).lanes=n,e}function Xc(e,t,n){return(t=$c(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Qc(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=zt(0),this.expirationTimes=zt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zt(0),this.mutableSourceEagerHydrationData=null}function Jc(e,t,n,r){var o=t.current,a=pc(),s=fc(o);e:if(n){t:{if(Ye(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var c=n;do{switch(c.tag){case 3:c=c.stateNode.context;break t;case 1:if(bo(c.type)){c=c.stateNode.__reactInternalMemoizedMergedChildContext;break t}}c=c.return}while(null!==c);throw Error(i(171))}if(1===n.tag){var l=n.type;if(bo(l)){n=wo(n,l,c);break e}}n=c}else n=po;return null===t.context?t.context=n:t.pendingContext=n,(t=ua(a,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),da(o,t),mc(o,s,a),s}function el(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tl(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nl(e,t){tl(e,t),(e=e.alternate)&&tl(e,t)}function rl(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Qc(e,t,null!=n&&!0===n.hydrate),t=$c(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,ca(t),e[Jr]=n.current,Rr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var o=(t=r[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function ol(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function al(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a._internalRoot;if("function"==typeof o){var s=o;o=function(){var e=el(i);s.call(e)}}Jc(t,i,e,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new rl(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var c=o;o=function(){var e=el(i);c.call(e)}}kc((function(){Jc(t,i,e,o)}))}return el(i)}function il(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ws=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||mo.current)Di=!0;else{if(0==(n&r)){switch(Di=!1,t.tag){case 3:Gi(t),Va();break;case 5:Ia(t);break;case 1:bo(t.type)&&ko(t);break;case 4:Pa(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;uo(Qo,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Qi(e,t,n):(uo(Ma,1&Ma.current),null!==(t=as(e,t,n))?t.sibling:null);uo(Ma,1&Ma.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return os(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),uo(Ma,Ma.current),r)break;return null;case 23:case 24:return t.lanes=0,zi(e,t,n)}return as(e,t,n)}Di=0!=(16384&e.flags)}else Di=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=go(t,fo.current),aa(t,n),o=ii(null,t,r,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,bo(r)){var a=!0;ko(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,ca(t);var s=r.getDerivedStateFromProps;"function"==typeof s&&ga(t,r,s,e),o.updater=ba,t.stateNode=o,o._reactInternals=t,ka(t,r,e,n),t=Hi(null,t,r,!0,a,n)}else t.tag=0,Mi(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(a=o._init)(o._payload),t.type=o,a=t.tag=function(e){if("function"==typeof e)return Hc(e)?1:0;if(null!=e){if((e=e.$$typeof)===A)return 11;if(e===N)return 14}return 2}(o),e=Xo(o,e),a){case 0:t=Zi(null,t,o,e,n);break e;case 1:t=$i(null,t,o,e,n);break e;case 11:t=ji(null,t,o,e,n);break e;case 14:t=Fi(null,t,o,Xo(o.type,e),r,n);break e}throw Error(i(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,Zi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 1:return r=t.type,o=t.pendingProps,$i(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 3:if(Gi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,la(e,t),fa(t,r,null,n),(r=t.memoizedState.element)===o)Va(),t=as(e,t,n);else{if((a=(o=t.stateNode).hydrate)&&(Ba=Vr(t.stateNode.containerInfo.firstChild),Fa=t,a=za=!0),a){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(a=e[o])._workInProgressVersionPrimary=e[o+1],Wa.push(a);for(n=Ta(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),Va();t=t.child}return t;case 5:return Ia(t),null===e&&$a(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,s=o.children,Zr(r,o)?s=null:null!==a&&Zr(r,a)&&(t.flags|=16),Ui(e,t),Mi(e,t,s,n),t.child;case 6:return null===e&&$a(t),null;case 13:return Qi(e,t,n);case 4:return Pa(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ca(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,ji(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,s=t.memoizedProps,a=o.value;var c=t.type._context;if(uo(Qo,c._currentValue),c._currentValue=a,null!==s)if(c=s.value,0===(a=lr(c,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(c,a):1073741823))){if(s.children===o.children&&!mo.current){t=as(e,t,n);break e}}else for(null!==(c=t.child)&&(c.return=t);null!==c;){var l=c.dependencies;if(null!==l){s=c.child;for(var u=l.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&a)){1===c.tag&&((u=ua(-1,n&-n)).tag=2,da(c,u)),c.lanes|=n,null!==(u=c.alternate)&&(u.lanes|=n),oa(c.return,n),l.lanes|=n;break}u=u.next}}else s=10===c.tag&&c.type===t.type?null:c.child;if(null!==s)s.return=c;else for(s=c;null!==s;){if(s===t){s=null;break}if(null!==(c=s.sibling)){c.return=s.return,s=c;break}s=s.return}c=s}Mi(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,aa(t,n),r=r(o=ia(o,a.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return a=Xo(o=t.type,t.pendingProps),Fi(e,t,o,a=Xo(o.type,a),r,n);case 15:return Bi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Xo(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,bo(r)?(e=!0,ko(t)):e=!1,aa(t,n),ya(t,r,o),ka(t,r,o,n),Hi(null,t,r,!0,e,n);case 19:return os(e,t,n);case 23:case 24:return zi(e,t,n)}throw Error(i(156,t.tag))},rl.prototype.render=function(e){Jc(e,this._internalRoot,null,null)},rl.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Jc(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(mc(e,4,pc()),nl(e,4))},tt=function(e){13===e.tag&&(mc(e,67108864,pc()),nl(e,67108864))},nt=function(e){if(13===e.tag){var t=pc(),n=fc(e);mc(e,n,t),nl(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=oo(r);if(!o)throw Error(i(90));X(r),ne(r,o)}}}break;case"textarea":le(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=wc,Pe=function(e,t,n,r,o){var a=Ns;Ns|=4;try{return Go(98,e.bind(null,t,n,r,o))}finally{0===(Ns=a)&&(Vs(),Wo())}},Oe=function(){0==(49&Ns)&&(function(){if(null!==oc){var e=oc;oc=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gc(e,Zo())}))}Wo()}(),Ic())},Ie=function(e,t){var n=Ns;Ns|=2;try{return e(t)}finally{0===(Ns=n)&&(Vs(),Wo())}};var sl={Events:[no,ro,oo,Le,Re,Ic,{current:!1}]},cl={findFiberByHostInstance:to,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},ll={bundleType:cl.bundleType,version:cl.version,rendererPackageName:cl.rendererPackageName,rendererConfig:cl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Qe(e))?null:e.stateNode},findFiberByHostInstance:cl.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ul=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ul.isDisabled&&ul.supportsFiber)try{Eo=ul.inject(ll),_o=ul}catch(he){}}t.hydrate=function(e,t,n){if(!ol(t))throw Error(i(200));return al(null,e,t,!0,n)}},73935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(64448)},69590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,c,l,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(c=s;0!=c--;)if(!a(e[c],i[c]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!i.has(c.value[0]))return!1;for(u=e.entries();!(c=u.next()).done;)if(!a(c.value[1],i.get(c.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!i.has(c.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(c=s;0!=c--;)if(e[c]!==i[c])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((s=(l=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(c=s;0!=c--;)if(!Object.prototype.hasOwnProperty.call(i,l[c]))return!1;if(t&&e instanceof Element)return!1;for(c=s;0!=c--;)if(("_owner"!==l[c]&&"__v"!==l[c]&&"__o"!==l[c]||!e.$$typeof)&&!a(e[l[c]],i[l[c]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},70405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(67294),o=n(45697),a=n.n(o),i=n(69590),s=n.n(i),c=n(41143),l=n.n(c),u=n(96774),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},_=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},S=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},q=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var s=a[i],c=s.toLowerCase();-1===t.indexOf(c)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===c&&"stylesheet"===e[c].toLowerCase()||(n=c),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var l=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][l]&&(o[n][l]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var s=a[i],c=p({},r[s],o[s]);r[s]=c}return e}),[]).reverse()},A=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},L=function(e){return Array.isArray(e)?e.join(""):e},R=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},P=[g.NOSCRIPT,g.SCRIPT,g.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")},I=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},j=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=D(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=I(n),a=L(t);return o?"<"+e+' data-rh="true" '+o+">"+O(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===P.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},F=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,s=e.title,c=void 0===s?"":s,l=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=R(e.metaTags,y),a=R(t,b),i=R(n,v);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,o.priority),M(g.LINK,a.priority),M(g.SCRIPT,i.priority))},toString:function(){return j(g.META,o.priority,r)+" "+j(g.LINK,a.priority,r)+" "+j(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:j(g.BASE,t,r),bodyAttributes:j("bodyAttributes",n,r),htmlAttributes:j("htmlAttributes",o,r),link:j(g.LINK,u,r),meta:j(g.META,d,r),noscript:j(g.NOSCRIPT,a,r),script:j(g.SCRIPT,p,r),style:j(g.STYLE,i,r),title:j(g.TITLE,{title:c,titleAttributes:l},r)}},B=[],z=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=F({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),Z=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),$="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new z(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=$,H.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var G=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),s=0;s<i.length;s+=1){var c=i[s],l=t[c]||"";n.getAttribute(c)!==l&&n.setAttribute(c,l),-1===o.indexOf(c)&&o.push(c);var u=a.indexOf(c);-1!==u&&a.splice(u,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,c=e.scriptTags,l=e.styleTags,u=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),V(g.TITLE,t)}(u,d);var p={baseTag:G(g.BASE,n),linkTags:G(g.LINK,o),metaTags:G(g.META,a),noscriptTags:G(g.NOSCRIPT,i),scriptTags:G(g.SCRIPT,c),styleTags:G(g.STYLE,l)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),s(e,f,m)},Y=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:q(g.LINK,["rel","href"],e),metaTags:q(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:q(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:S(e),scriptTags:q(g.SCRIPT,["src","innerHTML"],e),styleTags:q(g.STYLE,["cssText"],e),title:_(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:A(e,"prioritizeSeoTags")});H.canUseDOM?(t=a,Y&&cancelAnimationFrame(Y),t.defer?Y=requestAnimationFrame((function(){W(t,(function(){Y=null}))})):(W(t),Y=null)):F&&(o=F(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:Z.isRequired},K.displayName="HelmetDispatcher";var X=["children"],Q=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!s()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case g.BODY:return p({},o,{bodyAttributes:p({},a)});case g.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return l()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),l()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=h(r,X),s=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),c=e.type;switch("symbol"==typeof c?c=c.toString():n.warnOnInvalidChildren(e,a),c){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:s,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,Q),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof z||(a=new z(a.context,a.instances)),a?r.createElement(K,p({},o,{context:a.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(K,p({},o,{context:e}))}))},t}(r.Component);J.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},69921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,c=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case l:case p:case g:case h:case c:return e;default:return t}}case o:return t}}}function x(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=l,t.ContextProvider=c,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=h,t.Portal=o,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===u},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===l},t.isContextProvider=function(e){return k(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===a},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===o},t.isProfiler=function(e){return k(e)===s},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===c||e.$$typeof===l||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},59864:(e,t,n)=>{"use strict";e.exports=n(69921)},68356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var s=n(67294),c=n(45697),l=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return l.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?s.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(s.Component),a(d,"contextTypes",{loadable:c.shape({report:c.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return s.Children.only(this.props.children)},t}(s.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}a(g,"propTypes",{report:c.func.isRequired}),a(g,"childContextTypes",{loadable:c.shape({report:c.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(l).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},18790:(e,t,n)=>{"use strict";n.d(t,{H:()=>s,f:()=>i});var r=n(16550),o=n(87462),a=n(67294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.rs,n,e.map((function(e,n){return a.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.Z)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.Z)({},n,t,{route:e}))}})}))):null}},73727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>u,rU:()=>g});var r=n(16550),o=n(94578),a=n(67294),i=n(99318),s=n(87462),c=n(63366),l=n(38776),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,o.Z)(t,e),t.prototype.render=function(){return a.createElement(r.F0,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=a.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,c.Z)(e,["innerRef","navigate","onClick"]),l=i.target,u=(0,s.Z)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||l&&"_self"!==l||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,a.createElement("a",u)}));var g=m((function(e,t){var n=e.component,o=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,c.Z)(e,["component","replace","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,l.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),c=r?n.createHref(r):"",h=(0,s.Z)({},v,{href:c,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,a.createElement(o,h)}))})),b=function(e){return e},v=a.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,x=e.strict,E=e.style,_=e.to,S=e.innerRef,C=(0,c.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,l.Z)(!1);var n=w||e.location,i=p(d(_,n),n),c=i.pathname,T=c&&c.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),q=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:x}):null,A=!!(y?y(q,n):q),L="function"==typeof m?m(A):m,R="function"==typeof E?E(A):E;A&&(L=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(L,u),R=(0,s.Z)({},R,f));var N=(0,s.Z)({"aria-current":A&&o||null,className:L,style:R,to:i},C);return b!==v?N.ref=t||S:N.innerRef=S,a.createElement(g,N)}))}))},16550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>_,F0:()=>y,LX:()=>E,TH:()=>P,k6:()=>N,rs:()=>L,s6:()=>v});var r=n(94578),o=n(67294),a=n(45697),i=n.n(a),s=n(99318),c=n(38776),l=n(87462),u=n(14779),d=n.n(u),p=(n(59864),n(63366)),f=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=o.createContext||function(e,t){var n,a,s="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",c=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return(t=e.call.apply(e,[this].concat(a))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);c.childContextTypes=((n={})[s]=i().object.isRequired,n);var l=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},o.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},o.getValue=function(){return this.context[s]?this.context[s].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return l.contextTypes=((a={})[s]=i().object,a),{Provider:c,Consumer:l}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var w={},k=1e4,x=0;function E(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,s=void 0!==i&&i,c=n.sensitive,l=void 0!==c&&c;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return x<k&&(r[e]=a,x++),a}(n,{end:a,strict:s,sensitive:l}),o=r.regexp,i=r.keys,c=o.exec(e);if(!c)return null;var u=c[0],p=c.slice(1),f=e===u;return a&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var _=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,c.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?E(n.pathname,e.props):t.match,a=(0,l.Z)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===o.Children.count(e)}(s)&&(s=null),o.createElement(v.Provider,{value:a},a.match?s?"function"==typeof s?s(a):s:u?o.createElement(u,a):d?d(a):null:"function"==typeof s?s(a):null)}))},t}(o.Component);function S(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=S(e);return 0!==t.pathname.indexOf(n)?t:(0,l.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,s.Ep)(e)}function q(e){return function(){(0,c.Z)(!1)}}function A(){}o.Component;var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,c.Z)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?E(a.pathname,(0,l.Z)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var R=o.useContext;function N(){return R(b)}function P(){return R(v).location}},72408:(e,t,n)=>{"use strict";var r=n(27418),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,s=60110,c=60112;t.Suspense=60113;var l=60115,u=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;o=d("react.element"),a=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),s=d("react.context"),c=d("react.forward_ref"),t.Suspense=d("react.suspense"),l=d("react.memo"),u=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,x={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,a={},i=null,s=null;if(null!=t)for(r in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!x.hasOwnProperty(r)&&(a[r]=t[r]);var c=arguments.length-2;if(1===c)a.children=n;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(r in c=e.defaultProps)void 0===a[r]&&(a[r]=c[r]);return{$$typeof:o,type:e,key:i,ref:s,props:a,_owner:w.current}}function _(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var S=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var c=!1;if(null===e)c=!0;else switch(s){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case o:case a:c=!0}}if(c)return i=i(c=e),e=""===r?"."+C(c,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(S,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(_(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||c&&c.key===i.key?"":(""+i.key).replace(S,"$&/")+"/")+e)),t.push(i)),1;if(c=0,r=""===r?".":r+":",Array.isArray(e))for(var l=0;l<e.length;l++){var u=r+C(s=e[l],l);c+=T(s,t,n,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),l=0;!(s=e.next()).done;)c+=T(s=s.value,t,n,u=r+C(s,l++),i);else if("object"===s)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return c}function q(e,t,n){if(null==e)return e;var r=[],o=0;return T(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function A(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var L={current:null};function R(){var e=L.current;if(null===e)throw Error(f(321));return e}var N={ReactCurrentDispatcher:L,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:q,forEach:function(e,t,n){q(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return q(e,(function(){t++})),t},toArray:function(e){return q(e,(function(e){return e}))||[]},only:function(e){if(!_(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=N,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var a=r({},e.props),i=e.key,s=e.ref,c=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,c=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(u in t)k.call(t,u)&&!x.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==l?l[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=n;else if(1<u){l=Array(u);for(var d=0;d<u;d++)l[d]=arguments[d+2];a.children=l}return{$$typeof:o,type:e.type,key:i,ref:s,props:a,_owner:c}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:s,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=_,t.lazy=function(e){return{$$typeof:u,_payload:{_status:-1,_result:e},_init:A}},t.memo=function(e,t){return{$$typeof:l,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return R().useCallback(e,t)},t.useContext=function(e,t){return R().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return R().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return R().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return R().useLayoutEffect(e,t)},t.useMemo=function(e,t){return R().useMemo(e,t)},t.useReducer=function(e,t,n){return R().useReducer(e,t,n)},t.useRef=function(e){return R().useRef(e)},t.useState=function(e){return R().useState(e)},t.version="17.0.2"},67294:(e,t,n)=>{"use strict";e.exports=n(72408)},60053:(e,t)=>{"use strict";var n,r,o,a;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,c=s.now();t.unstable_now=function(){return s.now()-c}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var l=null,u=null,d=function(){if(null!==l)try{var e=t.unstable_now();l(!0,e),l=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==l?setTimeout(n,0,e):(l=e,setTimeout(d,0))},r=function(e,t){u=setTimeout(e,t)},o=function(){clearTimeout(u)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},o=function(){f(b),b=-1}}function x(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<S(o,t)))break e;e[r]=t,e[n]=o,n=r}}function E(e){return void 0===(e=e[0])?null:e}function _(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var a=2*(r+1)-1,i=e[a],s=a+1,c=e[s];if(void 0!==i&&0>S(i,n))void 0!==c&&0>S(c,i)?(e[r]=c,e[s]=n,r=s):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==c&&0>S(c,n)))break e;e[r]=c,e[s]=n,r=s}}}return t}return null}function S(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],q=1,A=null,L=3,R=!1,N=!1,P=!1;function O(e){for(var t=E(T);null!==t;){if(null===t.callback)_(T);else{if(!(t.startTime<=e))break;_(T),t.sortIndex=t.expirationTime,x(C,t)}t=E(T)}}function I(e){if(P=!1,O(e),!N)if(null!==E(C))N=!0,n(D);else{var t=E(T);null!==t&&r(I,t.startTime-e)}}function D(e,n){N=!1,P&&(P=!1,o()),R=!0;var a=L;try{for(O(n),A=E(C);null!==A&&(!(A.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=A.callback;if("function"==typeof i){A.callback=null,L=A.priorityLevel;var s=i(A.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?A.callback=s:A===E(C)&&_(C),O(n)}else _(C);A=E(C)}if(null!==A)var c=!0;else{var l=E(T);null!==l&&r(I,l.startTime-n),c=!1}return c}finally{A=null,L=a,R=!1}}var M=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){N||R||(N=!0,n(D))},t.unstable_getCurrentPriorityLevel=function(){return L},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(L){case 1:case 2:case 3:var t=3;break;default:t=L}var n=L;L=t;try{return e()}finally{L=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=L;L=e;try{return t()}finally{L=n}},t.unstable_scheduleCallback=function(e,a,i){var s=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?s+i:s:i=s,e){case 1:var c=-1;break;case 2:c=250;break;case 5:c=1073741823;break;case 4:c=1e4;break;default:c=5e3}return e={id:q++,callback:a,priorityLevel:e,startTime:i,expirationTime:c=i+c,sortIndex:-1},i>s?(e.sortIndex=i,x(T,e),null===E(C)&&e===E(T)&&(P?o():P=!0,r(I,i-s))):(e.sortIndex=c,x(C,e),N||R||(N=!0,n(D))),e},t.unstable_wrapCallback=function(e){var t=L;return function(){var n=L;L=t;try{return e.apply(this,arguments)}finally{L=n}}}},63840:(e,t,n)=>{"use strict";e.exports=n(60053)},96774:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),c=0;c<a.length;c++){var l=a[c];if(!s(l))return!1;var u=e[l],d=t[l];if(!1===(o=n?n.call(r,u,d,l):void 0)||void 0===o&&u!==d)return!1}return!0}},53250:(e,t,n)=>{"use strict";var r=n(67294);var o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,s=r.useLayoutEffect,c=r.useDebugValue;function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(r){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,u=r[1];return s((function(){o.value=n,o.getSnapshot=t,l(o)&&u({inst:o})}),[e,n,t]),i((function(){return l(o)&&u({inst:o}),e((function(){l(o)&&u({inst:o})}))}),[e]),c(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:u},61688:(e,t,n)=>{"use strict";e.exports=n(53250)},36809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Apache\xae Druid",tagline:"A fast analytical database",url:"https://druid.apache.org",baseUrl:"/",organizationName:"Apache\xae",projectName:"ApacheDruid",scripts:["https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js"],stylesheets:["https://use.fontawesome.com/releases/v5.7.2/css/all.css"],favicon:"img/favicon.png",customFields:{disableHeaderTitle:!0},onBrokenLinks:"log",onBrokenMarkdownLinks:"log",presets:[["@docusaurus/preset-classic",{docs:{showLastUpdateAuthor:!1,showLastUpdateTime:!1,exclude:["**incubating/**"],path:"./docs/27.0.0",routeBasePath:"/docs/27.0.0",sidebarPath:"./sidebars.json"},theme:{customCss:["./src/css/customTheme.css","./src/css/index.css"]},gtag:{trackingID:"UA-131010415-1"}}]],plugins:[["@docusaurus/plugin-client-redirects",{fromExtensions:["html"],redirects:[{from:["/docs/27.0.0/configuration/auth.html","/docs/27.0.0/design/auth.html"],to:"/docs/27.0.0/operations/auth"},{from:["/docs/27.0.0/configuration/broker.html","/docs/27.0.0/configuration/caching.html","/docs/27.0.0/configuration/coordinator.html","/docs/27.0.0/configuration/historical.html","/docs/27.0.0/configuration/indexing-service.html","/docs/27.0.0/development/extensions-core/caffeine-cache.html"],to:"/docs/27.0.0/configuration/"},{from:"/docs/27.0.0/configuration/hadoop.html",to:"/docs/27.0.0/ingestion/hadoop"},{from:["/docs/27.0.0/configuration/production-cluster.html","/docs/27.0.0/configuration/simple-cluster.html","/docs/27.0.0/misc/cluster-setup.html","/docs/27.0.0/misc/evaluate.html"],to:"/docs/27.0.0/tutorials/cluster"},{from:["/docs/27.0.0/configuration/realtime.html","/docs/27.0.0/design/plumber.html","/docs/27.0.0/design/realtime.html","/docs/27.0.0/development/extensions-contrib/kafka-simple.html","/docs/27.0.0/development/extensions-contrib/rabbitmq.html","/docs/27.0.0/development/extensions-contrib/rocketmq.html","/docs/27.0.0/development/extensions-core/kafka-eight-firehose.html","/docs/27.0.0/ingestion/stream-pull.html"],to:"/docs/27.0.0/ingestion/standalone-realtime"},{from:["/docs/27.0.0/configuration/zookeeper.html","/docs/27.0.0/dependencies/zookeeper.html"],to:"/docs/27.0.0/design/zookeeper"},{from:"/docs/27.0.0/dependencies/cassandra-deep-storage.html",to:"/docs/27.0.0/development/extensions-contrib/cassandra"},{from:["/docs/27.0.0/design/concepts-and-terminology.html","/docs/27.0.0/design/design.html","/docs/27.0.0/ingestion/batch-ingestion.html","/docs/27.0.0/ingestion/hadoop-vs-native-batch.html","/docs/27.0.0/ingestion/ingestion.html","/docs/27.0.0/ingestion/overview.html","/docs/27.0.0/ingestion/realtime-ingestion.html","/docs/27.0.0/ingestion/stream-ingestion.html","/docs/27.0.0/tutorials/examples.html","/docs/27.0.0/tutorials/ingestion-streams.html","/docs/27.0.0/tutorials/ingestion.html","/docs/27.0.0/tutorials/quickstart.html","/docs/27.0.0/tutorials/tutorial-a-first-look-at-druid.html","/docs/27.0.0/tutorials/tutorial-all-about-queries.html"],to:"/docs/27.0.0/design/"},{from:"/docs/27.0.0/development/approximate-histograms.html",to:"/docs/27.0.0/development/extensions-core/approximate-histograms"},{from:"/docs/27.0.0/development/community-extensions/azure.html",to:"/docs/27.0.0/development/extensions-core/azure"},{from:"/docs/27.0.0/development/community-extensions/cassandra.html",to:"/docs/27.0.0/development/extensions-contrib/cassandra"},{from:"/docs/27.0.0/development/community-extensions/cloudfiles.html",to:"/docs/27.0.0/development/extensions-contrib/cloudfiles"},{from:"/docs/27.0.0/development/community-extensions/graphite.html",to:"/docs/27.0.0/development/extensions-contrib/graphite"},{from:["/docs/27.0.0/development/community-extensions/kafka-simple.html","/docs/27.0.0/development/community-extensions/rabbitmq.html","/docs/27.0.0/development/kafka-simple-consumer-firehose.html"],to:"/docs/27.0.0/development/extensions-core/kafka-ingestion"},{from:"/docs/27.0.0/development/extensions-contrib/orc.html",to:"/docs/27.0.0/development/extensions-core/orc"},{from:"/docs/27.0.0/development/extensions-contrib/parquet.html",to:"/docs/27.0.0/development/extensions-core/parquet"},{from:"/docs/27.0.0/development/extensions-contrib/scan-query.html",to:"/docs/27.0.0/querying/scan-query"},{from:"/docs/27.0.0/development/extensions-core/namespaced-lookup.html",to:"/docs/27.0.0/development/extensions-core/lookups-cached-global"},{from:"/docs/27.0.0/development/indexer.html",to:"/docs/27.0.0/design/indexer"},{from:"/docs/27.0.0/development/router.html",to:"/docs/27.0.0/design/router"},{from:"/docs/27.0.0/development/select-query.html",to:"/docs/27.0.0/querying/select-query"},{from:["/docs/27.0.0/"],to:"/docs/27.0.0/design/"},{from:"/docs/27.0.0/ingestion/automatic-compaction.html",to:"/docs/27.0.0/data-management/automatic-compaction"},{from:"/docs/27.0.0/ingestion/command-line-hadoop-indexer.html",to:"/docs/27.0.0/ingestion/hadoop"},{from:"/docs/27.0.0/ingestion/compaction.html",to:"/docs/27.0.0/data-management/compaction"},{from:"/docs/27.0.0/ingestion/data-management.html",to:"/docs/27.0.0/data-management/"},{from:"/docs/27.0.0/ingestion/delete-data.html",to:"/docs/27.0.0/data-management/delete"},{from:["/docs/27.0.0/ingestion/firehose.html","/docs/27.0.0/ingestion/migrate-from-firehose"],to:"/docs/27.0.0/operations/migrate-from-firehose"},{from:["/docs/27.0.0/ingestion/flatten-json.html","/docs/27.0.0/ingestion/transform-spec.html"],to:"/docs/27.0.0/ingestion/ingestion-spec"},{from:["/docs/27.0.0/ingestion/locking-and-priority.html","/docs/27.0.0/ingestion/misc-tasks.html","/docs/27.0.0/ingestion/reports.html"],to:"/docs/27.0.0/ingestion/tasks"},{from:["/docs/27.0.0/ingestion/native_tasks.html","/docs/27.0.0/ingestion/native-batch-input-sources.html"],to:"/docs/27.0.0/ingestion/input-sources"},{from:"/docs/27.0.0/ingestion/schema-changes.html",to:"/docs/27.0.0/design/segments"},{from:"/docs/27.0.0/ingestion/stream-push.html",to:"/docs/27.0.0/ingestion/tranquility"},{from:"/docs/27.0.0/ingestion/update-existing-data.html",to:"/docs/27.0.0/data-management/update"},{from:"/docs/27.0.0/misc/tasks.html",to:"/docs/27.0.0/ingestion/tasks"},{from:["/docs/27.0.0/operations/including-extensions.html","/docs/27.0.0/development/extensions"],to:"/docs/27.0.0/configuration/extensions"},{from:"/docs/27.0.0/operations/multitenancy.html",to:"/docs/27.0.0/querying/multitenancy"},{from:"/docs/27.0.0/operations/performance-faq.html",to:"/docs/27.0.0/operations/basic-cluster-tuning"},{from:"/docs/27.0.0/querying/optimizations.html",to:"/docs/27.0.0/querying/multi-value-dimensions"},{from:"/docs/27.0.0/querying/searchqueryspec.html",to:"/docs/27.0.0/querying/searchquery"},{from:["/docs/27.0.0/tutorials/booting-a-production-cluster.html","/docs/27.0.0/tutorials/firewall.html","/docs/27.0.0/tutorials/tutorial-the-druid-cluster.html"],to:"/docs/27.0.0/tutorials/cluster"},{from:"/docs/27.0.0/tutorials/tutorial-loading-batch-data.html",to:"/docs/27.0.0/tutorials/tutorial-batch"},{from:"/docs/27.0.0/tutorials/tutorial-loading-streaming-data.html",to:"/docs/27.0.0/tutorials/tutorial-kafka"},{from:"/docs/27.0.0/tutorials/tutorial-tranquility.html",to:"/docs/27.0.0/ingestion/tranquility"},{from:"/docs/27.0.0/development/extensions-contrib/google.html",to:"/docs/27.0.0/development/extensions-core/google"},{from:"/docs/27.0.0/development/integrating-druid-with-other-technologies.html",to:"/docs/27.0.0/ingestion/"},{from:["/docs/27.0.0/operations/druid-console.html","/docs/27.0.0/operations/management-uis.html"],to:"/docs/27.0.0/operations/web-console"},{from:"/docs/27.0.0/operations/recommendations.html",to:"/docs/27.0.0/operations/basic-cluster-tuning"},{from:"/docs/27.0.0/misc/math-expr.html",to:"/docs/27.0.0/querying/math-expr"},{from:"/docs/27.0.0/operations/getting-started",to:"/docs/27.0.0/design/"},{from:"/docs/27.0.0/querying/sql-api.html",to:"/docs/27.0.0/api-reference/sql-api"},{from:"/docs/27.0.0/querying/sql-jdbc.html",to:"/docs/27.0.0/api-reference/sql-jdbc"},{from:"/docs/27.0.0/multi-stage-query/api.html",to:"/docs/27.0.0/api-reference/sql-ingestion-api"},{from:"/docs/27.0.0/operations/api-reference.html",to:"/docs/27.0.0/api-reference/"}]}],"/Users/brian/druid-website-src-fork/node_modules/docusaurus-lunr-search/src/index.js"],themeConfig:{colorMode:{defaultMode:"light",disableSwitch:!0,respectPrefersColorScheme:!1},navbar:{logo:{src:"img/druid_nav.png"},style:"dark",items:[{to:"/technology",label:"Technology",position:"right"},{to:"/use-cases",label:"Use Cases",position:"right"},{to:"/druid-powered",label:"Powered By",position:"right"},{to:"/docs/27.0.0/design/",label:"Docs",position:"right"},{href:"/community/",label:"Community",position:"right"},{label:"Apache\xae",type:"dropdown",position:"right",items:[{href:"https://www.apache.org/",label:"Foundation"},{href:"https://apachecon.com/?ref=druid.apache.org",label:"Events"},{href:"https://www.apache.org/licenses/",label:"License"},{href:"https://www.apache.org/foundation/thanks.html",label:"Thanks"},{href:"https://www.apache.org/security/",label:"Security"},{href:"https://www.apache.org/foundation/sponsorship.html",label:"Sponsorship"}]},{href:"/downloads/",label:"Download",position:"right"}],hideOnScroll:!1},image:"img/druid_nav.png",footer:{links:[],copyright:"Copyright \xa9 2023 Apache Software Foundation. Except where otherwise noted, licensed under CC BY-SA 4.0. Apache Druid, Druid, and the Druid logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.",logo:{src:"img/favicon.png"},style:"light"},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],prism:{additionalLanguages:[],theme:{plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],themes:[],headTags:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},87462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},94578:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(89611);function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.Z)(e,t)}},63366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:()=>r})},89611:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:()=>r})},26528:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}n.d(t,{Z:()=>a});var o=n(89611);function a(){a=function(e,t){return new n(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function n(e,r,a){var i=new RegExp(e,r);return t.set(i,a||t.get(e)),(0,o.Z)(i,n.prototype)}function i(e,n){var r=t.get(n);return Object.keys(r).reduce((function(t,n){var o=r[n];if("number"==typeof o)t[n]=e[o];else{for(var a=0;void 0===e[o[a]]&&a+1<o.length;)a++;t[n]=e[o[a]]}return t}),Object.create(null))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&(0,o.Z)(e,t)}(n,RegExp),n.prototype.exec=function(t){var n=e.exec.call(this,t);if(n){n.groups=i(n,this);var r=n.indices;r&&(r.groups=i(r,this))}return n},n.prototype[Symbol.replace]=function(n,o){if("string"==typeof o){var a=t.get(this);return e[Symbol.replace].call(this,n,o.replace(/\$<([^>]+)>/g,(function(e,t){var n=a[t];return"$"+(Array.isArray(n)?n.join("$"):n)})))}if("function"==typeof o){var s=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=r(e[e.length-1])&&(e=[].slice.call(e)).push(i(e,s)),o.apply(this,e)}))}return e[Symbol.replace].call(this,n,o)},a.apply(this,arguments)}},38776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},57529:e=>{"use strict";e.exports={}},16887:e=>{"use strict";e.exports=JSON.parse('{"/community/-d82":{"__comp":"1f391b9e","__context":{"plugin":"16e139eb"},"content":"2078bf5c"},"/community/cla-e2a":{"__comp":"1f391b9e","__context":{"plugin":"16e139eb"},"content":"eaffe8b7"},"/community/join-slack-7e6":{"__comp":"1f391b9e","__context":{"plugin":"16e139eb"},"content":"efa71475"},"/downloads-3bd":{"__comp":"1f391b9e","__context":{"plugin":"16e139eb"},"content":"b6d922f1"},"/druid-powered-49f":{"__comp":"1f391b9e","__context":{"plugin":"16e139eb"},"content":"dc8d8ba6"},"/faq-519":{"__comp":"1f391b9e","__context":{"plugin":"16e139eb"},"content":"1fd605f7"},"/libraries-252":{"__comp":"1f391b9e","__context":{"plugin":"16e139eb"},"content":"d6bc9e72"},"/licensing-f71":{"__comp":"1f391b9e","__context":{"plugin":"16e139eb"},"content":"5b55a31e"},"/technology-167":{"__comp":"1f391b9e","__context":{"plugin":"16e139eb"},"content":"5bcd0a3f"},"/use-cases-fb9":{"__comp":"1f391b9e","__context":{"plugin":"16e139eb"},"content":"e9483372"},"/docs/27.0.0-e03":{"__comp":"1be78505","__context":{"plugin":"e8888d3a"},"versionMetadata":"935f2afb"},"/docs/27.0.0/api-reference/-ea2":{"__comp":"17896441","content":"8bc7f250"},"/docs/27.0.0/api-reference/automatic-compaction-api-096":{"__comp":"17896441","content":"3fd82268"},"/docs/27.0.0/api-reference/data-management-api-54f":{"__comp":"17896441","content":"d40f8077"},"/docs/27.0.0/api-reference/dynamic-configuration-api-fce":{"__comp":"17896441","content":"167b89c9"},"/docs/27.0.0/api-reference/json-querying-api-58d":{"__comp":"17896441","content":"875b5235"},"/docs/27.0.0/api-reference/legacy-metadata-api-616":{"__comp":"17896441","content":"6248961d"},"/docs/27.0.0/api-reference/lookups-api-a78":{"__comp":"17896441","content":"d9e38777"},"/docs/27.0.0/api-reference/retention-rules-api-009":{"__comp":"17896441","content":"ddab73c7"},"/docs/27.0.0/api-reference/service-status-api-6e7":{"__comp":"17896441","content":"05a1cae0"},"/docs/27.0.0/api-reference/sql-api-5d1":{"__comp":"17896441","content":"80fcc103"},"/docs/27.0.0/api-reference/sql-ingestion-api-2b4":{"__comp":"17896441","content":"053e65a4"},"/docs/27.0.0/api-reference/sql-jdbc-273":{"__comp":"17896441","content":"79f8b228"},"/docs/27.0.0/api-reference/supervisor-api-98f":{"__comp":"17896441","content":"b14ae68a"},"/docs/27.0.0/api-reference/tasks-api-15e":{"__comp":"17896441","content":"ffee4a94"},"/docs/27.0.0/comparisons/druid-vs-elasticsearch-8a7":{"__comp":"17896441","content":"3c16ffca"},"/docs/27.0.0/comparisons/druid-vs-key-value-c1e":{"__comp":"17896441","content":"17b23858"},"/docs/27.0.0/comparisons/druid-vs-kudu-93b":{"__comp":"17896441","content":"33cbc830"},"/docs/27.0.0/comparisons/druid-vs-redshift-41e":{"__comp":"17896441","content":"870bff02"},"/docs/27.0.0/comparisons/druid-vs-spark-9c4":{"__comp":"17896441","content":"ce54e291"},"/docs/27.0.0/comparisons/druid-vs-sql-on-hadoop-41d":{"__comp":"17896441","content":"dc5c5eba"},"/docs/27.0.0/configuration/-0f9":{"__comp":"17896441","content":"b80567bd"},"/docs/27.0.0/configuration/extensions-b31":{"__comp":"17896441","content":"a230a94b"},"/docs/27.0.0/configuration/human-readable-byte-3fa":{"__comp":"17896441","content":"1d271fa1"},"/docs/27.0.0/configuration/logging-486":{"__comp":"17896441","content":"40b8f084"},"/docs/27.0.0/data-management/-ec8":{"__comp":"17896441","content":"c76f87d3"},"/docs/27.0.0/data-management/automatic-compaction-0e9":{"__comp":"17896441","content":"bc6f0aec"},"/docs/27.0.0/data-management/compaction-a22":{"__comp":"17896441","content":"28c15c51"},"/docs/27.0.0/data-management/delete-9e2":{"__comp":"17896441","content":"ff461ab6"},"/docs/27.0.0/data-management/schema-changes-37c":{"__comp":"17896441","content":"0705ae7b"},"/docs/27.0.0/data-management/update-5a1":{"__comp":"17896441","content":"7d9e55c0"},"/docs/27.0.0/design/-5e3":{"__comp":"17896441","content":"afab5838"},"/docs/27.0.0/design/architecture-bec":{"__comp":"17896441","content":"9d31bb79"},"/docs/27.0.0/design/broker-66b":{"__comp":"17896441","content":"135fee27"},"/docs/27.0.0/design/coordinator-62b":{"__comp":"17896441","content":"9925e683"},"/docs/27.0.0/design/deep-storage-548":{"__comp":"17896441","content":"7704dc77"},"/docs/27.0.0/design/extensions-contrib/dropwizard-0fc":{"__comp":"17896441","content":"27e4f3a1"},"/docs/27.0.0/design/historical-36a":{"__comp":"17896441","content":"dafc885c"},"/docs/27.0.0/design/indexer-f09":{"__comp":"17896441","content":"4bdd984a"},"/docs/27.0.0/design/indexing-service-bca":{"__comp":"17896441","content":"eea91d86"},"/docs/27.0.0/design/metadata-storage-b03":{"__comp":"17896441","content":"32ba958f"},"/docs/27.0.0/design/middlemanager-93a":{"__comp":"17896441","content":"4903ab44"},"/docs/27.0.0/design/overlord-c49":{"__comp":"17896441","content":"8be678b6"},"/docs/27.0.0/design/peons-41e":{"__comp":"17896441","content":"21e52b62"},"/docs/27.0.0/design/processes-02c":{"__comp":"17896441","content":"bbcce871"},"/docs/27.0.0/design/router-9d5":{"__comp":"17896441","content":"a1b01d26"},"/docs/27.0.0/design/segments-cb6":{"__comp":"17896441","content":"78e01881"},"/docs/27.0.0/design/zookeeper-084":{"__comp":"17896441","content":"12a22656"},"/docs/27.0.0/development/build-41a":{"__comp":"17896441","content":"d6300556"},"/docs/27.0.0/development/contribute-to-docs-0ef":{"__comp":"17896441","content":"bd16b709"},"/docs/27.0.0/development/experimental-623":{"__comp":"17896441","content":"c3a0d3bf"},"/docs/27.0.0/development/experimental-features-cc4":{"__comp":"17896441","content":"f157546f"},"/docs/27.0.0/development/extensions-contrib/aliyun-oss-248":{"__comp":"17896441","content":"118cf993"},"/docs/27.0.0/development/extensions-contrib/ambari-metrics-emitter-f4d":{"__comp":"17896441","content":"9e19da31"},"/docs/27.0.0/development/extensions-contrib/cassandra-b67":{"__comp":"17896441","content":"1876c3c0"},"/docs/27.0.0/development/extensions-contrib/cloudfiles-111":{"__comp":"17896441","content":"ee1ead5b"},"/docs/27.0.0/development/extensions-contrib/compressed-big-decimal-998":{"__comp":"17896441","content":"e1170488"},"/docs/27.0.0/development/extensions-contrib/distinctcount-15c":{"__comp":"17896441","content":"aec9b2c5"},"/docs/27.0.0/development/extensions-contrib/gce-extensions-7d6":{"__comp":"17896441","content":"1d52e3ab"},"/docs/27.0.0/development/extensions-contrib/graphite-cb5":{"__comp":"17896441","content":"fae2428e"},"/docs/27.0.0/development/extensions-contrib/influx-8b6":{"__comp":"17896441","content":"7e121349"},"/docs/27.0.0/development/extensions-contrib/influxdb-emitter-24f":{"__comp":"17896441","content":"7bc4af75"},"/docs/27.0.0/development/extensions-contrib/k8s-jobs-bb7":{"__comp":"17896441","content":"d9e813a4"},"/docs/27.0.0/development/extensions-contrib/kafka-emitter-fc5":{"__comp":"17896441","content":"8207049c"},"/docs/27.0.0/development/extensions-contrib/materialized-view-df7":{"__comp":"17896441","content":"e04eed3b"},"/docs/27.0.0/development/extensions-contrib/momentsketch-quantiles-574":{"__comp":"17896441","content":"4af57a18"},"/docs/27.0.0/development/extensions-contrib/moving-average-query-4a0":{"__comp":"17896441","content":"2cb0c30e"},"/docs/27.0.0/development/extensions-contrib/opentsdb-emitter-121":{"__comp":"17896441","content":"7c956698"},"/docs/27.0.0/development/extensions-contrib/prometheus-2dc":{"__comp":"17896441","content":"5a5f0911"},"/docs/27.0.0/development/extensions-contrib/redis-cache-68e":{"__comp":"17896441","content":"4ec33175"},"/docs/27.0.0/development/extensions-contrib/sqlserver-528":{"__comp":"17896441","content":"16db542a"},"/docs/27.0.0/development/extensions-contrib/statsd-ca9":{"__comp":"17896441","content":"e4f108c5"},"/docs/27.0.0/development/extensions-contrib/tdigestsketch-quantiles-d92":{"__comp":"17896441","content":"08b7c20d"},"/docs/27.0.0/development/extensions-contrib/thrift-f4e":{"__comp":"17896441","content":"e57e5872"},"/docs/27.0.0/development/extensions-contrib/time-min-max-2ee":{"__comp":"17896441","content":"a6403e8b"},"/docs/27.0.0/development/extensions-core/approximate-histograms-e10":{"__comp":"17896441","content":"728f141b"},"/docs/27.0.0/development/extensions-core/avro-fa9":{"__comp":"17896441","content":"3f071b3a"},"/docs/27.0.0/development/extensions-core/azure-1e6":{"__comp":"17896441","content":"f97a079c"},"/docs/27.0.0/development/extensions-core/bloom-filter-4b2":{"__comp":"17896441","content":"c437026d"},"/docs/27.0.0/development/extensions-core/datasketches-extension-6ad":{"__comp":"17896441","content":"25f29507"},"/docs/27.0.0/development/extensions-core/datasketches-hll-436":{"__comp":"17896441","content":"e1d856c3"},"/docs/27.0.0/development/extensions-core/datasketches-kll-367":{"__comp":"17896441","content":"4641b34e"},"/docs/27.0.0/development/extensions-core/datasketches-quantiles-12b":{"__comp":"17896441","content":"c6e8f20b"},"/docs/27.0.0/development/extensions-core/datasketches-theta-689":{"__comp":"17896441","content":"92fda066"},"/docs/27.0.0/development/extensions-core/datasketches-tuple-0fa":{"__comp":"17896441","content":"fb685d2b"},"/docs/27.0.0/development/extensions-core/druid-aws-rds-70a":{"__comp":"17896441","content":"bdae821f"},"/docs/27.0.0/development/extensions-core/druid-basic-security-226":{"__comp":"17896441","content":"28a7e860"},"/docs/27.0.0/development/extensions-core/druid-kerberos-0db":{"__comp":"17896441","content":"65f10db4"},"/docs/27.0.0/development/extensions-core/druid-lookups-7b6":{"__comp":"17896441","content":"840aec46"},"/docs/27.0.0/development/extensions-core/druid-pac4j-a9b":{"__comp":"17896441","content":"9d9a7dd5"},"/docs/27.0.0/development/extensions-core/druid-ranger-security-455":{"__comp":"17896441","content":"8de4c9c5"},"/docs/27.0.0/development/extensions-core/examples-530":{"__comp":"17896441","content":"1964867a"},"/docs/27.0.0/development/extensions-core/google-064":{"__comp":"17896441","content":"b3586cc5"},"/docs/27.0.0/development/extensions-core/hdfs-523":{"__comp":"17896441","content":"8e5ec21a"},"/docs/27.0.0/development/extensions-core/kafka-extraction-namespace-ba8":{"__comp":"17896441","content":"df953bbc"},"/docs/27.0.0/development/extensions-core/kafka-ingestion-2c6":{"__comp":"17896441","content":"03595d9f"},"/docs/27.0.0/development/extensions-core/kafka-supervisor-operations-ac4":{"__comp":"17896441","content":"eefb2929"},"/docs/27.0.0/development/extensions-core/kafka-supervisor-reference-894":{"__comp":"17896441","content":"63fdd6a3"},"/docs/27.0.0/development/extensions-core/kinesis-ingestion-711":{"__comp":"17896441","content":"22813ddf"},"/docs/27.0.0/development/extensions-core/kubernetes-09b":{"__comp":"17896441","content":"ed7cba17"},"/docs/27.0.0/development/extensions-core/lookups-cached-global-b58":{"__comp":"17896441","content":"4d9215db"},"/docs/27.0.0/development/extensions-core/mysql-31b":{"__comp":"17896441","content":"c4008ea5"},"/docs/27.0.0/development/extensions-core/orc-ba9":{"__comp":"17896441","content":"53d1d754"},"/docs/27.0.0/development/extensions-core/parquet-840":{"__comp":"17896441","content":"deabd3f1"},"/docs/27.0.0/development/extensions-core/postgresql-a84":{"__comp":"17896441","content":"fd693997"},"/docs/27.0.0/development/extensions-core/protobuf-527":{"__comp":"17896441","content":"afdf8430"},"/docs/27.0.0/development/extensions-core/s3-635":{"__comp":"17896441","content":"71cf9a30"},"/docs/27.0.0/development/extensions-core/simple-client-sslcontext-8fd":{"__comp":"17896441","content":"1d219618"},"/docs/27.0.0/development/extensions-core/stats-f1b":{"__comp":"17896441","content":"3232d90c"},"/docs/27.0.0/development/extensions-core/test-stats-266":{"__comp":"17896441","content":"710d5c55"},"/docs/27.0.0/development/javascript-be7":{"__comp":"17896441","content":"8006bc3e"},"/docs/27.0.0/development/modules-3f8":{"__comp":"17896441","content":"434862d7"},"/docs/27.0.0/development/overview-86a":{"__comp":"17896441","content":"bec6ab17"},"/docs/27.0.0/development/versioning-aad":{"__comp":"17896441","content":"0c888c8d"},"/docs/27.0.0/ingestion/-a28":{"__comp":"17896441","content":"694997e6"},"/docs/27.0.0/ingestion/data-formats-ca2":{"__comp":"17896441","content":"0e7953eb"},"/docs/27.0.0/ingestion/faq-0c3":{"__comp":"17896441","content":"71ac8e94"},"/docs/27.0.0/ingestion/hadoop-900":{"__comp":"17896441","content":"999b34ff"},"/docs/27.0.0/ingestion/ingestion-spec-c9b":{"__comp":"17896441","content":"0c1747fc"},"/docs/27.0.0/ingestion/input-sources-d17":{"__comp":"17896441","content":"4d1a0fb5"},"/docs/27.0.0/ingestion/native-batch-f8e":{"__comp":"17896441","content":"c0851e88"},"/docs/27.0.0/ingestion/native-batch-firehose-83b":{"__comp":"17896441","content":"310cfe59"},"/docs/27.0.0/ingestion/native-batch-simple-task-fff":{"__comp":"17896441","content":"03faf09e"},"/docs/27.0.0/ingestion/partitioning-40c":{"__comp":"17896441","content":"d48dfcbf"},"/docs/27.0.0/ingestion/rollup-f78":{"__comp":"17896441","content":"f7f6d94c"},"/docs/27.0.0/ingestion/schema-design-d85":{"__comp":"17896441","content":"7b6e729c"},"/docs/27.0.0/ingestion/schema-model-424":{"__comp":"17896441","content":"dc975aaf"},"/docs/27.0.0/ingestion/standalone-realtime-bb8":{"__comp":"17896441","content":"649f7ae6"},"/docs/27.0.0/ingestion/tasks-301":{"__comp":"17896441","content":"786df1e9"},"/docs/27.0.0/ingestion/tranquility-83d":{"__comp":"17896441","content":"49613703"},"/docs/27.0.0/misc/papers-and-talks-537":{"__comp":"17896441","content":"c4c7224c"},"/docs/27.0.0/multi-stage-query/-4d6":{"__comp":"17896441","content":"631bd5d2"},"/docs/27.0.0/multi-stage-query/concepts-824":{"__comp":"17896441","content":"d6a900f0"},"/docs/27.0.0/multi-stage-query/examples-f26":{"__comp":"17896441","content":"ceb4e078"},"/docs/27.0.0/multi-stage-query/known-issues-157":{"__comp":"17896441","content":"2f862863"},"/docs/27.0.0/multi-stage-query/reference-aa7":{"__comp":"17896441","content":"a0a8ea7c"},"/docs/27.0.0/multi-stage-query/security-9b0":{"__comp":"17896441","content":"2a457972"},"/docs/27.0.0/operations/alerts-4bc":{"__comp":"17896441","content":"43262ae5"},"/docs/27.0.0/operations/auth-456":{"__comp":"17896441","content":"60dc7552"},"/docs/27.0.0/operations/auth-ldap-0e2":{"__comp":"17896441","content":"57a5c08c"},"/docs/27.0.0/operations/basic-cluster-tuning-b3d":{"__comp":"17896441","content":"a0331c4c"},"/docs/27.0.0/operations/clean-metadata-store-e8d":{"__comp":"17896441","content":"eaad35b2"},"/docs/27.0.0/operations/deep-storage-migration-038":{"__comp":"17896441","content":"47d0f2d6"},"/docs/27.0.0/operations/dump-segment-1e4":{"__comp":"17896441","content":"60c3de4b"},"/docs/27.0.0/operations/durable-storage-7bd":{"__comp":"17896441","content":"7e81fd78"},"/docs/27.0.0/operations/dynamic-config-provider-a45":{"__comp":"17896441","content":"10676374"},"/docs/27.0.0/operations/export-metadata-e17":{"__comp":"17896441","content":"17a1323b"},"/docs/27.0.0/operations/getting-started-df7":{"__comp":"17896441","content":"d5a70ae5"},"/docs/27.0.0/operations/high-availability-959":{"__comp":"17896441","content":"5b0760f4"},"/docs/27.0.0/operations/http-compression-a9c":{"__comp":"17896441","content":"467eff0f"},"/docs/27.0.0/operations/insert-segment-to-db-c33":{"__comp":"17896441","content":"6f828b9d"},"/docs/27.0.0/operations/java-aa1":{"__comp":"17896441","content":"ff54a966"},"/docs/27.0.0/operations/kubernetes-349":{"__comp":"17896441","content":"0570bc82"},"/docs/27.0.0/operations/metadata-migration-62d":{"__comp":"17896441","content":"a6fa4117"},"/docs/27.0.0/operations/metrics-eec":{"__comp":"17896441","content":"ba5e9a77"},"/docs/27.0.0/operations/migrate-from-firehose-f3d":{"__comp":"17896441","content":"489c271a"},"/docs/27.0.0/operations/mixed-workloads-092":{"__comp":"17896441","content":"ce8176fd"},"/docs/27.0.0/operations/other-hadoop-663":{"__comp":"17896441","content":"be6438a3"},"/docs/27.0.0/operations/password-provider-edd":{"__comp":"17896441","content":"4ce36435"},"/docs/27.0.0/operations/pull-deps-14a":{"__comp":"17896441","content":"fba7837c"},"/docs/27.0.0/operations/request-logging-643":{"__comp":"17896441","content":"564e5ede"},"/docs/27.0.0/operations/reset-cluster-f8a":{"__comp":"17896441","content":"b0c8c94d"},"/docs/27.0.0/operations/rolling-updates-1be":{"__comp":"17896441","content":"b90edb99"},"/docs/27.0.0/operations/rule-configuration-be4":{"__comp":"17896441","content":"ab12b060"},"/docs/27.0.0/operations/security-overview-5b0":{"__comp":"17896441","content":"fffe8fc9"},"/docs/27.0.0/operations/security-user-auth-81b":{"__comp":"17896441","content":"c3fe9e45"},"/docs/27.0.0/operations/segment-optimization-acf":{"__comp":"17896441","content":"f385935f"},"/docs/27.0.0/operations/single-server-9ea":{"__comp":"17896441","content":"0c38b730"},"/docs/27.0.0/operations/tls-support-bff":{"__comp":"17896441","content":"6e9f9782"},"/docs/27.0.0/operations/use_sbt_to_build_fat_jar-e23":{"__comp":"17896441","content":"d9482888"},"/docs/27.0.0/operations/web-console-54a":{"__comp":"17896441","content":"c5fa6039"},"/docs/27.0.0/querying/-a80":{"__comp":"17896441","content":"6266df16"},"/docs/27.0.0/querying/aggregations-f33":{"__comp":"17896441","content":"d7970f66"},"/docs/27.0.0/querying/caching-8fc":{"__comp":"17896441","content":"8f9bbce7"},"/docs/27.0.0/querying/datasource-3fa":{"__comp":"17896441","content":"7cf82ef4"},"/docs/27.0.0/querying/datasourcemetadataquery-11e":{"__comp":"17896441","content":"51e89d7b"},"/docs/27.0.0/querying/dimensionspecs-ceb":{"__comp":"17896441","content":"0847a663"},"/docs/27.0.0/querying/filters-4a2":{"__comp":"17896441","content":"e2d85f33"},"/docs/27.0.0/querying/geo-d53":{"__comp":"17896441","content":"a7bacc1c"},"/docs/27.0.0/querying/granularities-f15":{"__comp":"17896441","content":"e06e69d3"},"/docs/27.0.0/querying/groupbyquery-766":{"__comp":"17896441","content":"660420eb"},"/docs/27.0.0/querying/having-cb1":{"__comp":"17896441","content":"26a15966"},"/docs/27.0.0/querying/hll-old-f85":{"__comp":"17896441","content":"b44d71da"},"/docs/27.0.0/querying/joins-c9c":{"__comp":"17896441","content":"e68bcb8a"},"/docs/27.0.0/querying/limitspec-772":{"__comp":"17896441","content":"e786dd9c"},"/docs/27.0.0/querying/lookups-dce":{"__comp":"17896441","content":"4aecde3a"},"/docs/27.0.0/querying/math-expr-8b8":{"__comp":"17896441","content":"1c5a4341"},"/docs/27.0.0/querying/multi-value-dimensions-dae":{"__comp":"17896441","content":"ca5354f2"},"/docs/27.0.0/querying/multitenancy-b68":{"__comp":"17896441","content":"190a9d21"},"/docs/27.0.0/querying/nested-columns-ada":{"__comp":"17896441","content":"98a7954d"},"/docs/27.0.0/querying/post-aggregations-b5d":{"__comp":"17896441","content":"86955b42"},"/docs/27.0.0/querying/query-context-b8e":{"__comp":"17896441","content":"c8039b96"},"/docs/27.0.0/querying/query-deep-storage-31a":{"__comp":"17896441","content":"862dc44c"},"/docs/27.0.0/querying/query-execution-b5f":{"__comp":"17896441","content":"ab4e9ff2"},"/docs/27.0.0/querying/scan-query-068":{"__comp":"17896441","content":"ceacbd30"},"/docs/27.0.0/querying/searchquery-b6c":{"__comp":"17896441","content":"8268280f"},"/docs/27.0.0/querying/segmentmetadataquery-ea2":{"__comp":"17896441","content":"40808cf6"},"/docs/27.0.0/querying/select-query-c76":{"__comp":"17896441","content":"13cb0fed"},"/docs/27.0.0/querying/sorting-orders-e29":{"__comp":"17896441","content":"36074cc5"},"/docs/27.0.0/querying/sql-65f":{"__comp":"17896441","content":"37db48ba"},"/docs/27.0.0/querying/sql-aggregations-d86":{"__comp":"17896441","content":"bbae45ca"},"/docs/27.0.0/querying/sql-array-functions-b7e":{"__comp":"17896441","content":"aab582e3"},"/docs/27.0.0/querying/sql-data-types-d9f":{"__comp":"17896441","content":"1d49538c"},"/docs/27.0.0/querying/sql-functions-e4b":{"__comp":"17896441","content":"5e828b77"},"/docs/27.0.0/querying/sql-json-functions-4a6":{"__comp":"17896441","content":"378099e0"},"/docs/27.0.0/querying/sql-metadata-tables-e05":{"__comp":"17896441","content":"6e39cc41"},"/docs/27.0.0/querying/sql-multivalue-string-functions-ca7":{"__comp":"17896441","content":"9c4f8cf3"},"/docs/27.0.0/querying/sql-operators-506":{"__comp":"17896441","content":"3c5ca8ae"},"/docs/27.0.0/querying/sql-query-context-2ad":{"__comp":"17896441","content":"5b1fe896"},"/docs/27.0.0/querying/sql-scalar-258":{"__comp":"17896441","content":"bc093f15"},"/docs/27.0.0/querying/sql-translation-7d1":{"__comp":"17896441","content":"d9418300"},"/docs/27.0.0/querying/timeboundaryquery-f2c":{"__comp":"17896441","content":"b71c51e3"},"/docs/27.0.0/querying/timeseriesquery-623":{"__comp":"17896441","content":"4d38731e"},"/docs/27.0.0/querying/topnmetricspec-707":{"__comp":"17896441","content":"3e65cc37"},"/docs/27.0.0/querying/topnquery-4c2":{"__comp":"17896441","content":"ec038c28"},"/docs/27.0.0/querying/troubleshooting-bf2":{"__comp":"17896441","content":"82b4d046"},"/docs/27.0.0/querying/using-caching-1da":{"__comp":"17896441","content":"b7f9a5d0"},"/docs/27.0.0/querying/virtual-columns-e91":{"__comp":"17896441","content":"4fbec8af"},"/docs/27.0.0/tutorials/-895":{"__comp":"17896441","content":"0dd147f5"},"/docs/27.0.0/tutorials/cluster-751":{"__comp":"17896441","content":"07bff3a3"},"/docs/27.0.0/tutorials/docker-a03":{"__comp":"17896441","content":"fe78e9bf"},"/docs/27.0.0/tutorials/tutorial-batch-a7e":{"__comp":"17896441","content":"092ec00f"},"/docs/27.0.0/tutorials/tutorial-batch-hadoop-3ce":{"__comp":"17896441","content":"5ec2fb9a"},"/docs/27.0.0/tutorials/tutorial-batch-native-447":{"__comp":"17896441","content":"e8b4ab12"},"/docs/27.0.0/tutorials/tutorial-compaction-bcd":{"__comp":"17896441","content":"90a6f4f3"},"/docs/27.0.0/tutorials/tutorial-delete-data-854":{"__comp":"17896441","content":"fc53f081"},"/docs/27.0.0/tutorials/tutorial-ingestion-spec-775":{"__comp":"17896441","content":"d292824a"},"/docs/27.0.0/tutorials/tutorial-jdbc-a84":{"__comp":"17896441","content":"557865c9"},"/docs/27.0.0/tutorials/tutorial-jupyter-docker-b6e":{"__comp":"17896441","content":"f1539061"},"/docs/27.0.0/tutorials/tutorial-jupyter-index-345":{"__comp":"17896441","content":"fb797459"},"/docs/27.0.0/tutorials/tutorial-kafka-212":{"__comp":"17896441","content":"40772b33"},"/docs/27.0.0/tutorials/tutorial-kerberos-hadoop-446":{"__comp":"17896441","content":"f12f6c10"},"/docs/27.0.0/tutorials/tutorial-msq-convert-spec-8d5":{"__comp":"17896441","content":"8ad3e271"},"/docs/27.0.0/tutorials/tutorial-msq-extern-973":{"__comp":"17896441","content":"ddd4fff4"},"/docs/27.0.0/tutorials/tutorial-query-b26":{"__comp":"17896441","content":"04cbeb7c"},"/docs/27.0.0/tutorials/tutorial-query-deep-storage-056":{"__comp":"17896441","content":"0adcb010"},"/docs/27.0.0/tutorials/tutorial-retention-cbb":{"__comp":"17896441","content":"5112bec6"},"/docs/27.0.0/tutorials/tutorial-rollup-f61":{"__comp":"17896441","content":"35b7da69"},"/docs/27.0.0/tutorials/tutorial-sketches-theta-e1d":{"__comp":"17896441","content":"1b0c45b9"},"/docs/27.0.0/tutorials/tutorial-sql-query-view-b9e":{"__comp":"17896441","content":"d931611c"},"/docs/27.0.0/tutorials/tutorial-transform-spec-174":{"__comp":"17896441","content":"a61d2f3a"},"/docs/27.0.0/tutorials/tutorial-unnest-arrays-a2d":{"__comp":"17896441","content":"bd93f503"},"/docs/27.0.0/tutorials/tutorial-update-data-ffc":{"__comp":"17896441","content":"460a4497"},"/-8ed":{"__comp":"c4f5d8e4","__context":{"plugin":"16e139eb"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=49383,e(e.s=t);var t}));e.O()}]);