/*! For license information please see main.1f0e5e69.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 l={"01019b7b":[function(){return n.e(3079).then(n.bind(n,6660))},"@site/docs/latest/tutorials/cluster.md",6660],"01286a6a":[function(){return n.e(5621).then(n.bind(n,24097))},"@site/docs/latest/development/extensions-core/parquet.md",24097],"0165ae86":[function(){return n.e(5284).then(n.bind(n,56178))},"@site/docs/latest/development/extensions-core/druid-aws-rds.md",56178],"02aa2f6f":[function(){return n.e(406).then(n.bind(n,75760))},"@site/docs/latest/configuration/human-readable-byte.md",75760],"0376c95c":[function(){return n.e(9875).then(n.bind(n,57794))},"@site/docs/latest/operations/kubernetes.md",57794],"05283ef2":[function(){return n.e(2729).then(n.bind(n,36740))},"@site/docs/latest/operations/tls-support.md",36740],"05bce26a":[function(){return n.e(7861).then(n.bind(n,48469))},"@site/docs/latest/ingestion/hadoop.md",48469],"05c5d8b0":[function(){return n.e(9789).then(n.bind(n,31357))},"@site/docs/latest/tutorials/tutorial-jupyter-docker.md",31357],"06350a84":[function(){return n.e(9815).then(n.bind(n,24221))},"@site/docs/latest/tutorials/tutorial-sketches-theta.md",24221],"06bb6c62":[function(){return n.e(8337).then(n.bind(n,32700))},"@site/docs/latest/querying/sql-multivalue-string-functions.md",32700],"0b1078cf":[function(){return n.e(5983).then(n.bind(n,27855))},"@site/docs/latest/tutorials/tutorial-msq-extern.md",27855],"0b432fa0":[function(){return n.e(3043).then(n.bind(n,69526))},"@site/docs/latest/design/zookeeper.md",69526],"0c5549ae":[function(){return n.e(2704).then(n.bind(n,58520))},"@site/docs/latest/data-management/index.md",58520],"0c7364f1":[function(){return n.e(5751).then(n.bind(n,75735))},"@site/docs/latest/querying/virtual-columns.md",75735],"0c83841d":[function(){return n.e(8110).then(n.bind(n,96711))},"@site/docs/latest/ingestion/tasks.md",96711],"0ddfffdf":[function(){return n.e(2723).then(n.bind(n,71921))},"@site/docs/latest/operations/metadata-migration.md",71921],"0e1242db":[function(){return n.e(8404).then(n.bind(n,71988))},"@site/docs/latest/querying/query-execution.md",71988],"0e1d85c5":[function(){return n.e(4472).then(n.bind(n,24569))},"@site/docs/latest/development/overview.md",24569],"0e461f11":[function(){return n.e(6197).then(n.bind(n,84530))},"@site/docs/latest/design/index.md",84530],"0f7339bc":[function(){return n.e(2707).then(n.bind(n,52138))},"@site/docs/latest/querying/arrays.md",52138],"0f8b9ecb":[function(){return n.e(7436).then(n.bind(n,81867))},"@site/docs/latest/comparisons/druid-vs-kudu.md",81867],"13ec796f":[function(){return n.e(6457).then(n.bind(n,14858))},"@site/docs/latest/querying/query-context.md",14858],"144855fb":[function(){return n.e(8911).then(n.bind(n,38073))},"@site/docs/latest/operations/other-hadoop.md",38073],"147fd7c7":[function(){return n.e(8296).then(n.bind(n,12894))},"@site/docs/latest/development/javascript.md",12894],"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],"180c7d3d":[function(){return n.e(9543).then(n.bind(n,14379))},"@site/docs/latest/data-management/compaction.md",14379],"1981460b":[function(){return n.e(8215).then(n.bind(n,38414))},"@site/docs/latest/operations/pull-deps.md",38414],"1a239e8f":[function(){return n.e(5615).then(n.bind(n,5332))},"@site/docs/latest/operations/segment-optimization.md",5332],"1be78505":[function(){return Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,19963))},"@theme/DocPage",19963],"1c6eaaf8":[function(){return n.e(1437).then(n.bind(n,3781))},"@site/docs/latest/operations/single-server.md",3781],"1d0359fb":[function(){return n.e(7274).then(n.bind(n,75237))},"@site/docs/latest/development/extensions-core/druid-ranger-security.md",75237],"1e267fd0":[function(){return n.e(8259).then(n.bind(n,51552))},"@site/docs/latest/ingestion/tranquility.md",51552],"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],"236a1a4a":[function(){return n.e(2331).then(n.bind(n,89185))},"@site/docs/latest/development/extensions-core/kafka-supervisor-reference.md",89185],"2677d7b8":[function(){return n.e(6320).then(n.bind(n,56922))},"@site/docs/latest/multi-stage-query/examples.md",56922],"274a38ba":[function(){return n.e(4776).then(n.bind(n,66742))},"@site/docs/latest/ingestion/index.md",66742],"2785fc82":[function(){return n.e(5475).then(n.bind(n,43764))},"@site/docs/latest/development/extensions-contrib/redis-cache.md",43764],"278e5cb2":[function(){return n.e(6912).then(n.bind(n,12819))},"@site/docs/latest/api-reference/lookups-api.md",12819],"28797c76":[function(){return n.e(4300).then(n.bind(n,63487))},"@site/docs/latest/operations/high-availability.md",63487],"292ba8e7":[function(){return n.e(1054).then(n.bind(n,70051))},"@site/docs/latest/ingestion/input-sources.md",70051],"293487cb":[function(){return n.e(3159).then(n.bind(n,86025))},"@site/docs/latest/ingestion/ingestion-spec.md",86025],"2ab55e37":[function(){return n.e(3370).then(n.bind(n,50355))},"@site/docs/latest/operations/dynamic-config-provider.md",50355],"2de98abf":[function(){return n.e(685).then(n.bind(n,11813))},"@site/docs/latest/development/extensions-core/datasketches-kll.md",11813],"2ec3a9a7":[function(){return n.e(6762).then(n.bind(n,71531))},"@site/docs/latest/api-reference/sql-jdbc.md",71531],"2fbe7d8e":[function(){return n.e(7549).then(n.bind(n,42455))},"@site/docs/latest/querying/sql.md",42455],"2feb98fa":[function(){return n.e(674).then(n.bind(n,47405))},"@site/docs/latest/querying/post-aggregations.md",47405],"3202af10":[function(){return n.e(2522).then(n.bind(n,69955))},"@site/docs/latest/comparisons/druid-vs-sql-on-hadoop.md",69955],"327b842b":[function(){return n.e(5397).then(n.bind(n,68239))},"@site/docs/latest/operations/reset-cluster.md",68239],"32f5b141":[function(){return n.e(8912).then(n.bind(n,62356))},"@site/docs/latest/development/docs-contribute.md",62356],"32fb84ff":[function(){return n.e(43).then(n.bind(n,12857))},"@site/docs/latest/design/deep-storage.md",12857],"337cc2af":[function(){return n.e(6302).then(n.bind(n,18118))},"@site/docs/latest/operations/request-logging.md",18118],"33d88741":[function(){return n.e(1659).then(n.bind(n,50226))},"@site/docs/latest/tutorials/tutorial-retention.md",50226],"34fe466c":[function(){return n.e(1999).then(n.bind(n,26770))},"@site/docs/latest/configuration/logging.md",26770],"358eef7e":[function(){return n.e(972).then(n.bind(n,10002))},"@site/docs/latest/development/extensions-contrib/cloudfiles.md",10002],"35ed644f":[function(){return n.e(5208).then(n.bind(n,17611))},"@site/docs/latest/development/extensions-core/mysql.md",17611],"36497d9a":[function(){return n.e(5763).then(n.bind(n,30254))},"@site/docs/latest/development/extensions-core/protobuf.md",30254],"3698f0ce":[function(){return n.e(9327).then(n.bind(n,27722))},"@site/docs/latest/development/extensions-core/datasketches-hll.md",27722],"392ede42":[function(){return n.e(5898).then(n.bind(n,9875))},"@site/docs/latest/operations/password-provider.md",9875],"3ba5c2fc":[function(){return n.e(7185).then(n.bind(n,58730))},"@site/docs/latest/operations/mixed-workloads.md",58730],"3ccbe206":[function(){return Promise.all([n.e(532),n.e(6170)]).then(n.bind(n,34735))},"@site/docs/latest/api-reference/sql-ingestion-api.md",34735],"3d095abc":[function(){return n.e(421).then(n.bind(n,8023))},"@site/docs/latest/tutorials/tutorial-update-data.md",8023],"3f0b55c4":[function(){return n.e(3161).then(n.bind(n,13289))},"@site/docs/latest/operations/deep-storage-migration.md",13289],"3f8e7beb":[function(){return n.e(8142).then(n.bind(n,34283))},"@site/docs/latest/tutorials/tutorial-delete-data.md",34283],"3fc4ca5f":[function(){return n.e(8447).then(n.bind(n,74747))},"@site/docs/latest/multi-stage-query/security.md",74747],"408f2282":[function(){return n.e(2939).then(n.bind(n,61920))},"@site/docs/latest/operations/durable-storage.md",61920],"40d22985":[function(){return n.e(5407).then(n.bind(n,87657))},"@site/docs/latest/development/extensions-core/hdfs.md",87657],"412ee224":[function(){return n.e(9138).then(n.bind(n,64398))},"@site/docs/latest/operations/metrics.md",64398],"414403c6":[function(){return n.e(1830).then(n.bind(n,42620))},"@site/docs/latest/development/extensions-core/s3.md",42620],"42be3a3f":[function(){return n.e(9466).then(n.bind(n,75173))},"@site/docs/latest/design/broker.md",75173],"43c5580d":[function(){return n.e(9800).then(n.bind(n,80302))},"@site/docs/latest/operations/basic-cluster-tuning.md",80302],"4451b7a8":[function(){return n.e(1274).then(n.bind(n,28658))},"@site/docs/latest/development/modules.md",28658],"445bf8fb":[function(){return n.e(9626).then(n.bind(n,62140))},"@site/docs/latest/development/extensions-contrib/iceberg.md",62140],"45247bbe":[function(){return n.e(848).then(n.bind(n,47409))},"@site/docs/latest/api-reference/legacy-metadata-api.md",47409],"45512dc1":[function(){return n.e(5132).then(n.bind(n,48542))},"@site/docs/latest/operations/migrate-from-firehose-ingestion.md",48542],"4a060e30":[function(){return n.e(5326).then(n.bind(n,66801))},"@site/docs/latest/operations/auth.md",66801],"4cf66254":[function(){return n.e(2673).then(n.bind(n,17373))},"@site/docs/latest/tutorials/tutorial-query.md",17373],"4eb80632":[function(){return n.e(6830).then(n.bind(n,35269))},"@site/docs/latest/multi-stage-query/known-issues.md",35269],"4fbcb8e1":[function(){return n.e(3006).then(n.bind(n,18783))},"@site/docs/latest/tutorials/tutorial-batch-hadoop.md",18783],"5270ae94":[function(){return n.e(2167).then(n.bind(n,13522))},"@site/docs/latest/development/extensions-contrib/gce-extensions.md",13522],"52b6c25c":[function(){return n.e(6603).then(n.bind(n,75837))},"@site/docs/latest/development/extensions-core/orc.md",75837],"53a4fd00":[function(){return n.e(4851).then(n.bind(n,24335))},"@site/docs/latest/development/extensions-contrib/distinctcount.md",24335],"54a411b6":[function(){return n.e(871).then(n.bind(n,24990))},"@site/docs/latest/development/extensions-core/azure.md",24990],"554afeae":[function(){return n.e(3727).then(n.bind(n,80638))},"@site/docs/latest/development/versioning.md",80638],"55e202dc":[function(){return n.e(7662).then(n.bind(n,80806))},"@site/docs/latest/configuration/index.md",80806],"56374a56":[function(){return n.e(4479).then(n.bind(n,20858))},"@site/docs/latest/querying/timeboundaryquery.md",20858],"567f2b24":[function(){return n.e(7403).then(n.bind(n,22701))},"@site/docs/latest/design/indexer.md",22701],"582a09ff":[function(){return n.e(7678).then(n.bind(n,21657))},"@site/docs/latest/ingestion/schema-model.md",21657],"59acd16c":[function(){return n.e(981).then(n.bind(n,42021))},"@site/docs/latest/development/extensions-core/simple-client-sslcontext.md",42021],"5a08e3a4":[function(){return n.e(9339).then(n.bind(n,38384))},"@site/docs/latest/api-reference/data-management-api.md",38384],"5a9f7f50":[function(){return n.e(6520).then(n.bind(n,63839))},"@site/docs/latest/misc/papers-and-talks.md",63839],"5aad1f90":[function(){return n.e(6814).then(n.bind(n,24294))},"@site/docs/latest/querying/having.md",24294],"5b0c39fb":[function(){return n.e(8431).then(n.bind(n,66792))},"@site/docs/latest/ingestion/native-batch-firehose.md",66792],"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],"5c76467a":[function(){return Promise.all([n.e(532),n.e(1718)]).then(n.bind(n,7592))},"@site/docs/latest/api-reference/retention-rules-api.md",7592],"5cbdf55c":[function(){return n.e(7891).then(n.bind(n,94643))},"@site/docs/latest/design/extensions-contrib/dropwizard.md",94643],"5e9ea8d6":[function(){return n.e(4807).then(n.bind(n,68796))},"@site/docs/latest/querying/sql-data-types.md",68796],"5e9f5e1a":[function(){return Promise.resolve().then(n.bind(n,36809))},"@generated/docusaurus.config",36809],"5eba74a6":[function(){return n.e(6566).then(n.bind(n,14397))},"@site/docs/latest/api-reference/api-reference.md",14397],"5ff9c08d":[function(){return n.e(3143).then(n.bind(n,48181))},"@site/docs/latest/api-reference/dynamic-configuration-api.md",48181],"5ffc9c90":[function(){return n.e(1459).then(n.bind(n,18456))},"@site/docs/latest/tutorials/tutorial-rollup.md",18456],60453156:[function(){return n.e(4865).then(n.bind(n,72534))},"@site/docs/latest/operations/security-user-auth.md",72534],"60b9c99e":[function(){return n.e(628).then(n.bind(n,60375))},"@site/docs/latest/operations/web-console.md",60375],"613e19b7":[function(){return n.e(2941).then(n.bind(n,77043))},"@site/docs/latest/ingestion/native-batch-simple-task.md",77043],"615c06f6":[function(){return n.e(1475).then(n.bind(n,18829))},"@site/docs/latest/querying/groupbyquery.md",18829],"62fd7da7":[function(){return n.e(9457).then(n.bind(n,43479))},"@site/docs/latest/development/extensions-contrib/influx.md",43479],"63a5d816":[function(){return n.e(9975).then(n.bind(n,14125))},"@site/docs/latest/multi-stage-query/index.md",14125],"651ab57e":[function(){return n.e(6306).then(n.bind(n,39720))},"@site/docs/latest/comparisons/druid-vs-elasticsearch.md",39720],"6865240a":[function(){return n.e(3513).then(n.bind(n,30757))},"@site/docs/latest/data-management/automatic-compaction.md",30757],"688a6cad":[function(){return n.e(5972).then(n.bind(n,18586))},"@site/docs/latest/tutorials/tutorial-ingestion-spec.md",18586],"6bb9967c":[function(){return n.e(7971).then(n.bind(n,86083))},"@site/docs/latest/operations/security-overview.md",86083],"6d081973":[function(){return n.e(3943).then(n.bind(n,75591))},"@site/docs/latest/querying/math-expr.md",75591],"704b58a6":[function(){return n.e(7132).then(n.bind(n,98738))},"@site/docs/latest/querying/filters.md",98738],"7081bcd7":[function(){return n.e(8449).then(n.bind(n,48450))},"@site/docs/latest/comparisons/druid-vs-key-value.md",48450],"712138dd":[function(){return n.e(6254).then(n.bind(n,10930))},"@site/docs/latest/development/build.md",10930],"7178b9b6":[function(){return n.e(697).then(n.bind(n,60988))},"@site/docs/latest/ingestion/rollup.md",60988],"71de5257":[function(){return n.e(2703).then(n.bind(n,59037))},"@site/docs/latest/release-info/upgrade-notes.md",59037],"723062a3":[function(){return n.e(769).then(n.bind(n,45371))},"@site/docs/latest/design/middlemanager.md",45371],"740ee517":[function(){return n.e(3934).then(n.bind(n,39183))},"@site/docs/latest/querying/sql-query-context.md",39183],"76cc4805":[function(){return n.e(3837).then(n.bind(n,99570))},"@site/docs/latest/development/extensions-contrib/materialized-view.md",99570],"77f7adac":[function(){return n.e(2124).then(n.bind(n,51018))},"@site/docs/latest/querying/sql-aggregations.md",51018],"78df240a":[function(){return n.e(9548).then(n.bind(n,85976))},"@site/docs/latest/development/extensions-core/druid-lookups.md",85976],"7a0ffe1e":[function(){return n.e(4104).then(n.bind(n,81481))},"@site/docs/latest/multi-stage-query/reference.md",81481],"7ef2feef":[function(){return n.e(9284).then(n.bind(n,55579))},"@site/docs/latest/tutorials/tutorial-query-deep-storage.md",55579],"7f477080":[function(){return n.e(5747).then(n.bind(n,12393))},"@site/docs/latest/development/extensions-core/kafka-supervisor-operations.md",12393],"7f61aae6":[function(){return n.e(3178).then(n.bind(n,3500))},"@site/docs/latest/tutorials/tutorial-compaction.md",3500],"7f7990e2":[function(){return n.e(6626).then(n.bind(n,85317))},"@site/docs/latest/development/extensions-core/test-stats.md",85317],"83593c6b":[function(){return n.e(6557).then(n.bind(n,25695))},"@site/docs/latest/querying/granularities.md",25695],"83a49702":[function(){return Promise.all([n.e(532),n.e(4901)]).then(n.bind(n,10278))},"@site/docs/latest/api-reference/service-status-api.md",10278],"83f7537e":[function(){return n.e(1899).then(n.bind(n,23180))},"@site/docs/latest/development/extensions-core/kubernetes.md",23180],"84a6c3d0":[function(){return n.e(824).then(n.bind(n,21483))},"@site/docs/latest/querying/select-query.md",21483],"8549cd83":[function(){return n.e(4139).then(n.bind(n,3692))},"@site/docs/latest/querying/lookups.md",3692],85811133:[function(){return n.e(3535).then(n.bind(n,31502))},"@site/docs/latest/design/coordinator.md",31502],"8603200e":[function(){return n.e(5403).then(n.bind(n,78377))},"@site/docs/latest/querying/querying.md",78377],86365239:[function(){return n.e(6060).then(n.bind(n,65914))},"@site/docs/latest/development/extensions-contrib/statsd.md",65914],"86f503e8":[function(){return n.e(6239).then(n.bind(n,16382))},"@site/docs/latest/tutorials/tutorial-jdbc.md",16382],"881b6e93":[function(){return n.e(1097).then(n.bind(n,20680))},"@site/docs/latest/ingestion/standalone-realtime.md",20680],"8902724d":[function(){return n.e(5244).then(n.bind(n,32809))},"@site/docs/latest/data-management/update.md",32809],"8a63feaa":[function(){return n.e(2309).then(n.bind(n,23493))},"@site/docs/latest/tutorials/tutorial-jupyter-index.md",23493],"8adc1ef6":[function(){return n.e(4427).then(n.bind(n,34623))},"@site/docs/latest/development/extensions-core/kafka-ingestion.md",34623],"8adf3ad1":[function(){return n.e(8485).then(n.bind(n,37152))},"@site/docs/latest/ingestion/data-formats.md",37152],"8cdd5c5f":[function(){return n.e(5027).then(n.bind(n,48867))},"@site/docs/latest/querying/sql-array-functions.md",48867],"8d04c7dd":[function(){return n.e(873).then(n.bind(n,89884))},"@site/docs/latest/development/extensions-contrib/time-min-max.md",89884],"8d4becf1":[function(){return n.e(3262).then(n.bind(n,46485))},"@site/docs/latest/design/historical.md",46485],"8e1c0edb":[function(){return n.e(7050).then(n.bind(n,46792))},"@site/docs/latest/development/extensions-contrib/influxdb-emitter.md",46792],"8e305ed1":[function(){return Promise.all([n.e(532),n.e(7005)]).then(n.bind(n,8117))},"@site/docs/latest/development/extensions-core/kinesis-ingestion.md",8117],"8e848799":[function(){return n.e(5589).then(n.bind(n,29064))},"@site/docs/latest/configuration/extensions.md",29064],"8e96f099":[function(){return n.e(1882).then(n.bind(n,90429))},"@site/docs/latest/querying/dimensionspecs.md",90429],"90cf7f37":[function(){return n.e(9972).then(n.bind(n,7868))},"@site/docs/latest/querying/sorting-orders.md",7868],"910d61b6":[function(){return n.e(8868).then(n.bind(n,54570))},"@site/docs/latest/development/extensions-core/postgresql.md",54570],"91d46102":[function(){return n.e(1762).then(n.bind(n,91944))},"@site/docs/latest/querying/datasourcemetadataquery.md",91944],"91e63cf7":[function(){return n.e(7986).then(n.bind(n,93692))},"@site/docs/latest/development/extensions-core/lookups-cached-global.md",93692],"9216ddc9":[function(){return n.e(2929).then(n.bind(n,74641))},"@site/docs/latest/design/architecture.md",74641],"935f2afb":[function(){return n.e(53).then(n.t.bind(n,1109,19))},"~docs/default/version-current-metadata-prop-751.json",1109],"945892f2":[function(){return n.e(3793).then(n.bind(n,94613))},"@site/docs/latest/development/extensions-core/druid-basic-security.md",94613],"954f55a3":[function(){return n.e(3013).then(n.bind(n,86828))},"@site/docs/latest/development/extensions-core/bloom-filter.md",86828],"9557406b":[function(){return n.e(3061).then(n.bind(n,32188))},"@site/docs/latest/querying/sql-translation.md",32188],"95eaac7a":[function(){return n.e(8683).then(n.bind(n,3140))},"@site/docs/latest/design/peons.md",3140],98321876:[function(){return n.e(788).then(n.bind(n,36339))},"@site/docs/latest/comparisons/druid-vs-redshift.md",36339],98453339:[function(){return n.e(2206).then(n.bind(n,411))},"@site/docs/latest/multi-stage-query/concepts.md",411],"98d928e9":[function(){return n.e(142).then(n.bind(n,48201))},"@site/docs/latest/development/experimental.md",48201],"98da0572":[function(){return n.e(5538).then(n.bind(n,57697))},"@site/docs/latest/querying/troubleshooting.md",57697],"99d91b5a":[function(){return n.e(3470).then(n.bind(n,56439))},"@site/docs/latest/data-management/delete.md",56439],"9c039e3e":[function(){return n.e(5).then(n.bind(n,59516))},"@site/docs/latest/querying/topnmetricspec.md",59516],"9dd30c58":[function(){return n.e(595).then(n.bind(n,33946))},"@site/docs/latest/release-info/release-notes.md",33946],a0de97c3:[function(){return n.e(5808).then(n.bind(n,56325))},"@site/src/pages/blog.md",56325],a129ef7f:[function(){return n.e(4407).then(n.bind(n,87806))},"@site/docs/latest/querying/hll-old.md",87806],a155e191:[function(){return n.e(4468).then(n.bind(n,11628))},"@site/docs/latest/querying/joins.md",11628],a246c79f:[function(){return n.e(4057).then(n.bind(n,10354))},"@site/docs/latest/development/extensions-contrib/tdigestsketch-quantiles.md",10354],a37f7d8e:[function(){return n.e(3030).then(n.bind(n,79959))},"@site/docs/latest/querying/topnquery.md",79959],a3c37aca:[function(){return Promise.all([n.e(532),n.e(774)]).then(n.bind(n,19715))},"@site/docs/latest/api-reference/json-querying-api.md",19715],a612578d:[function(){return n.e(7199).then(n.bind(n,93330))},"@site/docs/latest/development/extensions-core/datasketches-tuple.md",93330],a8cc8574:[function(){return n.e(4153).then(n.bind(n,48888))},"@site/docs/latest/querying/segmentmetadataquery.md",48888],a91680d2:[function(){return n.e(868).then(n.bind(n,17744))},"@site/docs/latest/development/extensions-core/avro.md",17744],a94c6434:[function(){return n.e(52).then(n.bind(n,62660))},"@site/docs/latest/querying/sql-operators.md",62660],aa7b9828:[function(){return n.e(7180).then(n.bind(n,35465))},"@site/docs/latest/development/extensions-contrib/moving-average-query.md",35465],ab046938:[function(){return n.e(7492).then(n.bind(n,99997))},"@site/docs/latest/api-reference/automatic-compaction-api.md",99997],af159704:[function(){return n.e(3950).then(n.bind(n,88422))},"@site/docs/latest/development/extensions-contrib/k8s-jobs.md",88422],af2a22a3:[function(){return n.e(4004).then(n.bind(n,20535))},"@site/docs/latest/development/extensions-core/datasketches-theta.md",20535],af79f0c6:[function(){return n.e(4478).then(n.bind(n,55254))},"@site/docs/latest/development/extensions-core/datasketches-quantiles.md",55254],affbd492:[function(){return n.e(4863).then(n.bind(n,17473))},"@site/docs/latest/querying/caching.md",17473],b0c79e6c:[function(){return n.e(3907).then(n.bind(n,40894))},"@site/docs/latest/tutorials/docker.md",40894],b2d41fa9:[function(){return n.e(2272).then(n.bind(n,49268))},"@site/docs/latest/querying/sql-functions.md",49268],b307eceb:[function(){return n.e(7248).then(n.bind(n,68517))},"@site/docs/latest/querying/searchquery.md",68517],b4129207:[function(){return n.e(4285).then(n.bind(n,27674))},"@site/docs/latest/development/extensions-core/druid-pac4j.md",27674],b54a2972:[function(){return n.e(7526).then(n.bind(n,14561))},"@site/docs/latest/development/extensions-core/datasketches-extension.md",14561],b639be62:[function(){return n.e(9775).then(n.bind(n,78929))},"@site/docs/latest/querying/scan-query.md",78929],b6d922f1:[function(){return n.e(9076).then(n.bind(n,95383))},"@site/src/pages/downloads.mdx",95383],b964b515:[function(){return n.e(5943).then(n.bind(n,56103))},"@site/docs/latest/tutorials/tutorial-kafka.md",56103],ba37ccec:[function(){return n.e(3523).then(n.bind(n,10102))},"@site/docs/latest/development/extensions-contrib/aliyun-oss-extensions.md",10102],ba471ed5:[function(){return n.e(4084).then(n.bind(n,70429))},"@site/docs/latest/tutorials/tutorial-sql-query-view.md",70429],bb4c931d:[function(){return n.e(936).then(n.bind(n,88895))},"@site/docs/latest/design/metadata-storage.md",88895],bee5d326:[function(){return n.e(5546).then(n.bind(n,3367))},"@site/docs/latest/querying/sql-metadata-tables.md",3367],c0161e79:[function(){return n.e(7269).then(n.bind(n,9749))},"@site/docs/latest/design/segments.md",9749],c0ee7c6a:[function(){return n.e(155).then(n.bind(n,19457))},"@site/docs/latest/tutorials/tutorial-transform-spec.md",19457],c223c992:[function(){return Promise.all([n.e(532),n.e(8358)]).then(n.bind(n,49879))},"@site/docs/latest/tutorials/tutorial-unnest-arrays.md",49879],c233c888:[function(){return n.e(4274).then(n.bind(n,83271))},"@site/docs/latest/operations/rolling-updates.md",83271],c2ae6274:[function(){return n.e(2754).then(n.bind(n,96004))},"@site/docs/latest/ingestion/schema-design.md",96004],c4cd877c:[function(){return n.e(6350).then(n.bind(n,70470))},"@site/docs/latest/development/extensions-core/kafka-extraction-namespace.md",70470],c4f5d8e4:[function(){return Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,99845))},"@site/src/pages/index.js",99845],c5760f30:[function(){return n.e(1203).then(n.bind(n,80882))},"@site/docs/latest/querying/sql-scalar.md",80882],c6999de6:[function(){return n.e(9837).then(n.bind(n,20296))},"@site/docs/latest/ingestion/faq.md",20296],c74ccf1e:[function(){return n.e(4377).then(n.bind(n,31568))},"@site/docs/latest/operations/java.md",31568],c76ab4db:[function(){return n.e(3258).then(n.bind(n,84606))},"@site/docs/latest/comparisons/druid-vs-spark.md",84606],c84b7027:[function(){return n.e(4486).then(n.bind(n,19775))},"@site/docs/latest/development/extensions-contrib/kafka-emitter.md",19775],c946c085:[function(){return n.e(7722).then(n.bind(n,79497))},"@site/docs/latest/operations/use_sbt_to_build_fat_jar.md",79497],c998defe:[function(){return n.e(4482).then(n.bind(n,25638))},"@site/docs/latest/development/experimental-features.md",25638],c9fa3e8f:[function(){return n.e(6686).then(n.bind(n,19399))},"@site/docs/latest/querying/sql-json-functions.md",19399],caed696f:[function(){return n.e(3770).then(n.bind(n,20519))},"@site/docs/latest/querying/multi-value-dimensions.md",20519],cb88f4a3:[function(){return n.e(4942).then(n.bind(n,23380))},"@site/docs/latest/tutorials/tutorial-kerberos-hadoop.md",23380],cd07172b:[function(){return n.e(9777).then(n.bind(n,16101))},"@site/docs/latest/querying/timeseriesquery.md",16101],cd22c7ca:[function(){return n.e(8069).then(n.bind(n,75565))},"@site/docs/latest/tutorials/tutorial-batch.md",75565],cd9e4e04:[function(){return n.e(4272).then(n.bind(n,19009))},"@site/docs/latest/development/extensions-core/google.md",19009],cdec71b5:[function(){return Promise.all([n.e(532),n.e(8008)]).then(n.bind(n,540))},"@site/docs/latest/api-reference/supervisor-api.md",540],ce4dff4d:[function(){return n.e(7035).then(n.bind(n,47303))},"@site/docs/latest/querying/multitenancy.md",47303],cea8fd56:[function(){return Promise.all([n.e(532),n.e(5773)]).then(n.bind(n,32747))},"@site/docs/latest/querying/nested-columns.md",32747],cef2afce:[function(){return n.e(309).then(n.bind(n,99530))},"@site/docs/latest/development/extensions-contrib/thrift.md",99530],d05704bd:[function(){return n.e(3955).then(n.bind(n,57895))},"@site/docs/latest/development/extensions-contrib/compressed-big-decimal.md",57895],d05fa046:[function(){return n.e(3827).then(n.bind(n,96893))},"@site/docs/latest/data-management/schema-changes.md",96893],d24799e9:[function(){return n.e(3855).then(n.bind(n,24595))},"@site/docs/latest/tutorials/tutorial-msq-convert-spec.md",24595],d2eba29c:[function(){return n.e(4881).then(n.bind(n,44320))},"@site/docs/latest/querying/sql-window-functions.md",44320],d3a077b9:[function(){return n.e(4409).then(n.bind(n,64520))},"@site/docs/latest/development/extensions-core/druid-kerberos.md",64520],d5580824:[function(){return n.e(2770).then(n.bind(n,32853))},"@site/docs/latest/development/extensions-contrib/momentsketch-quantiles.md",32853],d6226c05:[function(){return n.e(7573).then(n.bind(n,3508))},"@site/docs/latest/tutorials/tutorial-batch-native.md",3508],d6a8f8f9:[function(){return Promise.all([n.e(532),n.e(1885)]).then(n.bind(n,73792))},"@site/docs/latest/api-reference/tasks-api.md",73792],d6bc9e72:[function(){return n.e(5283).then(n.bind(n,68126))},"@site/src/pages/libraries.md",68126],d721507d:[function(){return n.e(307).then(n.bind(n,51355))},"@site/docs/latest/operations/dump-segment.md",51355],d8c9bb91:[function(){return n.e(7363).then(n.bind(n,76279))},"@site/docs/latest/operations/auth-ldap.md",76279],d8e0d2fb:[function(){return n.e(5018).then(n.bind(n,67239))},"@site/docs/latest/operations/alerts.md",67239],daff6454:[function(){return n.e(5988).then(n.bind(n,54531))},"@site/docs/latest/querying/limitspec.md",54531],db509a08:[function(){return n.e(5971).then(n.bind(n,55272))},"@site/docs/latest/querying/tips-good-queries.md",55272],dc86ecba:[function(){return n.e(2374).then(n.bind(n,96434))},"@site/docs/latest/tutorials/index.md",96434],dc8d8ba6:[function(){return n.e(5338).then(n.bind(n,62203))},"@site/src/pages/druid-powered.md",62203],dd08839c:[function(){return n.e(1239).then(n.bind(n,17722))},"@site/docs/latest/design/router.md",17722],dd1dce50:[function(){return n.e(261).then(n.bind(n,7135))},"@site/docs/latest/design/indexing-service.md",7135],dd7937ca:[function(){return n.e(1075).then(n.bind(n,1303))},"@site/docs/latest/development/extensions-contrib/cassandra.md",1303],dd79da31:[function(){return n.e(2885).then(n.bind(n,35008))},"@site/docs/latest/operations/insert-segment-to-db.md",35008],e276423b:[function(){return n.e(648).then(n.bind(n,33985))},"@site/docs/latest/development/extensions-core/examples.md",33985],e3609e88:[function(){return n.e(6082).then(n.bind(n,28047))},"@site/docs/latest/querying/geo.md",28047],e44d1fc1:[function(){return Promise.all([n.e(532),n.e(1758)]).then(n.bind(n,35789))},"@site/docs/latest/querying/datasource.md",35789],e5b4ea37:[function(){return n.e(7941).then(n.bind(n,75996))},"@site/docs/latest/development/extensions-contrib/prometheus.md",75996],e66b7786:[function(){return n.e(1311).then(n.bind(n,12824))},"@site/docs/latest/development/extensions-contrib/opentsdb-emitter.md",12824],e67f5660:[function(){return n.e(2018).then(n.bind(n,78766))},"@site/docs/latest/operations/export-metadata.md",78766],e6ea7cb8:[function(){return n.e(2561).then(n.bind(n,14683))},"@site/docs/latest/operations/rule-configuration.md",14683],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],e9483372:[function(){return n.e(8903).then(n.bind(n,4672))},"@site/src/pages/use-cases.md",4672],e988a960:[function(){return Promise.all([n.e(532),n.e(2681)]).then(n.bind(n,41074))},"@site/docs/latest/api-reference/sql-api.md",41074],eaffe8b7:[function(){return n.e(7146).then(n.bind(n,30655))},"@site/src/pages/community/cla.md",30655],ec0533e6:[function(){return n.e(4846).then(n.bind(n,78833))},"@site/docs/latest/development/extensions-contrib/graphite.md",78833],ec47ab22:[function(){return n.e(5468).then(n.bind(n,39580))},"@site/docs/latest/design/processes.md",39580],ec725065:[function(){return n.e(7542).then(n.bind(n,93556))},"@site/docs/latest/design/overlord.md",93556],efa71475:[function(){return n.e(4700).then(n.bind(n,66223))},"@site/src/pages/community/join-slack.md",66223],f04833a0:[function(){return n.e(8390).then(n.bind(n,40532))},"@site/docs/latest/operations/clean-metadata-store.md",40532],f0a1c229:[function(){return n.e(8917).then(n.bind(n,28853))},"@site/docs/latest/querying/query-from-deep-storage.md",28853],f0bb013e:[function(){return n.e(3913).then(n.bind(n,56727))},"@site/docs/latest/operations/http-compression.md",56727],f2fce74c:[function(){return n.e(6926).then(n.bind(n,91728))},"@site/docs/latest/development/extensions-core/approximate-histograms.md",91728],f325f28e:[function(){return n.e(1627).then(n.bind(n,26981))},"@site/docs/latest/development/extensions-contrib/ambari-metrics-emitter.md",26981],f50e9825:[function(){return n.e(1453).then(n.bind(n,84634))},"@site/docs/latest/querying/using-caching.md",84634],f5acae74:[function(){return n.e(2909).then(n.bind(n,18254))},"@site/docs/latest/ingestion/partitioning.md",18254],f74ace7b:[function(){return n.e(1594).then(n.bind(n,31531))},"@site/docs/latest/development/extensions-contrib/sqlserver.md",31531],f76af10b:[function(){return n.e(7145).then(n.bind(n,21805))},"@site/docs/latest/development/extensions-core/stats.md",21805],f8b35359:[function(){return n.e(6440).then(n.bind(n,54583))},"@site/docs/latest/ingestion/native-batch.md",54583],fa493215:[function(){return n.e(9934).then(n.bind(n,28151))},"@site/docs/latest/querying/aggregations.md",28151],fc6529ab:[function(){return n.e(6160).then(n.bind(n,22841))},"@site/docs/latest/data-management/manual-compaction.md",22841]};function c(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:c,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=l[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:c,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 l=i.__context;return delete i.__context,r.createElement(d.z,{value:l},r.createElement(s,(0,o.Z)({},i,n)))}})}const f=[{path:"/blog",component:p("/blog","8fb"),exact:!0},{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/latest",component:p("/docs/latest","0a9"),routes:[{path:"/docs/latest/api-reference/",component:p("/docs/latest/api-reference/","268"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/automatic-compaction-api",component:p("/docs/latest/api-reference/automatic-compaction-api","ca5"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/data-management-api",component:p("/docs/latest/api-reference/data-management-api","2f6"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/dynamic-configuration-api",component:p("/docs/latest/api-reference/dynamic-configuration-api","673"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/json-querying-api",component:p("/docs/latest/api-reference/json-querying-api","742"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/legacy-metadata-api",component:p("/docs/latest/api-reference/legacy-metadata-api","718"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/lookups-api",component:p("/docs/latest/api-reference/lookups-api","dc0"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/retention-rules-api",component:p("/docs/latest/api-reference/retention-rules-api","bd5"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/service-status-api",component:p("/docs/latest/api-reference/service-status-api","c55"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/sql-api",component:p("/docs/latest/api-reference/sql-api","329"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/sql-ingestion-api",component:p("/docs/latest/api-reference/sql-ingestion-api","a1e"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/sql-jdbc",component:p("/docs/latest/api-reference/sql-jdbc","b16"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/supervisor-api",component:p("/docs/latest/api-reference/supervisor-api","a3d"),exact:!0,sidebar:"docs"},{path:"/docs/latest/api-reference/tasks-api",component:p("/docs/latest/api-reference/tasks-api","4d5"),exact:!0,sidebar:"docs"},{path:"/docs/latest/comparisons/druid-vs-elasticsearch",component:p("/docs/latest/comparisons/druid-vs-elasticsearch","503"),exact:!0},{path:"/docs/latest/comparisons/druid-vs-key-value",component:p("/docs/latest/comparisons/druid-vs-key-value","7fa"),exact:!0},{path:"/docs/latest/comparisons/druid-vs-kudu",component:p("/docs/latest/comparisons/druid-vs-kudu","4a0"),exact:!0},{path:"/docs/latest/comparisons/druid-vs-redshift",component:p("/docs/latest/comparisons/druid-vs-redshift","9d3"),exact:!0},{path:"/docs/latest/comparisons/druid-vs-spark",component:p("/docs/latest/comparisons/druid-vs-spark","c92"),exact:!0},{path:"/docs/latest/comparisons/druid-vs-sql-on-hadoop",component:p("/docs/latest/comparisons/druid-vs-sql-on-hadoop","ff1"),exact:!0},{path:"/docs/latest/configuration/",component:p("/docs/latest/configuration/","0f3"),exact:!0,sidebar:"docs"},{path:"/docs/latest/configuration/extensions",component:p("/docs/latest/configuration/extensions","90b"),exact:!0,sidebar:"docs"},{path:"/docs/latest/configuration/human-readable-byte",component:p("/docs/latest/configuration/human-readable-byte","0c4"),exact:!0},{path:"/docs/latest/configuration/logging",component:p("/docs/latest/configuration/logging","3cf"),exact:!0,sidebar:"docs"},{path:"/docs/latest/data-management/",component:p("/docs/latest/data-management/","2b4"),exact:!0,sidebar:"docs"},{path:"/docs/latest/data-management/automatic-compaction",component:p("/docs/latest/data-management/automatic-compaction","c23"),exact:!0,sidebar:"docs"},{path:"/docs/latest/data-management/compaction",component:p("/docs/latest/data-management/compaction","04c"),exact:!0,sidebar:"docs"},{path:"/docs/latest/data-management/delete",component:p("/docs/latest/data-management/delete","245"),exact:!0,sidebar:"docs"},{path:"/docs/latest/data-management/manual-compaction",component:p("/docs/latest/data-management/manual-compaction","dc7"),exact:!0,sidebar:"docs"},{path:"/docs/latest/data-management/schema-changes",component:p("/docs/latest/data-management/schema-changes","ea7"),exact:!0,sidebar:"docs"},{path:"/docs/latest/data-management/update",component:p("/docs/latest/data-management/update","ffa"),exact:!0,sidebar:"docs"},{path:"/docs/latest/design/",component:p("/docs/latest/design/","89d"),exact:!0,sidebar:"docs"},{path:"/docs/latest/design/architecture",component:p("/docs/latest/design/architecture","81b"),exact:!0,sidebar:"docs"},{path:"/docs/latest/design/broker",component:p("/docs/latest/design/broker","adb"),exact:!0},{path:"/docs/latest/design/coordinator",component:p("/docs/latest/design/coordinator","859"),exact:!0},{path:"/docs/latest/design/deep-storage",component:p("/docs/latest/design/deep-storage","382"),exact:!0,sidebar:"docs"},{path:"/docs/latest/design/extensions-contrib/dropwizard",component:p("/docs/latest/design/extensions-contrib/dropwizard","90d"),exact:!0},{path:"/docs/latest/design/historical",component:p("/docs/latest/design/historical","7e3"),exact:!0},{path:"/docs/latest/design/indexer",component:p("/docs/latest/design/indexer","ad3"),exact:!0},{path:"/docs/latest/design/indexing-service",component:p("/docs/latest/design/indexing-service","581"),exact:!0},{path:"/docs/latest/design/metadata-storage",component:p("/docs/latest/design/metadata-storage","69b"),exact:!0,sidebar:"docs"},{path:"/docs/latest/design/middlemanager",component:p("/docs/latest/design/middlemanager","0ec"),exact:!0},{path:"/docs/latest/design/overlord",component:p("/docs/latest/design/overlord","c98"),exact:!0},{path:"/docs/latest/design/peons",component:p("/docs/latest/design/peons","f85"),exact:!0},{path:"/docs/latest/design/processes",component:p("/docs/latest/design/processes","e89"),exact:!0,sidebar:"docs"},{path:"/docs/latest/design/router",component:p("/docs/latest/design/router","7bd"),exact:!0},{path:"/docs/latest/design/segments",component:p("/docs/latest/design/segments","0cf"),exact:!0,sidebar:"docs"},{path:"/docs/latest/design/zookeeper",component:p("/docs/latest/design/zookeeper","ebf"),exact:!0,sidebar:"docs"},{path:"/docs/latest/development/build",component:p("/docs/latest/development/build","815"),exact:!0,sidebar:"docs"},{path:"/docs/latest/development/contribute-to-docs",component:p("/docs/latest/development/contribute-to-docs","df3"),exact:!0,sidebar:"docs"},{path:"/docs/latest/development/experimental",component:p("/docs/latest/development/experimental","160"),exact:!0,sidebar:"docs"},{path:"/docs/latest/development/experimental-features",component:p("/docs/latest/development/experimental-features","5b8"),exact:!0},{path:"/docs/latest/development/extensions-contrib/aliyun-oss",component:p("/docs/latest/development/extensions-contrib/aliyun-oss","362"),exact:!0},{path:"/docs/latest/development/extensions-contrib/ambari-metrics-emitter",component:p("/docs/latest/development/extensions-contrib/ambari-metrics-emitter","bdd"),exact:!0},{path:"/docs/latest/development/extensions-contrib/cassandra",component:p("/docs/latest/development/extensions-contrib/cassandra","305"),exact:!0},{path:"/docs/latest/development/extensions-contrib/cloudfiles",component:p("/docs/latest/development/extensions-contrib/cloudfiles","38b"),exact:!0},{path:"/docs/latest/development/extensions-contrib/compressed-big-decimal",component:p("/docs/latest/development/extensions-contrib/compressed-big-decimal","7ad"),exact:!0},{path:"/docs/latest/development/extensions-contrib/distinctcount",component:p("/docs/latest/development/extensions-contrib/distinctcount","e37"),exact:!0},{path:"/docs/latest/development/extensions-contrib/gce-extensions",component:p("/docs/latest/development/extensions-contrib/gce-extensions","9c1"),exact:!0},{path:"/docs/latest/development/extensions-contrib/graphite",component:p("/docs/latest/development/extensions-contrib/graphite","9fe"),exact:!0},{path:"/docs/latest/development/extensions-contrib/iceberg",component:p("/docs/latest/development/extensions-contrib/iceberg","80b"),exact:!0},{path:"/docs/latest/development/extensions-contrib/influx",component:p("/docs/latest/development/extensions-contrib/influx","c83"),exact:!0},{path:"/docs/latest/development/extensions-contrib/influxdb-emitter",component:p("/docs/latest/development/extensions-contrib/influxdb-emitter","27f"),exact:!0},{path:"/docs/latest/development/extensions-contrib/k8s-jobs",component:p("/docs/latest/development/extensions-contrib/k8s-jobs","1a0"),exact:!0},{path:"/docs/latest/development/extensions-contrib/kafka-emitter",component:p("/docs/latest/development/extensions-contrib/kafka-emitter","52c"),exact:!0},{path:"/docs/latest/development/extensions-contrib/materialized-view",component:p("/docs/latest/development/extensions-contrib/materialized-view","963"),exact:!0},{path:"/docs/latest/development/extensions-contrib/momentsketch-quantiles",component:p("/docs/latest/development/extensions-contrib/momentsketch-quantiles","7af"),exact:!0},{path:"/docs/latest/development/extensions-contrib/moving-average-query",component:p("/docs/latest/development/extensions-contrib/moving-average-query","8d3"),exact:!0},{path:"/docs/latest/development/extensions-contrib/opentsdb-emitter",component:p("/docs/latest/development/extensions-contrib/opentsdb-emitter","29b"),exact:!0},{path:"/docs/latest/development/extensions-contrib/prometheus",component:p("/docs/latest/development/extensions-contrib/prometheus","a64"),exact:!0},{path:"/docs/latest/development/extensions-contrib/redis-cache",component:p("/docs/latest/development/extensions-contrib/redis-cache","e60"),exact:!0},{path:"/docs/latest/development/extensions-contrib/sqlserver",component:p("/docs/latest/development/extensions-contrib/sqlserver","477"),exact:!0},{path:"/docs/latest/development/extensions-contrib/statsd",component:p("/docs/latest/development/extensions-contrib/statsd","f53"),exact:!0},{path:"/docs/latest/development/extensions-contrib/tdigestsketch-quantiles",component:p("/docs/latest/development/extensions-contrib/tdigestsketch-quantiles","0fa"),exact:!0},{path:"/docs/latest/development/extensions-contrib/thrift",component:p("/docs/latest/development/extensions-contrib/thrift","274"),exact:!0},{path:"/docs/latest/development/extensions-contrib/time-min-max",component:p("/docs/latest/development/extensions-contrib/time-min-max","1f4"),exact:!0},{path:"/docs/latest/development/extensions-core/approximate-histograms",component:p("/docs/latest/development/extensions-core/approximate-histograms","b95"),exact:!0},{path:"/docs/latest/development/extensions-core/avro",component:p("/docs/latest/development/extensions-core/avro","012"),exact:!0},{path:"/docs/latest/development/extensions-core/azure",component:p("/docs/latest/development/extensions-core/azure","143"),exact:!0},{path:"/docs/latest/development/extensions-core/bloom-filter",component:p("/docs/latest/development/extensions-core/bloom-filter","663"),exact:!0},{path:"/docs/latest/development/extensions-core/datasketches-extension",component:p("/docs/latest/development/extensions-core/datasketches-extension","6e4"),exact:!0},{path:"/docs/latest/development/extensions-core/datasketches-hll",component:p("/docs/latest/development/extensions-core/datasketches-hll","1c8"),exact:!0},{path:"/docs/latest/development/extensions-core/datasketches-kll",component:p("/docs/latest/development/extensions-core/datasketches-kll","ad3"),exact:!0},{path:"/docs/latest/development/extensions-core/datasketches-quantiles",component:p("/docs/latest/development/extensions-core/datasketches-quantiles","a34"),exact:!0},{path:"/docs/latest/development/extensions-core/datasketches-theta",component:p("/docs/latest/development/extensions-core/datasketches-theta","2ef"),exact:!0},{path:"/docs/latest/development/extensions-core/datasketches-tuple",component:p("/docs/latest/development/extensions-core/datasketches-tuple","5be"),exact:!0},{path:"/docs/latest/development/extensions-core/druid-aws-rds",component:p("/docs/latest/development/extensions-core/druid-aws-rds","c40"),exact:!0},{path:"/docs/latest/development/extensions-core/druid-basic-security",component:p("/docs/latest/development/extensions-core/druid-basic-security","b24"),exact:!0},{path:"/docs/latest/development/extensions-core/druid-kerberos",component:p("/docs/latest/development/extensions-core/druid-kerberos","0a8"),exact:!0},{path:"/docs/latest/development/extensions-core/druid-lookups",component:p("/docs/latest/development/extensions-core/druid-lookups","fcf"),exact:!0},{path:"/docs/latest/development/extensions-core/druid-pac4j",component:p("/docs/latest/development/extensions-core/druid-pac4j","c87"),exact:!0},{path:"/docs/latest/development/extensions-core/druid-ranger-security",component:p("/docs/latest/development/extensions-core/druid-ranger-security","fb6"),exact:!0},{path:"/docs/latest/development/extensions-core/examples",component:p("/docs/latest/development/extensions-core/examples","027"),exact:!0},{path:"/docs/latest/development/extensions-core/google",component:p("/docs/latest/development/extensions-core/google","ff3"),exact:!0},{path:"/docs/latest/development/extensions-core/hdfs",component:p("/docs/latest/development/extensions-core/hdfs","6eb"),exact:!0},{path:"/docs/latest/development/extensions-core/kafka-extraction-namespace",component:p("/docs/latest/development/extensions-core/kafka-extraction-namespace","65d"),exact:!0},{path:"/docs/latest/development/extensions-core/kafka-ingestion",component:p("/docs/latest/development/extensions-core/kafka-ingestion","42c"),exact:!0,sidebar:"docs"},{path:"/docs/latest/development/extensions-core/kafka-supervisor-operations",component:p("/docs/latest/development/extensions-core/kafka-supervisor-operations","fe7"),exact:!0,sidebar:"docs"},{path:"/docs/latest/development/extensions-core/kafka-supervisor-reference",component:p("/docs/latest/development/extensions-core/kafka-supervisor-reference","469"),exact:!0,sidebar:"docs"},{path:"/docs/latest/development/extensions-core/kinesis-ingestion",component:p("/docs/latest/development/extensions-core/kinesis-ingestion","63d"),exact:!0,sidebar:"docs"},{path:"/docs/latest/development/extensions-core/kubernetes",component:p("/docs/latest/development/extensions-core/kubernetes","faf"),exact:!0},{path:"/docs/latest/development/extensions-core/lookups-cached-global",component:p("/docs/latest/development/extensions-core/lookups-cached-global","d7b"),exact:!0},{path:"/docs/latest/development/extensions-core/mysql",component:p("/docs/latest/development/extensions-core/mysql","411"),exact:!0},{path:"/docs/latest/development/extensions-core/orc",component:p("/docs/latest/development/extensions-core/orc","225"),exact:!0},{path:"/docs/latest/development/extensions-core/parquet",component:p("/docs/latest/development/extensions-core/parquet","b46"),exact:!0},{path:"/docs/latest/development/extensions-core/postgresql",component:p("/docs/latest/development/extensions-core/postgresql","fb5"),exact:!0},{path:"/docs/latest/development/extensions-core/protobuf",component:p("/docs/latest/development/extensions-core/protobuf","61e"),exact:!0},{path:"/docs/latest/development/extensions-core/s3",component:p("/docs/latest/development/extensions-core/s3","371"),exact:!0},{path:"/docs/latest/development/extensions-core/simple-client-sslcontext",component:p("/docs/latest/development/extensions-core/simple-client-sslcontext","a66"),exact:!0},{path:"/docs/latest/development/extensions-core/stats",component:p("/docs/latest/development/extensions-core/stats","99f"),exact:!0},{path:"/docs/latest/development/extensions-core/test-stats",component:p("/docs/latest/development/extensions-core/test-stats","4c9"),exact:!0},{path:"/docs/latest/development/javascript",component:p("/docs/latest/development/javascript","589"),exact:!0,sidebar:"docs"},{path:"/docs/latest/development/modules",component:p("/docs/latest/development/modules","3e8"),exact:!0,sidebar:"docs"},{path:"/docs/latest/development/overview",component:p("/docs/latest/development/overview","ded"),exact:!0,sidebar:"docs"},{path:"/docs/latest/development/versioning",component:p("/docs/latest/development/versioning","581"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/",component:p("/docs/latest/ingestion/","29f"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/data-formats",component:p("/docs/latest/ingestion/data-formats","ead"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/faq",component:p("/docs/latest/ingestion/faq","d8b"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/hadoop",component:p("/docs/latest/ingestion/hadoop","ffe"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/ingestion-spec",component:p("/docs/latest/ingestion/ingestion-spec","b2a"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/input-sources",component:p("/docs/latest/ingestion/input-sources","1b1"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/native-batch",component:p("/docs/latest/ingestion/native-batch","be1"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/native-batch-firehose",component:p("/docs/latest/ingestion/native-batch-firehose","40a"),exact:!0},{path:"/docs/latest/ingestion/native-batch-simple-task",component:p("/docs/latest/ingestion/native-batch-simple-task","6f5"),exact:!0},{path:"/docs/latest/ingestion/partitioning",component:p("/docs/latest/ingestion/partitioning","68c"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/rollup",component:p("/docs/latest/ingestion/rollup","bc5"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/schema-design",component:p("/docs/latest/ingestion/schema-design","ce0"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/schema-model",component:p("/docs/latest/ingestion/schema-model","5a4"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/standalone-realtime",component:p("/docs/latest/ingestion/standalone-realtime","5d4"),exact:!0},{path:"/docs/latest/ingestion/tasks",component:p("/docs/latest/ingestion/tasks","a0e"),exact:!0,sidebar:"docs"},{path:"/docs/latest/ingestion/tranquility",component:p("/docs/latest/ingestion/tranquility","f52"),exact:!0},{path:"/docs/latest/misc/papers-and-talks",component:p("/docs/latest/misc/papers-and-talks","fb2"),exact:!0,sidebar:"docs"},{path:"/docs/latest/multi-stage-query/",component:p("/docs/latest/multi-stage-query/","20f"),exact:!0,sidebar:"docs"},{path:"/docs/latest/multi-stage-query/concepts",component:p("/docs/latest/multi-stage-query/concepts","7a0"),exact:!0,sidebar:"docs"},{path:"/docs/latest/multi-stage-query/examples",component:p("/docs/latest/multi-stage-query/examples","14c"),exact:!0,sidebar:"docs"},{path:"/docs/latest/multi-stage-query/known-issues",component:p("/docs/latest/multi-stage-query/known-issues","c08"),exact:!0,sidebar:"docs"},{path:"/docs/latest/multi-stage-query/reference",component:p("/docs/latest/multi-stage-query/reference","3ce"),exact:!0,sidebar:"docs"},{path:"/docs/latest/multi-stage-query/security",component:p("/docs/latest/multi-stage-query/security","d74"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/alerts",component:p("/docs/latest/operations/alerts","f3f"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/auth",component:p("/docs/latest/operations/auth","a7a"),exact:!0},{path:"/docs/latest/operations/auth-ldap",component:p("/docs/latest/operations/auth-ldap","34c"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/basic-cluster-tuning",component:p("/docs/latest/operations/basic-cluster-tuning","1e2"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/clean-metadata-store",component:p("/docs/latest/operations/clean-metadata-store","208"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/deep-storage-migration",component:p("/docs/latest/operations/deep-storage-migration","9e1"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/dump-segment",component:p("/docs/latest/operations/dump-segment","8fd"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/durable-storage",component:p("/docs/latest/operations/durable-storage","e9a"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/dynamic-config-provider",component:p("/docs/latest/operations/dynamic-config-provider","306"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/export-metadata",component:p("/docs/latest/operations/export-metadata","e14"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/high-availability",component:p("/docs/latest/operations/high-availability","5d8"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/http-compression",component:p("/docs/latest/operations/http-compression","7cf"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/insert-segment-to-db",component:p("/docs/latest/operations/insert-segment-to-db","8f5"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/java",component:p("/docs/latest/operations/java","9c9"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/kubernetes",component:p("/docs/latest/operations/kubernetes","e12"),exact:!0},{path:"/docs/latest/operations/metadata-migration",component:p("/docs/latest/operations/metadata-migration","f77"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/metrics",component:p("/docs/latest/operations/metrics","c47"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/migrate-from-firehose",component:p("/docs/latest/operations/migrate-from-firehose","e49"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/mixed-workloads",component:p("/docs/latest/operations/mixed-workloads","104"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/other-hadoop",component:p("/docs/latest/operations/other-hadoop","75c"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/password-provider",component:p("/docs/latest/operations/password-provider","11e"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/pull-deps",component:p("/docs/latest/operations/pull-deps","a46"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/request-logging",component:p("/docs/latest/operations/request-logging","c45"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/reset-cluster",component:p("/docs/latest/operations/reset-cluster","8df"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/rolling-updates",component:p("/docs/latest/operations/rolling-updates","3a3"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/rule-configuration",component:p("/docs/latest/operations/rule-configuration","467"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/security-overview",component:p("/docs/latest/operations/security-overview","17e"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/security-user-auth",component:p("/docs/latest/operations/security-user-auth","396"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/segment-optimization",component:p("/docs/latest/operations/segment-optimization","56b"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/single-server",component:p("/docs/latest/operations/single-server","e9e"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/tls-support",component:p("/docs/latest/operations/tls-support","836"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/use_sbt_to_build_fat_jar",component:p("/docs/latest/operations/use_sbt_to_build_fat_jar","ce3"),exact:!0,sidebar:"docs"},{path:"/docs/latest/operations/web-console",component:p("/docs/latest/operations/web-console","aaf"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/",component:p("/docs/latest/querying/","5d8"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/aggregations",component:p("/docs/latest/querying/aggregations","1c4"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/arrays",component:p("/docs/latest/querying/arrays","b47"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/caching",component:p("/docs/latest/querying/caching","c8a"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/datasource",component:p("/docs/latest/querying/datasource","987"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/datasourcemetadataquery",component:p("/docs/latest/querying/datasourcemetadataquery","3c1"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/dimensionspecs",component:p("/docs/latest/querying/dimensionspecs","41b"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/filters",component:p("/docs/latest/querying/filters","372"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/geo",component:p("/docs/latest/querying/geo","b01"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/granularities",component:p("/docs/latest/querying/granularities","e72"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/groupbyquery",component:p("/docs/latest/querying/groupbyquery","efa"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/having",component:p("/docs/latest/querying/having","f8b"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/hll-old",component:p("/docs/latest/querying/hll-old","72f"),exact:!0},{path:"/docs/latest/querying/joins",component:p("/docs/latest/querying/joins","6e2"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/limitspec",component:p("/docs/latest/querying/limitspec","2a1"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/lookups",component:p("/docs/latest/querying/lookups","54b"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/math-expr",component:p("/docs/latest/querying/math-expr","7ed"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/multi-value-dimensions",component:p("/docs/latest/querying/multi-value-dimensions","f1c"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/multitenancy",component:p("/docs/latest/querying/multitenancy","14a"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/nested-columns",component:p("/docs/latest/querying/nested-columns","13d"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/post-aggregations",component:p("/docs/latest/querying/post-aggregations","c22"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/query-context",component:p("/docs/latest/querying/query-context","fb0"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/query-deep-storage",component:p("/docs/latest/querying/query-deep-storage","2e6"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/query-execution",component:p("/docs/latest/querying/query-execution","a52"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/scan-query",component:p("/docs/latest/querying/scan-query","8fb"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/searchquery",component:p("/docs/latest/querying/searchquery","6dc"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/segmentmetadataquery",component:p("/docs/latest/querying/segmentmetadataquery","94c"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/select-query",component:p("/docs/latest/querying/select-query","eb3"),exact:!0},{path:"/docs/latest/querying/sorting-orders",component:p("/docs/latest/querying/sorting-orders","415"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql",component:p("/docs/latest/querying/sql","e56"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-aggregations",component:p("/docs/latest/querying/sql-aggregations","2d7"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-array-functions",component:p("/docs/latest/querying/sql-array-functions","c16"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-data-types",component:p("/docs/latest/querying/sql-data-types","17d"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-functions",component:p("/docs/latest/querying/sql-functions","90a"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-json-functions",component:p("/docs/latest/querying/sql-json-functions","d7f"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-metadata-tables",component:p("/docs/latest/querying/sql-metadata-tables","869"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-multivalue-string-functions",component:p("/docs/latest/querying/sql-multivalue-string-functions","780"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-operators",component:p("/docs/latest/querying/sql-operators","f3d"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-query-context",component:p("/docs/latest/querying/sql-query-context","6aa"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-scalar",component:p("/docs/latest/querying/sql-scalar","87b"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-translation",component:p("/docs/latest/querying/sql-translation","763"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/sql-window-functions",component:p("/docs/latest/querying/sql-window-functions","d1f"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/timeboundaryquery",component:p("/docs/latest/querying/timeboundaryquery","de1"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/timeseriesquery",component:p("/docs/latest/querying/timeseriesquery","685"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/tips-good-queries",component:p("/docs/latest/querying/tips-good-queries","a6f"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/topnmetricspec",component:p("/docs/latest/querying/topnmetricspec","459"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/topnquery",component:p("/docs/latest/querying/topnquery","670"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/troubleshooting",component:p("/docs/latest/querying/troubleshooting","e83"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/using-caching",component:p("/docs/latest/querying/using-caching","b6b"),exact:!0,sidebar:"docs"},{path:"/docs/latest/querying/virtual-columns",component:p("/docs/latest/querying/virtual-columns","1a9"),exact:!0,sidebar:"docs"},{path:"/docs/latest/release-info/release-notes",component:p("/docs/latest/release-info/release-notes","ba6"),exact:!0,sidebar:"docs"},{path:"/docs/latest/release-info/upgrade-notes",component:p("/docs/latest/release-info/upgrade-notes","cdd"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/",component:p("/docs/latest/tutorials/","806"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/cluster",component:p("/docs/latest/tutorials/cluster","535"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/docker",component:p("/docs/latest/tutorials/docker","fa7"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-batch",component:p("/docs/latest/tutorials/tutorial-batch","4d5"),exact:!0},{path:"/docs/latest/tutorials/tutorial-batch-hadoop",component:p("/docs/latest/tutorials/tutorial-batch-hadoop","b2e"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-batch-native",component:p("/docs/latest/tutorials/tutorial-batch-native","c3a"),exact:!0},{path:"/docs/latest/tutorials/tutorial-compaction",component:p("/docs/latest/tutorials/tutorial-compaction","c26"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-delete-data",component:p("/docs/latest/tutorials/tutorial-delete-data","a91"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-ingestion-spec",component:p("/docs/latest/tutorials/tutorial-ingestion-spec","897"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-jdbc",component:p("/docs/latest/tutorials/tutorial-jdbc","ca8"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-jupyter-docker",component:p("/docs/latest/tutorials/tutorial-jupyter-docker","efe"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-jupyter-index",component:p("/docs/latest/tutorials/tutorial-jupyter-index","6f6"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-kafka",component:p("/docs/latest/tutorials/tutorial-kafka","33c"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-kerberos-hadoop",component:p("/docs/latest/tutorials/tutorial-kerberos-hadoop","e91"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-msq-convert-spec",component:p("/docs/latest/tutorials/tutorial-msq-convert-spec","317"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-msq-extern",component:p("/docs/latest/tutorials/tutorial-msq-extern","5c9"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-query",component:p("/docs/latest/tutorials/tutorial-query","313"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-query-deep-storage",component:p("/docs/latest/tutorials/tutorial-query-deep-storage","27b"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-retention",component:p("/docs/latest/tutorials/tutorial-retention","e91"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-rollup",component:p("/docs/latest/tutorials/tutorial-rollup","bd3"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-sketches-theta",component:p("/docs/latest/tutorials/tutorial-sketches-theta","34e"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-sql-query-view",component:p("/docs/latest/tutorials/tutorial-sql-query-view","132"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-transform-spec",component:p("/docs/latest/tutorials/tutorial-transform-spec","24a"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-unnest-arrays",component:p("/docs/latest/tutorials/tutorial-unnest-arrays","b82"),exact:!0,sidebar:"docs"},{path:"/docs/latest/tutorials/tutorial-update-data",component:p("/docs/latest/tutorials/tutorial-update-data","ade"),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 l=[n(56657),n(32497),n(3310),n(18320),n(37253),n(83128)];var c=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 q(e){if(C.has(e.pathname))return Object.assign({},e,{pathname:C.get(e.pathname)});if((0,d.f)(c.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 T=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=l.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)),l=document.getElementById(s);null==l||l.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)(c.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,l=i.localeConfigs,c=(0,g.Z)(n),u=l[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:c}))}var Z=n(44763);function $(){var e=(0,d.H)(c.Z),t=(0,u.TH)();return r.createElement(Z.Z,null,r.createElement(A.M,null,r.createElement(T.t,null,r.createElement(p,null,r.createElement(U,null),r.createElement(S,null),r.createElement(z,null),r.createElement(O,{location:q(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)(c.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-1704756429463.json","lunrIndex":"lunr-index-1704756429463.json"}}},"docusaurus-plugin-google-gtag":{"default":{"trackingID":["UA-131010415-1"],"anonymizeIP":false,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/docs/latest","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs/latest","mainDocId":"design/index","docs":[{"id":"api-reference/api-reference","path":"/docs/latest/api-reference/","sidebar":"docs"},{"id":"api-reference/automatic-compaction-api","path":"/docs/latest/api-reference/automatic-compaction-api","sidebar":"docs"},{"id":"api-reference/data-management-api","path":"/docs/latest/api-reference/data-management-api","sidebar":"docs"},{"id":"api-reference/dynamic-configuration-api","path":"/docs/latest/api-reference/dynamic-configuration-api","sidebar":"docs"},{"id":"api-reference/json-querying-api","path":"/docs/latest/api-reference/json-querying-api","sidebar":"docs"},{"id":"api-reference/legacy-metadata-api","path":"/docs/latest/api-reference/legacy-metadata-api","sidebar":"docs"},{"id":"api-reference/lookups-api","path":"/docs/latest/api-reference/lookups-api","sidebar":"docs"},{"id":"api-reference/retention-rules-api","path":"/docs/latest/api-reference/retention-rules-api","sidebar":"docs"},{"id":"api-reference/service-status-api","path":"/docs/latest/api-reference/service-status-api","sidebar":"docs"},{"id":"api-reference/sql-api","path":"/docs/latest/api-reference/sql-api","sidebar":"docs"},{"id":"api-reference/sql-ingestion-api","path":"/docs/latest/api-reference/sql-ingestion-api","sidebar":"docs"},{"id":"api-reference/sql-jdbc","path":"/docs/latest/api-reference/sql-jdbc","sidebar":"docs"},{"id":"api-reference/supervisor-api","path":"/docs/latest/api-reference/supervisor-api","sidebar":"docs"},{"id":"api-reference/tasks-api","path":"/docs/latest/api-reference/tasks-api","sidebar":"docs"},{"id":"comparisons/druid-vs-elasticsearch","path":"/docs/latest/comparisons/druid-vs-elasticsearch"},{"id":"comparisons/druid-vs-key-value","path":"/docs/latest/comparisons/druid-vs-key-value"},{"id":"comparisons/druid-vs-kudu","path":"/docs/latest/comparisons/druid-vs-kudu"},{"id":"comparisons/druid-vs-redshift","path":"/docs/latest/comparisons/druid-vs-redshift"},{"id":"comparisons/druid-vs-spark","path":"/docs/latest/comparisons/druid-vs-spark"},{"id":"comparisons/druid-vs-sql-on-hadoop","path":"/docs/latest/comparisons/druid-vs-sql-on-hadoop"},{"id":"configuration/extensions","path":"/docs/latest/configuration/extensions","sidebar":"docs"},{"id":"configuration/human-readable-byte","path":"/docs/latest/configuration/human-readable-byte"},{"id":"configuration/index","path":"/docs/latest/configuration/","sidebar":"docs"},{"id":"configuration/logging","path":"/docs/latest/configuration/logging","sidebar":"docs"},{"id":"data-management/automatic-compaction","path":"/docs/latest/data-management/automatic-compaction","sidebar":"docs"},{"id":"data-management/compaction","path":"/docs/latest/data-management/compaction","sidebar":"docs"},{"id":"data-management/delete","path":"/docs/latest/data-management/delete","sidebar":"docs"},{"id":"data-management/index","path":"/docs/latest/data-management/","sidebar":"docs"},{"id":"data-management/manual-compaction","path":"/docs/latest/data-management/manual-compaction","sidebar":"docs"},{"id":"data-management/schema-changes","path":"/docs/latest/data-management/schema-changes","sidebar":"docs"},{"id":"data-management/update","path":"/docs/latest/data-management/update","sidebar":"docs"},{"id":"design/architecture","path":"/docs/latest/design/architecture","sidebar":"docs"},{"id":"design/broker","path":"/docs/latest/design/broker"},{"id":"design/coordinator","path":"/docs/latest/design/coordinator"},{"id":"design/deep-storage","path":"/docs/latest/design/deep-storage","sidebar":"docs"},{"id":"design/extensions-contrib/dropwizard","path":"/docs/latest/design/extensions-contrib/dropwizard"},{"id":"design/historical","path":"/docs/latest/design/historical"},{"id":"design/index","path":"/docs/latest/design/","sidebar":"docs"},{"id":"design/indexer","path":"/docs/latest/design/indexer"},{"id":"design/indexing-service","path":"/docs/latest/design/indexing-service"},{"id":"design/metadata-storage","path":"/docs/latest/design/metadata-storage","sidebar":"docs"},{"id":"design/middlemanager","path":"/docs/latest/design/middlemanager"},{"id":"design/overlord","path":"/docs/latest/design/overlord"},{"id":"design/peons","path":"/docs/latest/design/peons"},{"id":"design/processes","path":"/docs/latest/design/processes","sidebar":"docs"},{"id":"design/router","path":"/docs/latest/design/router"},{"id":"design/segments","path":"/docs/latest/design/segments","sidebar":"docs"},{"id":"design/zookeeper","path":"/docs/latest/design/zookeeper","sidebar":"docs"},{"id":"development/build","path":"/docs/latest/development/build","sidebar":"docs"},{"id":"development/contribute-to-docs","path":"/docs/latest/development/contribute-to-docs","sidebar":"docs"},{"id":"development/experimental","path":"/docs/latest/development/experimental","sidebar":"docs"},{"id":"development/experimental-features","path":"/docs/latest/development/experimental-features"},{"id":"development/extensions-contrib/aliyun-oss","path":"/docs/latest/development/extensions-contrib/aliyun-oss"},{"id":"development/extensions-contrib/ambari-metrics-emitter","path":"/docs/latest/development/extensions-contrib/ambari-metrics-emitter"},{"id":"development/extensions-contrib/cassandra","path":"/docs/latest/development/extensions-contrib/cassandra"},{"id":"development/extensions-contrib/cloudfiles","path":"/docs/latest/development/extensions-contrib/cloudfiles"},{"id":"development/extensions-contrib/compressed-big-decimal","path":"/docs/latest/development/extensions-contrib/compressed-big-decimal"},{"id":"development/extensions-contrib/distinctcount","path":"/docs/latest/development/extensions-contrib/distinctcount"},{"id":"development/extensions-contrib/gce-extensions","path":"/docs/latest/development/extensions-contrib/gce-extensions"},{"id":"development/extensions-contrib/graphite","path":"/docs/latest/development/extensions-contrib/graphite"},{"id":"development/extensions-contrib/iceberg","path":"/docs/latest/development/extensions-contrib/iceberg"},{"id":"development/extensions-contrib/influx","path":"/docs/latest/development/extensions-contrib/influx"},{"id":"development/extensions-contrib/influxdb-emitter","path":"/docs/latest/development/extensions-contrib/influxdb-emitter"},{"id":"development/extensions-contrib/k8s-jobs","path":"/docs/latest/development/extensions-contrib/k8s-jobs"},{"id":"development/extensions-contrib/kafka-emitter","path":"/docs/latest/development/extensions-contrib/kafka-emitter"},{"id":"development/extensions-contrib/materialized-view","path":"/docs/latest/development/extensions-contrib/materialized-view"},{"id":"development/extensions-contrib/momentsketch-quantiles","path":"/docs/latest/development/extensions-contrib/momentsketch-quantiles"},{"id":"development/extensions-contrib/moving-average-query","path":"/docs/latest/development/extensions-contrib/moving-average-query"},{"id":"development/extensions-contrib/opentsdb-emitter","path":"/docs/latest/development/extensions-contrib/opentsdb-emitter"},{"id":"development/extensions-contrib/prometheus","path":"/docs/latest/development/extensions-contrib/prometheus"},{"id":"development/extensions-contrib/redis-cache","path":"/docs/latest/development/extensions-contrib/redis-cache"},{"id":"development/extensions-contrib/sqlserver","path":"/docs/latest/development/extensions-contrib/sqlserver"},{"id":"development/extensions-contrib/statsd","path":"/docs/latest/development/extensions-contrib/statsd"},{"id":"development/extensions-contrib/tdigestsketch-quantiles","path":"/docs/latest/development/extensions-contrib/tdigestsketch-quantiles"},{"id":"development/extensions-contrib/thrift","path":"/docs/latest/development/extensions-contrib/thrift"},{"id":"development/extensions-contrib/time-min-max","path":"/docs/latest/development/extensions-contrib/time-min-max"},{"id":"development/extensions-core/approximate-histograms","path":"/docs/latest/development/extensions-core/approximate-histograms"},{"id":"development/extensions-core/avro","path":"/docs/latest/development/extensions-core/avro"},{"id":"development/extensions-core/azure","path":"/docs/latest/development/extensions-core/azure"},{"id":"development/extensions-core/bloom-filter","path":"/docs/latest/development/extensions-core/bloom-filter"},{"id":"development/extensions-core/datasketches-extension","path":"/docs/latest/development/extensions-core/datasketches-extension"},{"id":"development/extensions-core/datasketches-hll","path":"/docs/latest/development/extensions-core/datasketches-hll"},{"id":"development/extensions-core/datasketches-kll","path":"/docs/latest/development/extensions-core/datasketches-kll"},{"id":"development/extensions-core/datasketches-quantiles","path":"/docs/latest/development/extensions-core/datasketches-quantiles"},{"id":"development/extensions-core/datasketches-theta","path":"/docs/latest/development/extensions-core/datasketches-theta"},{"id":"development/extensions-core/datasketches-tuple","path":"/docs/latest/development/extensions-core/datasketches-tuple"},{"id":"development/extensions-core/druid-aws-rds","path":"/docs/latest/development/extensions-core/druid-aws-rds"},{"id":"development/extensions-core/druid-basic-security","path":"/docs/latest/development/extensions-core/druid-basic-security"},{"id":"development/extensions-core/druid-kerberos","path":"/docs/latest/development/extensions-core/druid-kerberos"},{"id":"development/extensions-core/druid-lookups","path":"/docs/latest/development/extensions-core/druid-lookups"},{"id":"development/extensions-core/druid-pac4j","path":"/docs/latest/development/extensions-core/druid-pac4j"},{"id":"development/extensions-core/druid-ranger-security","path":"/docs/latest/development/extensions-core/druid-ranger-security"},{"id":"development/extensions-core/examples","path":"/docs/latest/development/extensions-core/examples"},{"id":"development/extensions-core/google","path":"/docs/latest/development/extensions-core/google"},{"id":"development/extensions-core/hdfs","path":"/docs/latest/development/extensions-core/hdfs"},{"id":"development/extensions-core/kafka-extraction-namespace","path":"/docs/latest/development/extensions-core/kafka-extraction-namespace"},{"id":"development/extensions-core/kafka-ingestion","path":"/docs/latest/development/extensions-core/kafka-ingestion","sidebar":"docs"},{"id":"development/extensions-core/kafka-supervisor-operations","path":"/docs/latest/development/extensions-core/kafka-supervisor-operations","sidebar":"docs"},{"id":"development/extensions-core/kafka-supervisor-reference","path":"/docs/latest/development/extensions-core/kafka-supervisor-reference","sidebar":"docs"},{"id":"development/extensions-core/kinesis-ingestion","path":"/docs/latest/development/extensions-core/kinesis-ingestion","sidebar":"docs"},{"id":"development/extensions-core/kubernetes","path":"/docs/latest/development/extensions-core/kubernetes"},{"id":"development/extensions-core/lookups-cached-global","path":"/docs/latest/development/extensions-core/lookups-cached-global"},{"id":"development/extensions-core/mysql","path":"/docs/latest/development/extensions-core/mysql"},{"id":"development/extensions-core/orc","path":"/docs/latest/development/extensions-core/orc"},{"id":"development/extensions-core/parquet","path":"/docs/latest/development/extensions-core/parquet"},{"id":"development/extensions-core/postgresql","path":"/docs/latest/development/extensions-core/postgresql"},{"id":"development/extensions-core/protobuf","path":"/docs/latest/development/extensions-core/protobuf"},{"id":"development/extensions-core/s3","path":"/docs/latest/development/extensions-core/s3"},{"id":"development/extensions-core/simple-client-sslcontext","path":"/docs/latest/development/extensions-core/simple-client-sslcontext"},{"id":"development/extensions-core/stats","path":"/docs/latest/development/extensions-core/stats"},{"id":"development/extensions-core/test-stats","path":"/docs/latest/development/extensions-core/test-stats"},{"id":"development/javascript","path":"/docs/latest/development/javascript","sidebar":"docs"},{"id":"development/modules","path":"/docs/latest/development/modules","sidebar":"docs"},{"id":"development/overview","path":"/docs/latest/development/overview","sidebar":"docs"},{"id":"development/versioning","path":"/docs/latest/development/versioning","sidebar":"docs"},{"id":"ingestion/data-formats","path":"/docs/latest/ingestion/data-formats","sidebar":"docs"},{"id":"ingestion/faq","path":"/docs/latest/ingestion/faq","sidebar":"docs"},{"id":"ingestion/hadoop","path":"/docs/latest/ingestion/hadoop","sidebar":"docs"},{"id":"ingestion/index","path":"/docs/latest/ingestion/","sidebar":"docs"},{"id":"ingestion/ingestion-spec","path":"/docs/latest/ingestion/ingestion-spec","sidebar":"docs"},{"id":"ingestion/input-sources","path":"/docs/latest/ingestion/input-sources","sidebar":"docs"},{"id":"ingestion/native-batch","path":"/docs/latest/ingestion/native-batch","sidebar":"docs"},{"id":"ingestion/native-batch-firehose","path":"/docs/latest/ingestion/native-batch-firehose"},{"id":"ingestion/native-batch-simple-task","path":"/docs/latest/ingestion/native-batch-simple-task"},{"id":"ingestion/partitioning","path":"/docs/latest/ingestion/partitioning","sidebar":"docs"},{"id":"ingestion/rollup","path":"/docs/latest/ingestion/rollup","sidebar":"docs"},{"id":"ingestion/schema-design","path":"/docs/latest/ingestion/schema-design","sidebar":"docs"},{"id":"ingestion/schema-model","path":"/docs/latest/ingestion/schema-model","sidebar":"docs"},{"id":"ingestion/standalone-realtime","path":"/docs/latest/ingestion/standalone-realtime"},{"id":"ingestion/tasks","path":"/docs/latest/ingestion/tasks","sidebar":"docs"},{"id":"ingestion/tranquility","path":"/docs/latest/ingestion/tranquility"},{"id":"misc/papers-and-talks","path":"/docs/latest/misc/papers-and-talks","sidebar":"docs"},{"id":"multi-stage-query/concepts","path":"/docs/latest/multi-stage-query/concepts","sidebar":"docs"},{"id":"multi-stage-query/examples","path":"/docs/latest/multi-stage-query/examples","sidebar":"docs"},{"id":"multi-stage-query/index","path":"/docs/latest/multi-stage-query/","sidebar":"docs"},{"id":"multi-stage-query/known-issues","path":"/docs/latest/multi-stage-query/known-issues","sidebar":"docs"},{"id":"multi-stage-query/reference","path":"/docs/latest/multi-stage-query/reference","sidebar":"docs"},{"id":"multi-stage-query/security","path":"/docs/latest/multi-stage-query/security","sidebar":"docs"},{"id":"operations/alerts","path":"/docs/latest/operations/alerts","sidebar":"docs"},{"id":"operations/auth","path":"/docs/latest/operations/auth"},{"id":"operations/auth-ldap","path":"/docs/latest/operations/auth-ldap","sidebar":"docs"},{"id":"operations/basic-cluster-tuning","path":"/docs/latest/operations/basic-cluster-tuning","sidebar":"docs"},{"id":"operations/clean-metadata-store","path":"/docs/latest/operations/clean-metadata-store","sidebar":"docs"},{"id":"operations/deep-storage-migration","path":"/docs/latest/operations/deep-storage-migration","sidebar":"docs"},{"id":"operations/dump-segment","path":"/docs/latest/operations/dump-segment","sidebar":"docs"},{"id":"operations/durable-storage","path":"/docs/latest/operations/durable-storage","sidebar":"docs"},{"id":"operations/dynamic-config-provider","path":"/docs/latest/operations/dynamic-config-provider","sidebar":"docs"},{"id":"operations/export-metadata","path":"/docs/latest/operations/export-metadata","sidebar":"docs"},{"id":"operations/high-availability","path":"/docs/latest/operations/high-availability","sidebar":"docs"},{"id":"operations/http-compression","path":"/docs/latest/operations/http-compression","sidebar":"docs"},{"id":"operations/insert-segment-to-db","path":"/docs/latest/operations/insert-segment-to-db","sidebar":"docs"},{"id":"operations/java","path":"/docs/latest/operations/java","sidebar":"docs"},{"id":"operations/kubernetes","path":"/docs/latest/operations/kubernetes"},{"id":"operations/metadata-migration","path":"/docs/latest/operations/metadata-migration","sidebar":"docs"},{"id":"operations/metrics","path":"/docs/latest/operations/metrics","sidebar":"docs"},{"id":"operations/migrate-from-firehose","path":"/docs/latest/operations/migrate-from-firehose","sidebar":"docs"},{"id":"operations/mixed-workloads","path":"/docs/latest/operations/mixed-workloads","sidebar":"docs"},{"id":"operations/other-hadoop","path":"/docs/latest/operations/other-hadoop","sidebar":"docs"},{"id":"operations/password-provider","path":"/docs/latest/operations/password-provider","sidebar":"docs"},{"id":"operations/pull-deps","path":"/docs/latest/operations/pull-deps","sidebar":"docs"},{"id":"operations/request-logging","path":"/docs/latest/operations/request-logging","sidebar":"docs"},{"id":"operations/reset-cluster","path":"/docs/latest/operations/reset-cluster","sidebar":"docs"},{"id":"operations/rolling-updates","path":"/docs/latest/operations/rolling-updates","sidebar":"docs"},{"id":"operations/rule-configuration","path":"/docs/latest/operations/rule-configuration","sidebar":"docs"},{"id":"operations/security-overview","path":"/docs/latest/operations/security-overview","sidebar":"docs"},{"id":"operations/security-user-auth","path":"/docs/latest/operations/security-user-auth","sidebar":"docs"},{"id":"operations/segment-optimization","path":"/docs/latest/operations/segment-optimization","sidebar":"docs"},{"id":"operations/single-server","path":"/docs/latest/operations/single-server","sidebar":"docs"},{"id":"operations/tls-support","path":"/docs/latest/operations/tls-support","sidebar":"docs"},{"id":"operations/use_sbt_to_build_fat_jar","path":"/docs/latest/operations/use_sbt_to_build_fat_jar","sidebar":"docs"},{"id":"operations/web-console","path":"/docs/latest/operations/web-console","sidebar":"docs"},{"id":"querying/aggregations","path":"/docs/latest/querying/aggregations","sidebar":"docs"},{"id":"querying/arrays","path":"/docs/latest/querying/arrays","sidebar":"docs"},{"id":"querying/caching","path":"/docs/latest/querying/caching","sidebar":"docs"},{"id":"querying/datasource","path":"/docs/latest/querying/datasource","sidebar":"docs"},{"id":"querying/datasourcemetadataquery","path":"/docs/latest/querying/datasourcemetadataquery","sidebar":"docs"},{"id":"querying/dimensionspecs","path":"/docs/latest/querying/dimensionspecs","sidebar":"docs"},{"id":"querying/filters","path":"/docs/latest/querying/filters","sidebar":"docs"},{"id":"querying/geo","path":"/docs/latest/querying/geo","sidebar":"docs"},{"id":"querying/granularities","path":"/docs/latest/querying/granularities","sidebar":"docs"},{"id":"querying/groupbyquery","path":"/docs/latest/querying/groupbyquery","sidebar":"docs"},{"id":"querying/having","path":"/docs/latest/querying/having","sidebar":"docs"},{"id":"querying/hll-old","path":"/docs/latest/querying/hll-old"},{"id":"querying/joins","path":"/docs/latest/querying/joins","sidebar":"docs"},{"id":"querying/limitspec","path":"/docs/latest/querying/limitspec","sidebar":"docs"},{"id":"querying/lookups","path":"/docs/latest/querying/lookups","sidebar":"docs"},{"id":"querying/math-expr","path":"/docs/latest/querying/math-expr","sidebar":"docs"},{"id":"querying/multi-value-dimensions","path":"/docs/latest/querying/multi-value-dimensions","sidebar":"docs"},{"id":"querying/multitenancy","path":"/docs/latest/querying/multitenancy","sidebar":"docs"},{"id":"querying/nested-columns","path":"/docs/latest/querying/nested-columns","sidebar":"docs"},{"id":"querying/post-aggregations","path":"/docs/latest/querying/post-aggregations","sidebar":"docs"},{"id":"querying/query-context","path":"/docs/latest/querying/query-context","sidebar":"docs"},{"id":"querying/query-deep-storage","path":"/docs/latest/querying/query-deep-storage","sidebar":"docs"},{"id":"querying/query-execution","path":"/docs/latest/querying/query-execution","sidebar":"docs"},{"id":"querying/querying","path":"/docs/latest/querying/","sidebar":"docs"},{"id":"querying/scan-query","path":"/docs/latest/querying/scan-query","sidebar":"docs"},{"id":"querying/searchquery","path":"/docs/latest/querying/searchquery","sidebar":"docs"},{"id":"querying/segmentmetadataquery","path":"/docs/latest/querying/segmentmetadataquery","sidebar":"docs"},{"id":"querying/select-query","path":"/docs/latest/querying/select-query"},{"id":"querying/sorting-orders","path":"/docs/latest/querying/sorting-orders","sidebar":"docs"},{"id":"querying/sql","path":"/docs/latest/querying/sql","sidebar":"docs"},{"id":"querying/sql-aggregations","path":"/docs/latest/querying/sql-aggregations","sidebar":"docs"},{"id":"querying/sql-array-functions","path":"/docs/latest/querying/sql-array-functions","sidebar":"docs"},{"id":"querying/sql-data-types","path":"/docs/latest/querying/sql-data-types","sidebar":"docs"},{"id":"querying/sql-functions","path":"/docs/latest/querying/sql-functions","sidebar":"docs"},{"id":"querying/sql-json-functions","path":"/docs/latest/querying/sql-json-functions","sidebar":"docs"},{"id":"querying/sql-metadata-tables","path":"/docs/latest/querying/sql-metadata-tables","sidebar":"docs"},{"id":"querying/sql-multivalue-string-functions","path":"/docs/latest/querying/sql-multivalue-string-functions","sidebar":"docs"},{"id":"querying/sql-operators","path":"/docs/latest/querying/sql-operators","sidebar":"docs"},{"id":"querying/sql-query-context","path":"/docs/latest/querying/sql-query-context","sidebar":"docs"},{"id":"querying/sql-scalar","path":"/docs/latest/querying/sql-scalar","sidebar":"docs"},{"id":"querying/sql-translation","path":"/docs/latest/querying/sql-translation","sidebar":"docs"},{"id":"querying/sql-window-functions","path":"/docs/latest/querying/sql-window-functions","sidebar":"docs"},{"id":"querying/timeboundaryquery","path":"/docs/latest/querying/timeboundaryquery","sidebar":"docs"},{"id":"querying/timeseriesquery","path":"/docs/latest/querying/timeseriesquery","sidebar":"docs"},{"id":"querying/tips-good-queries","path":"/docs/latest/querying/tips-good-queries","sidebar":"docs"},{"id":"querying/topnmetricspec","path":"/docs/latest/querying/topnmetricspec","sidebar":"docs"},{"id":"querying/topnquery","path":"/docs/latest/querying/topnquery","sidebar":"docs"},{"id":"querying/troubleshooting","path":"/docs/latest/querying/troubleshooting","sidebar":"docs"},{"id":"querying/using-caching","path":"/docs/latest/querying/using-caching","sidebar":"docs"},{"id":"querying/virtual-columns","path":"/docs/latest/querying/virtual-columns","sidebar":"docs"},{"id":"release-info/release-notes","path":"/docs/latest/release-info/release-notes","sidebar":"docs"},{"id":"release-info/upgrade-notes","path":"/docs/latest/release-info/upgrade-notes","sidebar":"docs"},{"id":"tutorials/cluster","path":"/docs/latest/tutorials/cluster","sidebar":"docs"},{"id":"tutorials/docker","path":"/docs/latest/tutorials/docker","sidebar":"docs"},{"id":"tutorials/index","path":"/docs/latest/tutorials/","sidebar":"docs"},{"id":"tutorials/tutorial-batch","path":"/docs/latest/tutorials/tutorial-batch"},{"id":"tutorials/tutorial-batch-hadoop","path":"/docs/latest/tutorials/tutorial-batch-hadoop","sidebar":"docs"},{"id":"tutorials/tutorial-batch-native","path":"/docs/latest/tutorials/tutorial-batch-native"},{"id":"tutorials/tutorial-compaction","path":"/docs/latest/tutorials/tutorial-compaction","sidebar":"docs"},{"id":"tutorials/tutorial-delete-data","path":"/docs/latest/tutorials/tutorial-delete-data","sidebar":"docs"},{"id":"tutorials/tutorial-ingestion-spec","path":"/docs/latest/tutorials/tutorial-ingestion-spec","sidebar":"docs"},{"id":"tutorials/tutorial-jdbc","path":"/docs/latest/tutorials/tutorial-jdbc","sidebar":"docs"},{"id":"tutorials/tutorial-jupyter-docker","path":"/docs/latest/tutorials/tutorial-jupyter-docker","sidebar":"docs"},{"id":"tutorials/tutorial-jupyter-index","path":"/docs/latest/tutorials/tutorial-jupyter-index","sidebar":"docs"},{"id":"tutorials/tutorial-kafka","path":"/docs/latest/tutorials/tutorial-kafka","sidebar":"docs"},{"id":"tutorials/tutorial-kerberos-hadoop","path":"/docs/latest/tutorials/tutorial-kerberos-hadoop","sidebar":"docs"},{"id":"tutorials/tutorial-msq-convert-spec","path":"/docs/latest/tutorials/tutorial-msq-convert-spec","sidebar":"docs"},{"id":"tutorials/tutorial-msq-extern","path":"/docs/latest/tutorials/tutorial-msq-extern","sidebar":"docs"},{"id":"tutorials/tutorial-query","path":"/docs/latest/tutorials/tutorial-query","sidebar":"docs"},{"id":"tutorials/tutorial-query-deep-storage","path":"/docs/latest/tutorials/tutorial-query-deep-storage","sidebar":"docs"},{"id":"tutorials/tutorial-retention","path":"/docs/latest/tutorials/tutorial-retention","sidebar":"docs"},{"id":"tutorials/tutorial-rollup","path":"/docs/latest/tutorials/tutorial-rollup","sidebar":"docs"},{"id":"tutorials/tutorial-sketches-theta","path":"/docs/latest/tutorials/tutorial-sketches-theta","sidebar":"docs"},{"id":"tutorials/tutorial-sql-query-view","path":"/docs/latest/tutorials/tutorial-sql-query-view","sidebar":"docs"},{"id":"tutorials/tutorial-transform-spec","path":"/docs/latest/tutorials/tutorial-transform-spec","sidebar":"docs"},{"id":"tutorials/tutorial-unnest-arrays","path":"/docs/latest/tutorials/tutorial-unnest-arrays","sidebar":"docs"},{"id":"tutorials/tutorial-update-data","path":"/docs/latest/tutorials/tutorial-update-data","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/latest/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 l=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 c={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},u=r.createContext(c);function d(e){var t=e.children;return r.createElement(u.Provider,{value:c},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),l=n(84173);function c(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(c,{error:t,tryAgain:n})}},o.createElement(i.Z,null,o.createElement("title",null,"Page Error")),o.createElement(l.Z,null,o.createElement(c,{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),l=n(52263),c=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,l.Z)().siteConfig,C=S.trailingSlash,q=S.baseUrl,T=(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,c.Z)(R),O=null==R?void 0:R.replace("pathname://",""),I=void 0!==O?(N=O,E&&h(N)?T(N):N):void 0;I&&P&&(I=(0,s.applyTrailingSlash)(I,{trailingSlash:C,baseUrl:q}));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:()=>l,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 l(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,l=o.absolute,c=void 0!==l&&l;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 c?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],l=a?""+a+t+i:i;r(s)?e(s,l):n[l]=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:()=>l,Jo:()=>m,zh:()=>c,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={},l=function(){var e;return null!=(e=(0,o.OD)("docusaurus-plugin-content-docs"))?e:s},c=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}(l(),(0,r.TH)().pathname,e)}function d(e){return c(e).versions}function p(e){var t=c(e);return a(t)}function f(e){return i(c(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}}(c(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),l=n(16550),c=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,l.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,c.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,l=void 0===i?"currentColor":i,c=e.strokeWidth,u=void 0===c?1.2:c,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:l,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,c.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 q={content:"content_knG7"};function T(e){var t=(0,w.L)().announcementBar.content;return r.createElement("div",(0,s.Z)({},e,{className:(0,o.Z)(q.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(T,{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,l,c=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,l=(0,P.D9)(s),(0,r.useEffect)((function(){s&&!l&&i(!0)}),[s,l]),(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},c)}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)(),l=(0,c.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,c.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.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:l,"aria-label":l,"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,c.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,l=e.html,c=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=l?{dangerouslySetInnerHTML:{__html:l}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(re.Z,c&&{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"],le=["mobile","position"];function ce(e){var t=e.className,n=e.isDropdownItem,a=void 0!==n&&n,i=(0,x.Z)(e,ie),l=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,l):l}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,le)),i=o?ue:ce;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,l=(e.onClick,(0,x.Z)(e,he)),c=(0,r.useRef)(null),u=(0,r.useState)(!1),d=u[0],p=u[1];return(0,r.useEffect)((function(){var e=function(e){c.current&&!c.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)}}),[c]),r.createElement("div",{ref:c,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:l.to?void 0:"#",className:(0,o.Z)("navbar__link",i)},l,{onClick:l.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),p(!d))}}),null!=(t=l.children)?t:l.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,c=(e.position,e.onClick),u=(0,x.Z)(e,ge),d=(n=(0,me.Z)().siteConfig.baseUrl,(0,l.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:c,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 qe=n(94184),Te=n.n(qe),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],c=(0,l.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,c.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:Te()("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:Te()("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,l.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,c.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,l=void 0!==s&&s,c=l?"li":"div";return r.createElement(c,{className:(0,o.Z)({navbar__item:!i&&!l,"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,l=(0,Oe.vY)(t,o);return null===l?null:r.createElement(de,(0,s.Z)({exact:!0},a,{isActive:function(){return(null==i?void 0:i.path)===l.path||!(null==i||!i.sidebar)&&i.sidebar===l.sidebar},label:null!=n?n:l.id,to:l.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,l=(0,Oe.oz)(t,o).link;if(!l)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:l.label,to:l.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],l=null!=t?t:i.label,c=null!=n?n:je(i).path;return r.createElement(de,(0,s.Z)({},a,{label:l,to:c}))},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,l.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,c.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(c.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)(),l=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,l=document.documentElement.scrollHeight-i.current,c=window.innerHeight;s&&r>=s?o(!1):r+c<l&&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=l.navbarRef,p=l.isNavbarVisible;return r.createElement("nav",{ref:d,"aria-label":(0,c.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(c.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,l=(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"},l),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,c.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 lt={colorModeToggle:"colorModeToggle_DEke"};function ct(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(ct,{items:o})),right:r.createElement(r.Fragment,null,r.createElement(ct,{items:a}),r.createElement(W,{className:lt.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,l=(0,x.Z)(t,ft),c=(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:c},l),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 qt(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 Tt(){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(qt,{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(Tt);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(c.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,l=e.title,c=e.description;return(0,b.t)(),r.createElement(Rt,null,r.createElement(i.d,{title:l,description:c}),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),l=n(52263),c=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,l.Z)().siteConfig.title,u=(0,c.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),l=n(92949);const c={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,l.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)(c.themedImage,c["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),l=["collapsed"],c=["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 l(){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?(l(),requestAnimationFrame((function(){a.style.height=p.height,a.style.overflow=p.overflow}))):(a.style.display="block",requestAnimationFrame((function(){l()})))})),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,l=e.className,c=e.disableSSRStyle,u=(0,a.useRef)(null);return h({collapsibleRef:u,collapsed:r,animation:i}),a.createElement(n,{ref:u,style:c?void 0:g(r),onTransitionEnd:function(e){"height"===e.propertyName&&(m(u.current,r),null==s||s(r))},className:l},o)}function v(e){var t=e.collapsed,n=(0,o.Z)(e,l),i=(0,a.useState)(!t),s=i[0],c=i[1],u=(0,a.useState)(t),d=u[0],p=u[1];return(0,a.useLayoutEffect)((function(){t||c(!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,c),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),l=(0,a.WA)("docusaurus.announcement.dismiss"),c=(0,a.WA)("docusaurus.announcement.id"),u=function(){return"true"===l.get()},d=function(e){return l.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 l=(0,r.useCallback)((function(){d(!0),i(!0)}),[]);return(0,r.useEffect)((function(){if(e){var t=e.id,n=c.get();"annoucement-bar"===n&&(n="announcement-bar");var r=t!==n;c.set(t),r&&d(!1),!r&&u()||i(!1)}}),[e]),(0,r.useMemo)((function(){return{isActive:!!e&&!a,close:l}}),[e,a,l])}();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),l=r.createContext(void 0),c="theme",u=(0,i.WA)(c),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],l=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?(l(e),a&&m(e)):(l(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===c){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(l.Provider,{value:n},t)}function g(){var e=(0,r.useContext)(l);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),l=n(69688),c=n(50012),u=function(e){return"docs-preferred-version-"+e},d={save:function(e,t,n){(0,c.WA)(u(e),{persistence:t}).set(n)},read:function(e,t){return(0,c.WA)(u(e),{persistence:t}).get()},clear:function(e,t){(0,c.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],l=a[1];return(0,r.useEffect)((function(){l(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),l((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 l.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],l=i[1],c=s[e].preferredVersionName;return{preferredVersion:null!=(t=n.versions.find((function(e){return e.name===c})))?t:null,savePreferredVersionName:(0,r.useCallback)((function(t){l.savePreferredVersion(e,t)}),[l,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,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 l(){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),l=n(69688),c=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)(),l=!t&&"mobile"===n,c=(0,r.useState)(!1),u=c[0],d=c[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:l,toggle:p,shown:u}}),[t,l,p,u])}function d(e){var t=e.children,n=u();return r.createElement(c.Provider,{value:n},t)}function p(){var e=r.useContext(c);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>l,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 l(e){var t=e.component,n=e.props,i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");var s=i[1],l=(0,o.Ql)(n);return(0,r.useEffect)((function(){s({component:t,props:l})}),[s,t,l]),(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:()=>c});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 l=!1;function c(){var e=(0,r.useState)((function(){return l?"ssr":s()})),t=e[0],n=e[1];return(0,r.useEffect)((function(){function e(){n(s())}var t=l?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),l=n(94104),c=n(60373),u=n(1116),d=n(67392),p=n(48596),f=!!l._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 l=r.value;if("category"===l.type&&((0,p.Mg)(l.href,n)||e(l.items))||"link"===l.type&&(0,p.Mg)(l.href,n))return a&&"category"!==l.type||i.unshift(l),!0}return!1}(t),i}function y(){var e,t=(0,u.V)(),n=(0,i.TH)().pathname;return!1!==(null==(e=(0,l.gA)())?void 0:e.pluginData.breadcrumbs)&&t?v({sidebarItems:t.items,pathname:n}):null}function w(e){var t=(0,l.Iw)(e).activeVersion,n=(0,c.J)(e).preferredVersion,r=(0,l.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 l=a.sidebar,c=l?n.docsSidebars[l]:void 0;return{docElement:(0,s.H)(o),sidebarName:l,sidebarItems:c}}},91980:(e,t,n)=>{"use strict";n.d(t,{Rb:()=>s,_X:()=>l});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 l(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 l=n(44996),c=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,c.Z)().siteConfig,n=t.title,r=t.titleDelimiter;return null!=e&&e.trim().length?e.trim()+" "+r+" "+n:n}(t),d=(0,l.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 l(e){var t="function"==typeof Map?new Map:void 0;return l=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)},l(e)}var c=n(67294),u=n(10412).Z.canUseDOM?c.useLayoutEffect:c.useEffect;function d(e){var t=(0,c.useRef)(e);return u((function(){t.current=e}),[e]),(0,c.useCallback)((function(){return t.current.apply(t,arguments)}),[])}function p(e){var t=(0,c.useRef)();return u((function(){t.current=e})),t.current}var f=function(e){function t(t,n){var o,a,i,s,l;return(l=e.call(this)||this).name="ReactContextError",l.message="Hook "+(null!=(o=null==(a=l.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:""),l}return(0,o.Z)(t,e),t}(l(Error));function m(e){var t=Object.entries(e);return t.sort((function(e,t){return e[0].localeCompare(t[0])})),(0,c.useMemo)((function(){return e}),t.flat())}function h(e){return function(t){var n=t.children;return c.createElement(c.Fragment,null,e.reduceRight((function(e,t){return c.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:()=>l,RF:()=>d,o5:()=>p});var r=n(67294),o=n(10412),a=n(72389),i=n(69688);var s=r.createContext(void 0);function l(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 c(){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=c().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=c(),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,l||(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),l=!0),null}var t}var l=!1;var c={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?c:{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?c: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,l=i.currentLocale,c=(0,o.TH)().pathname,u=l===s?n:n.replace("/"+l+"/","/"),d=c.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:()=>T,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),l=t&&o(t),c=s||l;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(!c)for(;d--;d)i.unshift("..");!c||""===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 l(e){return"/"===e.charAt(0)?e:"/"+e}function c(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,c=i.forceRefresh,w=void 0!==c&&c,k=i.getUserConfirmation,x=void 0===k?g:k,E=i.keyLength,_=void 0===E?6:E,S=e.basename?d(l(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 q(){return Math.random().toString(36).substr(2,_)}var T=m();function A(e){(0,r.Z)(z,e),z.length=n.length,T.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{T.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,q(),z.location);T.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 l=I.indexOf(z.location.key),c=I.slice(0,l+1);c.push(a.key),I=c,A({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,q(),z.location);T.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 l=I.indexOf(z.location.key);-1!==l&&(I[l]=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=T.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return z}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:l},slash:{encodePath:l,decodePath:l}};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,c=void 0===i?"slash":i,b=e.basename?d(l(e.basename)):"",v=x[c],y=v.encodePath,w=v.decodePath;function C(){var e=w(_());return b&&(e=u(e,b)),f(e)}var q=m();function T(e){(0,r.Z)(B,e),B.length=t.length,q.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,T();else{var t="POP";q.confirmTransitionTo(e,t,a,(function(n){n?T({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);q.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,T({action:n,location:r})}else T()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);q.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),T({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=q.setPrompt(e);return F||(j(1),F=!0),function(){return F&&(F=!1,j(-1)),t()}},listen:function(e){var t=q.appendListener(e);return j(1),function(){j(-1),t()}}};return B}function q(e,t,n){return Math.min(Math.max(e,t),n)}function T(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,l=t.keyLength,c=void 0===l?6:l,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,c)}var g=q(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=q(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 l(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 c=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=l(t),h=l(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{c(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 l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},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),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(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),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.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()}}(),l=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 c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(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),l=1;l<arguments.length;l++){for(var c in a=Object(arguments[l]))n.call(a,c)&&(s[c]=a[c]);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?c(S):w?".*":"[^"+l(_)+"]+?"})}}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||{},l=(o||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];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=l(p[f]),!n[c].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()})):l(p),!n[c].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 l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(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 c=e[s];if("string"==typeof c)i+=l(c);else{var p=l(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=l(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 l in n)n.hasOwnProperty(l)&&(i[l]=n[l]);n.hasOwnProperty(s)||(i[s]=a[s])}var c=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&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 l=t[s],c=r.util.type(l);"Object"!==c||a[i(l)]?"Array"!==c||a[i(l)]||(a[i(l)]=!0,e(l,n,s,a)):(a[i(l)]=!0,e(l,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 l(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 q=S.index,T=S.index+S[0].length,A=E;for(A+=x.value.length;q>=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<T||"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;q=S.index;var R=S[0],N=_.slice(0,q),P=_.slice(q+R.length),O=E+_.length;d&&O>d.reach&&(d.reach=O);var I=x.prev;if(N&&(I=l(t,I,N),E+=N.length),c(t,I,C),x=l(t,I,new o(p,g?r.tokenize(R,g):R,y,R)),P&&l(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 l(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 c(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 l in a.attributes)s+=" "+l+'="'+(a.attributes[l]||"").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"),l="language-"+(s=(/[a-z][\w-]*/i.exec(s)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,l]:i.alias.push(l):i.alias=[l]}}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],c=/language-(.+)/.exec(a);if(c){n=c[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)),l(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:'"'},l=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 l=n;l<s;l++){var c=t[l];"variable"===c.type&&o.indexOf(c.content)>=0&&f(c,"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 l(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 c(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,l(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=l(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 l=a.substring(0,s),d=c(u[o]),f=a.substring(s+o.length),m=[];if(l&&m.push(l),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 l=p(s),c=s.alias,d=Array.isArray(c)?c[0]:c,f=e.languages[d];if(!f)continue;i[1]=u(l,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 l=i(o);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(l+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(l=i(t[r-1])+l,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",l,null,l)}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 l=0;l<s.length&&!(o>=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.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 c?s.splice.apply(s,[l,1].concat(v)):c.content=v}}else c.content&&i(c.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={},l=e[r];if(l){function c(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(l.require,c),t(l.optional,c),t(l.modify,c)}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 l=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),c=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}}(l);i=i.map(c),s=(s||[]).map(c);var u=n(i),d=n(s);i.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(l),m=u;o(m);){for(var h in p={},m){var g=l[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={},l={};function c(e){if(e in s)return s[e];l[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=c(e);return delete l[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return s[e]=o}for(var u in n)c(u);var d=[];for(var p in l)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,l={};function c(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(l[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,q=60109,T=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"),q=F("react.provider"),T=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(l){var r=l}Reflect.construct(e,[],t)}else{try{t.call()}catch(l){r=l}e.call(t.prototype)}else{try{throw Error()}catch(l){r=l}e()}}catch(l){if(l&&r&&"string"==typeof l.stack){for(var o=l.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 T:return(e.displayName||"Context")+".Consumer";case q: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 le(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 ce(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,qe=null,Te=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){qe?Te?Te.push(e):Te=[e]:qe=e}function Re(){if(qe){var e=qe,t=Te;if(Te=qe=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===qe&&null===Te||(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,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}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,l){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,l=o.child;l;){if(l===n){s=!0,n=o,r=a;break}if(l===r){s=!0,r=o,n=a;break}l=l.sibling}if(!s){for(l=a.child;l;){if(l===n){s=!0,n=a,r=o;break}if(l===r){s=!0,r=a,n=o;break}l=l.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,lt=null,ct=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":lt=null;break;case"pointerover":case"pointerout":ct.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!==lt&&bt(lt)&&(lt=null),ct.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!==lt&&wt(lt,e),ct.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 qt=Ct("animationend"),Tt=Ct("animationiteration"),At=Ct("animationstart"),Lt=Ct("transitionend"),Rt=new Map,Nt=new Map,Pt=["abort","abort",qt,"animationEnd",Tt,"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),c(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 l=a&~i;0!==l?(r=Dt(l),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 lt=ht(lt,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return ct.set(a,ht(ct.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 ln,cn,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:qn,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?(ln=e.screenX-un.screenX,cn=e.screenY-un.screenY):cn=ln=0,un=e),ln)},movementY:function(e){return"movementY"in e?e.movementY:cn}}),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 qn(){return Cn}var Tn=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:qn,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(Tn),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:qn})),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){Tr(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 lr(e,t){if("input"===e||"change"===e)return Xn(t)}var cr="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(cr(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])||!cr(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"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("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 qr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,s,l,c){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 Tr(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],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==a&&o.isPropagationStopped())break e;qr(o,s,c),a=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==a&&o.isPropagationStopped())break e;qr(o,s,c),a=l}}}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 l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===o||8===l.nodeType&&l.parentNode===o))return;i=i.return}for(;null!==s;){if(null===(i=to(s)))return;if(5===(l=i.tag)||6===l){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 l=pn,c=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":l=An;break;case"focusin":c="focus",l=vn;break;case"focusout":c="blur",l=vn;break;case"beforeblur":case"afterblur":l=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":l=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Rn;break;case qt:case Tt:case At:l=yn;break;case Lt:l=Nn;break;case"scroll":l=mn;break;case"wheel":l=On;break;case"copy":case"cut":case"paste":l=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=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 l(s,c,null,n,o),i.push({event:s,listeners:u}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(c=n.relatedTarget||n.fromElement)||!to(c)&&!c[Jr])&&(l||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?to(c):null)&&(c!==(d=Ye(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=gn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=Ln,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==l?s:ro(l),f=null==c?s:ro(c),(s=new u(h,m+"leave",l,n,o)).target=d,s.relatedTarget=f,h=null,to(o)===r&&((u=new u(p,m+"enter",c,n,o)).target=f,u.relatedTarget=d,h=u),d=h,l&&c)e:{for(p=c,m=0,f=u=l;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!==l&&jr(i,s,l,u,!1),null!==c&&null!==d&&jr(i,d,c,u,!0)}if("select"===(l=(s=r?ro(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Qn;else if(Gn(s))if(Jn)g=lr;else{g=ir;var b=ar}else(l=s.nodeName)&&"input"===l.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))}Tr(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,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,o?null!=(l=Fe(n,a))&&i.unshift(Ir(n,l,s)):o||null!=(l=Fe(n,a))&&i.push(Ir(n,l,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 lo(e){return{current:e}}function co(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=lo(po),mo=lo(!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(){co(mo),co(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,co(mo),co(fo),uo(fo,e)):co(mo),uo(mo,n)}var Eo=null,_o=null,So=a.unstable_runWithPriority,Co=a.unstable_scheduleCallback,qo=a.unstable_cancelCallback,To=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,qo(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=lo(null),Jo=null,ea=null,ta=null;function na(){ta=ea=Jo=null}function ra(e){var t=Qo.current;co(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 la(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function ca(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,l=a.shared.pending;if(null!==l){a.shared.pending=null;var c=l,u=c.next;c.next=null,null===s?i=u:s.next=u,s=c;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=c)}}if(null!==i){for(p=a.baseState,s=0,d=u=c=null;;){l=i.lane;var f=i.eventTime;if((r&l)===l){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(l=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,l);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(l="function"==typeof(m=h.payload)?m.call(f,p,l):m))break e;p=o({},p,l);break e;case 2:sa=!0}}null!==i.callback&&(e.flags|=32,null===(l=a.effects)?a.effects=[i]:l.push(i))}else f={eventTime:f,lane:l,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(u=d=f,c=p):d=d.next=f,s|=l;if(null===(i=i.next)){if(null===(l=a.shared.pending))break;i=l.next,l.next=null,a.lastBaseUpdate=l,a.shared.pending=null}}null===d&&(c=p),a.baseState=c,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=pl(),o=fl(e),a=ua(r,o);a.payload=t,null!=n&&(a.callback=n),da(e,a),ml(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pl(),o=fl(e),a=ua(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),da(e,a),ml(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pl(),r=fl(e),o=ua(n,r);o.tag=2,null!=t&&(o.callback=t),da(e,o),ml(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,la(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=Gl(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 l(e,t,n,r){return null===t||6!==t.tag?((t=Kl(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(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=Vl(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=Xl(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=Wl(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=Kl(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case x:return(n=Vl(t.type,t.key,t.props,null,e.mode,n)).ref=Ea(e,null,t),n.return=e,n;case E:return(t=Xl(t,e.mode,n)).return=e,t}if(xa(t)||U(t))return(t=Wl(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:l(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):c(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 l(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):c(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,l){for(var c=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],l);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),i=a(b,i,h),null===u?c=b:u.sibling=b,u=b,d=g}if(h===s.length)return n(o,d),c;if(null===d){for(;h<s.length;h++)null!==(d=p(o,s[h],l))&&(i=a(d,i,h),null===u?c=d:u.sibling=d,u=d);return c}for(d=r(o,d);h<s.length;h++)null!==(g=m(d,o,h,s[h],l))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=a(g,i,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),c}function g(o,s,l,c){var u=U(l);if("function"!=typeof u)throw Error(i(150));if(null==(l=u.call(l)))throw Error(i(151));for(var d=u=null,h=s,g=s=0,b=null,v=l.next();null!==h&&!v.done;g++,v=l.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(o,h,v.value,c);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=l.next())null!==(v=p(o,v.value,c))&&(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=l.next())null!==(v=m(h,o,g,v.value,c))&&(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,l){var c="object"==typeof a&&null!==a&&a.type===_&&null===a.key;c&&(a=a.props.children);var u="object"==typeof a&&null!==a;if(u)switch(a.$$typeof){case x:e:{for(u=a.key,c=r;null!==c;){if(c.key===u){if(7===c.tag){if(a.type===_){n(e,c.sibling),(r=o(c,a.props.children)).return=e,e=r;break e}}else if(c.elementType===a.type){n(e,c.sibling),(r=o(c,a.props)).ref=Ea(e,c,a),r.return=e,e=r;break e}n(e,c);break}t(e,c),c=c.sibling}a.type===_?((r=Wl(a.props.children,e.mode,l,a.key)).return=e,e=r):((l=Vl(a.type,a.key,a.props,null,e.mode,l)).ref=Ea(e,r,a),l.return=e,e=l)}return s(e);case E:e:{for(c=a.key;null!==r;){if(r.key===c){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=Xl(a,e.mode,l)).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=Kl(a,e.mode,l)).return=e,e=r),s(e);if(xa(a))return h(e,r,a,l);if(U(a))return g(e,r,a,l);if(u&&_a(e,a),void 0===a&&!c)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),qa=Sa(!1),Ta={},Aa=lo(Ta),La=lo(Ta),Ra=lo(Ta);function Na(e){if(e===Ta)throw Error(i(174));return e}function Pa(e,t){switch(uo(Ra,t),uo(La,e),uo(Aa,Ta),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)}co(Aa),uo(Aa,t)}function Oa(){co(Aa),co(La),co(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&&(co(Aa),co(La))}var Ma=lo(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=$l(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(!cr(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 li(){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 ci(e,t){return"function"==typeof t?t(e):t}function ui(e){var t=li(),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 l=s=a=null,c=o;do{var u=c.lane;if((Qa&u)===u)null!==l&&(l=l.next={lane:0,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null}),r=c.eagerReducer===e?c.eagerState:e(r,c.action);else{var d={lane:u,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null};null===l?(s=l=d,a=r):l=l.next=d,Ja.lanes|=u,zs|=u}c=c.next}while(null!==c&&c!==o);null===l?a=r:l.next=s,cr(r,t.memoizedState)||(Di=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=l,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=li(),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);cr(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),l=Ka.current,c=l.useState((function(){return pi(o,t,n)})),u=c[1],d=c[0];c=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},l.useEffect((function(){f.getSnapshot=n,f.setSnapshot=u;var e=a(t._source);if(!cr(s,e)){e=n(t._source),cr(d,e)||(u(e),e=fl(g),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,i=e;0<i;){var l=31-Zt(i),c=1<<l;r[l]|=e,i&=~c}}}),[n,t,r]),l.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fl(g);o.mutableReadLanes|=r&o.pendingLanes}catch(a){n((function(){throw a}))}}))}),[t,r]),cr(m,n)&&cr(h,t)&&cr(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ci,lastRenderedState:d}).dispatch=u=Li.bind(null,Ja,e),c.queue=e,c.baseQueue=null,d=pi(o,t,n),c.memoizedState=c.baseState=d),d}function mi(e,t,n){return fi(li(),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:ci,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 li().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=li();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 qi(e,t){var n=li();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 Ti(e,t){var n=li();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=pl(),o=fl(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,l=i(s,n);if(a.eagerReducer=i,a.eagerState=l,cr(l,s))return}catch(c){}ml(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:qi,useContext:ia,useEffect:xi,useImperativeHandle:Si,useLayoutEffect:Ei,useMemo:Ti,useReducer:ui,useRef:vi,useState:function(){return ui(ci)},useDebugValue:Ci,useDeferredValue:function(e){var t=ui(ci),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(ci)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ui(ci)[0]},unstable_isNewReconciler:!1},Oi={readContext:ia,useCallback:qi,useContext:ia,useEffect:xi,useImperativeHandle:Si,useLayoutEffect:Ei,useMemo:Ti,useReducer:di,useRef:vi,useState:function(){return di(ci)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ci),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(ci)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(ci)[0]},unstable_isNewReconciler:!1},Ii=k.ReactCurrentOwner,Di=!1;function Mi(e,t,n,r){t.child=null===e?qa(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||Hl(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vl(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=Gl(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},xl(t,n);else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},xl(t,e),null;t.memoizedState={baseLanes:0},xl(t,null!==a?a.baseLanes:n)}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,xl(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 l=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=ia(c):c=go(t,c=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||l!==c)&&wa(t,i,r,c),sa=!1;var p=t.memoizedState;i.state=p,fa(t,r,i,o),l=t.memoizedState,s!==r||p!==l||mo.current||sa?("function"==typeof u&&(ga(t,n,u,r),l=t.memoizedState),(s=sa||va(t,n,s,r,p,l,c))?(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=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,ca(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:Xo(t.type,s),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=ia(l):l=go(t,l=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!==l)&&wa(t,i,r,l),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),(c=sa||va(t,n,c,r,p,m,l))?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,l)),"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=l,r=c):("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=Yl({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=Yl(t,o,0,null),n=Wl(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=Gl(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=Gl(i,s),null!==e?r=Gl(e,r):(r=Wl(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=Gl(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Gl(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(),co(mo),co(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":le(r,s),Ar("invalid",r)}for(var c in Ee(n,s),e=null,s)s.hasOwnProperty(c)&&(a=s[c],"children"===c?"string"==typeof a?r.textContent!==a&&(e=["children",a]):"number"==typeof a&&r.textContent!==""+a&&(e=["children",""+a]):l.hasOwnProperty(c)&&null!=a&&"onScroll"===c&&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(c=9===a.nodeType?a:a.ownerDocument,e===de.html&&(e=pe(n)),e===de.html?"script"===n?((e=c.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=c.createElement(n,{is:r.is}):(e=c.createElement(n),"select"===n&&(c=e,r.multiple?c.multiple=!0:r.size&&(c.size=r.size))):e=c.createElementNS(e,n),e[Xr]=t,e[Qr]=r,Vi(e,t,!1,!1),t.stateNode=e,c=_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":le(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&&(l.hasOwnProperty(s)?null!=d&&"onScroll"===s&&Ar("scroll",e):null!=d&&w(e,s,d,c))}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 co(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)||vl(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(co(Ma),null===(r=t.memoizedState))return null;if(s=0!=(64&t.flags),null===(c=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!==(c=ja(e))){for(t.flags|=64,is(r,!1),null!==(s=c.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===(c=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=c.childLanes,s.lanes=c.lanes,s.child=c.child,s.memoizedProps=c.memoizedProps,s.memoizedState=c.memoizedState,s.updateQueue=c.updateQueue,s.type=c.type,e=c.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(c))){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&&!c.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?(c.sibling=t.child,t.child=c):(null!==(n=r.last)?n.sibling=c:t.child=c,r.last=c)}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 El(),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 ls(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(),co(mo),co(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 co(Ma),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return co(Ma),null;case 4:return Oa(),null;case 10:return ra(e),null;case 23:case 24:return El(),null;default:return null}}function cs(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 c=a[d];for(i in c)c.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(l.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in r){var u=r[d];if(c=null!=a?a[d]:void 0,r.hasOwnProperty(d)&&u!==c&&(null!=u||null!=c))if("style"===d)if(c){for(i in c)!c.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in u)u.hasOwnProperty(i)&&c[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,c=c?c.__html:void 0,null!=u&&c!==u&&(s=s||[]).push(d,u)):"children"===d?"string"!=typeof u&&"number"!=typeof u||(s=s||[]).push(d,""+u):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(l.hasOwnProperty(d)?(null!=u&&"onScroll"===d&&Ar("scroll",e),s||c===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){Bl(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)&&(Ml(n,e),Dl(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))Ml(t,n);else{r=t;try{o()}catch(a){Bl(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){Bl(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,l=o,c=l;;)if(ys(s,c),null!==c.child&&4!==c.tag)c.child.return=c,c=c.child;else{if(c===l)break e;for(;null===c.sibling;){if(null===c.return||c.return===l)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}r?(s=n,l=o.stateNode,8===s.nodeType?s.parentNode.removeChild(l):s.removeChild(l)):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],l=a[o+1];"style"===s?ke(n,l):"dangerouslySetInnerHTML"===s?ge(n,l):"children"===s?be(n,l):w(n,s,l,t)}switch(e){case"input":ne(n,r);break;case"textarea":ce(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 qs(t);case 19:return void qs(t);case 23:case 24:return void vs(t,null!==t.memoizedState)}throw Error(i(163))}function qs(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=Ul.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Ts(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=lo(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,el=null,tl=90,nl=[],rl=[],ol=null,al=0,il=null,sl=-1,ll=0,cl=0,ul=null,dl=!1;function pl(){return 0!=(48&Ns)?Zo():-1!==sl?sl:sl=Zo()}function fl(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===$o()?1:2;if(0===ll&&(ll=Bs),0!==Ko.transition){0!==cl&&(cl=null!==$s?$s.pendingLanes:0),e=ll;var t=4186112&~cl;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=$o(),0!=(4&Ns)&&98===e?e=Ft(12,ll):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),ll),e}function ml(e,t,n){if(50<al)throw al=0,il=null,Error(i(185));if(null===(e=hl(e,t)))return null;Ut(e,t,n),e===Ps&&(Us|=t,4===js&&vl(e,Is));var r=$o();1===t?0!=(8&Ns)&&0==(48&Ns)?yl(e):(gl(e,n),0===Ns&&(Vs(),Wo())):(0==(4&Ns)||98!==r&&99!==r||(null===ol?ol=new Set([e]):ol.add(e)),gl(e,n)),$s=e}function hl(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 gl(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,a=e.expirationTimes,s=e.pendingLanes;0<s;){var l=31-Zt(s),c=1<<l,u=a[l];if(-1===u){if(0==(c&r)||0!=(c&o)){u=t,Dt(c);var d=It;a[l]=10<=d?u+250:6<=d?u+5e3:-1}}else u<=t&&(e.expiredLanes|=c);s&=~c}if(r=Mt(e,e===Ps?Is:0),t=It,0===r)null!==n&&(n!==Mo&&qo(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Mo&&qo(n)}15===t?(n=yl.bind(null,e),null===Fo?(Fo=[n],Bo=Co(No,Yo)):Fo.push(n),n=Mo):14===t?n=Vo(99,yl.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,bl.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bl(e){if(sl=-1,cl=ll=0,0!=(48&Ns))throw Error(i(327));var t=e.callbackNode;if(Il()&&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=Cl();for(Ps===e&&Is===r||(Vs(),_l(e,r));;)try{Al();break}catch(l){Sl(e,l)}if(na(),Ls.current=a,Ns=o,null!==Os?r=0:(Ps=null,Is=0,r=js),0!=(Bs&Us))_l(e,0);else if(0!==r){if(2===r&&(Ns|=64,e.hydrate&&(e.hydrate=!1,Gr(e.containerInfo)),0!==(n=jt(e))&&(r=ql(e,n))),1===r)throw t=Fs,_l(e,0),vl(e,n),gl(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:Nl(e);break;case 3:if(vl(e,n),(62914560&n)===n&&10<(r=Hs+500-Zo())){if(0!==Mt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){pl(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=$r(Nl.bind(null,e),r);break}Nl(e);break;case 4:if(vl(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(Nl.bind(null,e),n);break}Nl(e);break;default:throw Error(i(329))}}return gl(e,Zo()),e.callbackNode===t?bl.bind(null,e):null}function vl(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 yl(e){if(0!=(48&Ns))throw Error(i(327));if(Il(),e===Ps&&0!=(e.expiredLanes&Is)){var t=Is,n=ql(e,t);0!=(Bs&Us)&&(n=ql(e,t=Mt(e,t)))}else n=ql(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=ql(e,t))),1===n)throw n=Fs,_l(e,0),vl(e,t),gl(e,Zo()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Nl(e),gl(e,Zo()),null}function wl(e,t){var n=Ns;Ns|=1;try{return e(t)}finally{0===(Ns=n)&&(Vs(),Wo())}}function kl(e,t){var n=Ns;Ns&=-2,Ns|=8;try{return e(t)}finally{0===(Ns=n)&&(Vs(),Wo())}}function xl(e,t){uo(Ms,Ds),Ds|=t,Bs|=t}function El(){Ds=Ms.current,co(Ms)}function _l(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(),co(mo),co(fo),Ya();break;case 5:Da(r);break;case 4:Oa();break;case 13:case 19:co(Ma);break;case 10:ra(r);break;case 23:case 24:El()}n=n.return}Ps=e,Os=Gl(e.current,null),Is=Ds=Bs=t,js=0,Fs=null,Zs=Us=zs=0}function Sl(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,l=t;if(t=Is,s.flags|=2048,s.firstEffect=s.lastEffect=null,null!==l&&"object"==typeof l&&"function"==typeof l.then){var c=l;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(c),p.updateQueue=b}else g.add(c);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}l=void 0,s=t;var y=a.pingCache;if(null===y?(y=a.pingCache=new ds,l=new Set,y.set(c,l)):void 0===(l=y.get(c))&&(l=new Set,y.set(c,l)),!l.has(s)){l.add(s);var w=zl.bind(null,a,c,s);c.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);l=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),l=cs(l,s),p=i;do{switch(p.tag){case 3:a=l,p.flags|=4096,t&=-t,p.lanes|=t,pa(p,ps(0,a,t));break e;case 1:a=l;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)}Rl(n)}catch(E){t=E,Os===n&&null!==n&&(Os=n=n.return);continue}break}}function Cl(){var e=Ls.current;return Ls.current=Ri,null===e?Ri:e}function ql(e,t){var n=Ns;Ns|=16;var r=Cl();for(Ps===e&&Is===t||_l(e,t);;)try{Tl();break}catch(o){Sl(e,o)}if(na(),Ns=n,Ls.current=r,null!==Os)throw Error(i(261));return Ps=null,Is=0,js}function Tl(){for(;null!==Os;)Ll(Os)}function Al(){for(;null!==Os&&!To();)Ll(Os)}function Ll(e){var t=Ws(e.alternate,e,Ds);e.memoizedProps=e.pendingProps,null===t?Rl(e):Os=t,Rs.current=null}function Rl(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=ls(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 Nl(e){var t=$o();return Go(99,Pl.bind(null,e,t)),null}function Pl(e,t){do{Il()}while(null!==el);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,l=e.expirationTimes;0<a;){var c=31-Zt(a),u=1<<c;o[c]=0,s[c]=-1,l[c]=-1,a&=~u}if(null!==ol&&0==(24&r)&&ol.has(e)&&ol.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)l={start:s.selectionStart,end:s.selectionEnd};else e:if(l=(l=s.ownerDocument)&&l.defaultView||window,(u=l.getSelection&&l.getSelection())&&0!==u.rangeCount){l=u.anchorNode,a=u.anchorOffset,c=u.focusNode,u=u.focusOffset;try{l.nodeType,c.nodeType}catch(C){l=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=s,b=null;t:for(;;){for(var v;g!==l||0!==a&&3!==g.nodeType||(p=d+a),g!==c||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===l&&++m===a&&(p=d),b===c&&++h===u&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}l=-1===p||-1===f?null:{start:p,end:f}}else l=null;l=l||{start:0,end:0}}else l=null;zr={focusedElem:s,selectionRange:l},Wt=!1,ul=null,dl=!1,Ys=r;do{try{Ol()}catch(C){if(null===Ys)throw Error(i(330));Bl(Ys,C),Ys=Ys.nextEffect}}while(null!==Ys);ul=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,l=Ys);var x=l.alternate;ws(l),null!==x&&ws(x)}Ys=Ys.nextEffect}}catch(C){if(null===Ys)throw Error(i(330));Bl(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(),l=y.textContent.length,x=Math.min(s.start,l),s=void 0===s.end?x:Math.min(s.end,l),!k.extend&&x>s&&(l=s,s=x,x=l),l=fr(y,x),a=fr(y,s),l&&a&&(1!==k.rangeCount||k.anchorNode!==l.node||k.anchorOffset!==l.offset||k.focusNode!==a.node||k.focusOffset!==a.offset)&&((w=w.createRange()).setStart(l.node,l.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));Bl(Ys,C),Ys=Ys.nextEffect}}while(null!==Ys);Ys=null,jo(),Ns=o}else e.current=n;if(Js)Js=!1,el=e,tl=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===il?al++:(al=0,il=e):al=0,n=n.stateNode,_o&&"function"==typeof _o.onCommitFiberRoot)try{_o.onCommitFiberRoot(Eo,n,void 0,64==(64&n.current.flags))}catch(C){}if(gl(e,Zo()),Ks)throw Ks=!1,e=Xs,Xs=null,e;return 0!=(8&Ns)||Wo(),null}function Ol(){for(;null!==Ys;){var e=Ys.alternate;dl||null===ul||(0!=(8&Ys.flags)?Je(Ys,ul)&&(dl=!0):13===Ys.tag&&Ts(e,Ys)&&Je(Ys,ul)&&(dl=!0));var t=Ys.flags;0!=(256&t)&&gs(e,Ys),0==(512&t)||Js||(Js=!0,Vo(97,(function(){return Il(),null}))),Ys=Ys.nextEffect}}function Il(){if(90!==tl){var e=97<tl?97:tl;return tl=90,Go(e,jl)}return!1}function Dl(e,t){nl.push(t,e),Js||(Js=!0,Vo(97,(function(){return Il(),null})))}function Ml(e,t){rl.push(t,e),Js||(Js=!0,Vo(97,(function(){return Il(),null})))}function jl(){if(null===el)return!1;var e=el;if(el=null,0!=(48&Ns))throw Error(i(331));var t=Ns;Ns|=32;var n=rl;rl=[];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(c){if(null===a)throw Error(i(330));Bl(a,c)}}for(n=nl,nl=[],r=0;r<n.length;r+=2){o=n[r],a=n[r+1];try{var l=o.create;o.destroy=l()}catch(c){if(null===a)throw Error(i(330));Bl(a,c)}}for(l=e.current.firstEffect;null!==l;)e=l.nextEffect,l.nextEffect=null,8&l.flags&&(l.sibling=null,l.stateNode=null),l=e;return Ns=t,Wo(),!0}function Fl(e,t,n){da(e,t=ps(0,t=cs(n,t),1)),t=pl(),null!==(e=hl(e,1))&&(Ut(e,1,t),gl(e,t))}function Bl(e,t){if(3===e.tag)Fl(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Fl(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=cs(t,e),1);if(da(n,o),o=pl(),null!==(n=hl(n,1)))Ut(n,1,o),gl(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 zl(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=pl(),e.pingedLanes|=e.suspendedLanes&n,Ps===e&&(Is&n)===n&&(4===js||3===js&&(62914560&Is)===Is&&500>Zo()-Hs?_l(e,0):Zs|=n),gl(e,t)}function Ul(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===ll&&(ll=Bs),0===(t=Bt(62914560&~ll))&&(t=4194304))),n=pl(),null!==(e=hl(e,t))&&(Ut(e,t,n),gl(e,n))}function Zl(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 $l(e,t,n,r){return new Zl(e,t,n,r)}function Hl(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Gl(e,t){var n=e.alternate;return null===n?((n=$l(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 Vl(e,t,n,r,o,a){var s=2;if(r=e,"function"==typeof e)Hl(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case _:return Wl(n.children,o,a,t);case D:s=8,o|=16;break;case S:s=8,o|=1;break;case C:return(e=$l(12,n,t,8|o)).elementType=C,e.type=C,e.lanes=a,e;case L:return(e=$l(13,n,t,o)).type=L,e.elementType=L,e.lanes=a,e;case R:return(e=$l(19,n,t,o)).elementType=R,e.lanes=a,e;case M:return Yl(n,o,a,t);case j:return(e=$l(24,n,t,o)).elementType=j,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case q:s=10;break e;case T: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=$l(s,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Wl(e,t,n,r){return(e=$l(7,e,r,t)).lanes=n,e}function Yl(e,t,n,r){return(e=$l(23,e,r,t)).elementType=M,e.lanes=n,e}function Kl(e,t,n){return(e=$l(6,e,null,t)).lanes=n,e}function Xl(e,t,n){return(t=$l(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ql(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 Jl(e,t,n,r){var o=t.current,a=pl(),s=fl(o);e:if(n){t:{if(Ye(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(bo(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);throw Error(i(171))}if(1===n.tag){var c=n.type;if(bo(c)){n=wo(n,c,l);break e}}n=l}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),ml(o,s,a),s}function ec(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nc(e,t){tc(e,t),(e=e.alternate)&&tc(e,t)}function rc(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Ql(e,t,null!=n&&!0===n.hydrate),t=$l(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,la(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 oc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ac(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=ec(i);s.call(e)}}Jl(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 rc(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var l=o;o=function(){var e=ec(i);l.call(e)}}kl((function(){Jl(t,i,e,o)}))}return ec(i)}function ic(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!oc(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,la(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 Hl(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,ca(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=qa(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 l=t.type._context;if(uo(Qo,l._currentValue),l._currentValue=a,null!==s)if(l=s.value,0===(a=cr(l,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(l,a):1073741823))){if(s.children===o.children&&!mo.current){t=as(e,t,n);break e}}else for(null!==(l=t.child)&&(l.return=t);null!==l;){var c=l.dependencies;if(null!==c){s=l.child;for(var u=c.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&a)){1===l.tag&&((u=ua(-1,n&-n)).tag=2,da(l,u)),l.lanes|=n,null!==(u=l.alternate)&&(u.lanes|=n),oa(l.return,n),c.lanes|=n;break}u=u.next}}else s=10===l.tag&&l.type===t.type?null:l.child;if(null!==s)s.return=l;else for(s=l;null!==s;){if(s===t){s=null;break}if(null!==(l=s.sibling)){l.return=s.return,s=l;break}s=s.return}l=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))},rc.prototype.render=function(e){Jl(e,this._internalRoot,null,null)},rc.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Jl(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(ml(e,4,pl()),nc(e,4))},tt=function(e){13===e.tag&&(ml(e,67108864,pl()),nc(e,67108864))},nt=function(e){if(13===e.tag){var t=pl(),n=fl(e);ml(e,n,t),nc(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":ce(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=wl,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!==ol){var e=ol;ol=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gl(e,Zo())}))}Wo()}(),Il())},Ie=function(e,t){var n=Ns;Ns|=2;try{return e(t)}finally{0===(Ns=n)&&(Vs(),Wo())}};var sc={Events:[no,ro,oo,Le,Re,Il,{current:!1}]},lc={findFiberByHostInstance:to,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},cc={bundleType:lc.bundleType,version:lc.version,rendererPackageName:lc.rendererPackageName,rendererConfig:lc.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:lc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var uc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!uc.isDisabled&&uc.supportsFiber)try{Eo=uc.inject(cc),_o=uc}catch(he){}}t.hydrate=function(e,t,n){if(!oc(t))throw Error(i(200));return ac(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,l,c,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(!a(e[l],i[l]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!a(l.value[1],i.get(l.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();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(e[l]!==i[l])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=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(i,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!a(e[c[l]],i[c[l]]))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),l=n(41143),c=n.n(l),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)}),{})},q=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}),[])},T=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],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][c]&&(o[n][c]=!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],l=p({},r[s],o[s]);r[s]=l}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,l=void 0===s?"":s,c=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:l,titleAttributes:c},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 l=i[s],c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),-1===o.indexOf(l)&&o.push(l);var u=a.indexOf(l);-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,l=e.scriptTags,c=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,l),styleTags:G(g.STYLE,c)},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:q(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:T(g.LINK,["rel","href"],e),metaTags:T(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:T(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:S(e),scriptTags:T(g.SCRIPT,["src","innerHTML"],e),styleTags:T(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 c()(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."),c()(!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}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,a),l){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,l=n?Symbol.for("react.provider"):60109,c=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 c:case p:case g:case h:case l:return e;default:return t}}case o:return t}}}function x(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,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)===c},t.isContextProvider=function(e){return k(e)===l},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===l||e.$$typeof===c||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),l=n(45697),c=[],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 c.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:l.shape({report:l.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:l.func.isRequired}),a(g,"childContextTypes",{loadable:l.shape({report:l.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(c).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),l=n(63366),c=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,l.Z)(e,["innerRef","navigate","onClick"]),c=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||c&&"_self"!==c||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,l.Z)(e,["component","replace","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),l=r?n.createHref(r):"",h=(0,s.Z)({},v,{href:l,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,l.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,c.Z)(!1);var n=w||e.location,i=p(d(_,n),n),l=i.pathname,q=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),T=q?(0,r.LX)(n.pathname,{path:q,exact:h,sensitive:k,strict:x}):null,A=!!(y?y(T,n):T),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),l=n(38776),c=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}()+"__",l=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);l.childContextTypes=((n={})[s]=i().object.isRequired,n);var c=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 c.contextTypes=((a={})[s]=i().object,a),{Provider:l,Consumer:c}},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,l=n.sensitive,c=void 0!==l&&l;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:c}),o=r.regexp,i=r.keys,l=o.exec(e);if(!l)return null;var u=l[0],p=l.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,l.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,c.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,c.Z)({},t,{pathname:t.pathname.substr(n.length)})}function q(e){return"string"==typeof e?e:(0,s.Ep)(e)}function T(e){return function(){(0,l.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,l.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,c.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,l=60112;t.Suspense=60113;var c=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"),l=d("react.forward_ref"),t.Suspense=d("react.suspense"),c=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 l=arguments.length-2;if(1===l)a.children=n;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];a.children=c}if(e&&e.defaultProps)for(r in l=e.defaultProps)void 0===a[r]&&(a[r]=l[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 q(e,t,n,r,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case o:case a:l=!0}}if(l)return i=i(l=e),e=""===r?"."+C(l,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(S,"$&/")+"/"),q(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||l&&l.key===i.key?"":(""+i.key).replace(S,"$&/")+"/")+e)),t.push(i)),1;if(l=0,r=""===r?".":r+":",Array.isArray(e))for(var c=0;c<e.length;c++){var u=r+C(s=e[c],c);l+=q(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),c=0;!(s=e.next()).done;)l+=q(s=s.value,t,n,u=r+C(s,c++),i);else if("object"===s)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return l}function T(e,t,n){if(null==e)return e;var r=[],o=0;return q(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:T,forEach:function(e,t,n){T(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return T(e,(function(){t++})),t},toArray:function(e){return T(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,l=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,l=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(u in t)k.call(t,u)&&!x.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==c?c[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=n;else if(1<u){c=Array(u);for(var d=0;d<u;d++)c[d]=arguments[d+2];a.children=c}return{$$typeof:o,type:e.type,key:i,ref:s,props:a,_owner:l}},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:l,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:c,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,l=s.now();t.unstable_now=function(){return s.now()-l}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var c=null,u=null,d=function(){if(null!==c)try{var e=t.unstable_now();c(!0,e),c=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==c?setTimeout(n,0,e):(c=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,l=e[s];if(void 0!==i&&0>S(i,n))void 0!==l&&0>S(l,i)?(e[r]=l,e[s]=n,r=s):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==l&&0>S(l,n)))break e;e[r]=l,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=[],q=[],T=1,A=null,L=3,R=!1,N=!1,P=!1;function O(e){for(var t=E(q);null!==t;){if(null===t.callback)_(q);else{if(!(t.startTime<=e))break;_(q),t.sortIndex=t.expirationTime,x(C,t)}t=E(q)}}function I(e){if(P=!1,O(e),!N)if(null!==E(C))N=!0,n(D);else{var t=E(q);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 l=!0;else{var c=E(q);null!==c&&r(I,c.startTime-n),l=!1}return l}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 l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:T++,callback:a,priorityLevel:e,startTime:i,expirationTime:l=i+l,sortIndex:-1},i>s?(e.sortIndex=i,x(q,e),null===E(C)&&e===E(q)&&(P?o():P=!0,r(I,i-s))):(e.sortIndex=l,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),l=0;l<a.length;l++){var c=a[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(o=n?n.call(r,u,d,c):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,l=r.useDebugValue;function c(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,c(o)&&u({inst:o})}),[e,n,t]),i((function(){return c(o)&&u({inst:o}),e((function(){c(o)&&u({inst:o})}))}),[e]),l(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/latest",routeBasePath:"/docs/latest",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/latest/configuration/auth.html","/docs/latest/design/auth.html"],to:"/docs/latest/operations/auth"},{from:["/docs/latest/configuration/broker.html","/docs/latest/configuration/caching.html","/docs/latest/configuration/coordinator.html","/docs/latest/configuration/historical.html","/docs/latest/configuration/indexing-service.html","/docs/latest/development/extensions-core/caffeine-cache.html"],to:"/docs/latest/configuration/"},{from:"/docs/latest/configuration/hadoop.html",to:"/docs/latest/ingestion/hadoop"},{from:["/docs/latest/configuration/production-cluster.html","/docs/latest/configuration/simple-cluster.html","/docs/latest/misc/cluster-setup.html","/docs/latest/misc/evaluate.html"],to:"/docs/latest/tutorials/cluster"},{from:["/docs/latest/configuration/realtime.html","/docs/latest/design/plumber.html","/docs/latest/design/realtime.html","/docs/latest/development/extensions-contrib/kafka-simple.html","/docs/latest/development/extensions-contrib/rabbitmq.html","/docs/latest/development/extensions-contrib/rocketmq.html","/docs/latest/development/extensions-core/kafka-eight-firehose.html","/docs/latest/ingestion/stream-pull.html"],to:"/docs/latest/ingestion/standalone-realtime"},{from:["/docs/latest/configuration/zookeeper.html","/docs/latest/dependencies/zookeeper.html"],to:"/docs/latest/design/zookeeper"},{from:"/docs/latest/dependencies/cassandra-deep-storage.html",to:"/docs/latest/development/extensions-contrib/cassandra"},{from:["/docs/latest/design/concepts-and-terminology.html","/docs/latest/design/design.html","/docs/latest/ingestion/batch-ingestion.html","/docs/latest/ingestion/hadoop-vs-native-batch.html","/docs/latest/ingestion/ingestion.html","/docs/latest/ingestion/overview.html","/docs/latest/ingestion/realtime-ingestion.html","/docs/latest/ingestion/stream-ingestion.html","/docs/latest/tutorials/examples.html","/docs/latest/tutorials/ingestion-streams.html","/docs/latest/tutorials/ingestion.html","/docs/latest/tutorials/quickstart.html","/docs/latest/tutorials/tutorial-a-first-look-at-druid.html","/docs/latest/tutorials/tutorial-all-about-queries.html"],to:"/docs/latest/design/"},{from:"/docs/latest/development/approximate-histograms.html",to:"/docs/latest/development/extensions-core/approximate-histograms"},{from:"/docs/latest/development/community-extensions/azure.html",to:"/docs/latest/development/extensions-core/azure"},{from:"/docs/latest/development/community-extensions/cassandra.html",to:"/docs/latest/development/extensions-contrib/cassandra"},{from:"/docs/latest/development/community-extensions/cloudfiles.html",to:"/docs/latest/development/extensions-contrib/cloudfiles"},{from:"/docs/latest/development/community-extensions/graphite.html",to:"/docs/latest/development/extensions-contrib/graphite"},{from:["/docs/latest/development/community-extensions/kafka-simple.html","/docs/latest/development/community-extensions/rabbitmq.html","/docs/latest/development/kafka-simple-consumer-firehose.html"],to:"/docs/latest/development/extensions-core/kafka-ingestion"},{from:"/docs/latest/development/extensions-contrib/orc.html",to:"/docs/latest/development/extensions-core/orc"},{from:"/docs/latest/development/extensions-contrib/parquet.html",to:"/docs/latest/development/extensions-core/parquet"},{from:"/docs/latest/development/extensions-contrib/scan-query.html",to:"/docs/latest/querying/scan-query"},{from:"/docs/latest/development/extensions-core/namespaced-lookup.html",to:"/docs/latest/development/extensions-core/lookups-cached-global"},{from:"/docs/latest/development/indexer.html",to:"/docs/latest/design/indexer"},{from:"/docs/latest/development/router.html",to:"/docs/latest/design/router"},{from:"/docs/latest/development/select-query.html",to:"/docs/latest/querying/select-query"},{from:["/docs/latest/"],to:"/docs/latest/design/"},{from:"/docs/latest/ingestion/automatic-compaction.html",to:"/docs/latest/data-management/automatic-compaction"},{from:"/docs/latest/ingestion/command-line-hadoop-indexer.html",to:"/docs/latest/ingestion/hadoop"},{from:"/docs/latest/ingestion/compaction.html",to:"/docs/latest/data-management/compaction"},{from:"/docs/latest/ingestion/data-management.html",to:"/docs/latest/data-management/"},{from:"/docs/latest/ingestion/delete-data.html",to:"/docs/latest/data-management/delete"},{from:["/docs/latest/ingestion/firehose.html","/docs/latest/ingestion/migrate-from-firehose"],to:"/docs/latest/operations/migrate-from-firehose"},{from:["/docs/latest/ingestion/flatten-json.html","/docs/latest/ingestion/transform-spec.html"],to:"/docs/latest/ingestion/ingestion-spec"},{from:["/docs/latest/ingestion/locking-and-priority.html","/docs/latest/ingestion/misc-tasks.html","/docs/latest/ingestion/reports.html"],to:"/docs/latest/ingestion/tasks"},{from:["/docs/latest/ingestion/native_tasks.html","/docs/latest/ingestion/native-batch-input-sources.html"],to:"/docs/latest/ingestion/input-sources"},{from:"/docs/latest/ingestion/schema-changes.html",to:"/docs/latest/design/segments"},{from:"/docs/latest/ingestion/stream-push.html",to:"/docs/latest/ingestion/tranquility"},{from:"/docs/latest/ingestion/update-existing-data.html",to:"/docs/latest/data-management/update"},{from:"/docs/latest/misc/tasks.html",to:"/docs/latest/ingestion/tasks"},{from:["/docs/latest/operations/including-extensions.html","/docs/latest/development/extensions"],to:"/docs/latest/configuration/extensions"},{from:"/docs/latest/operations/multitenancy.html",to:"/docs/latest/querying/multitenancy"},{from:"/docs/latest/operations/performance-faq.html",to:"/docs/latest/operations/basic-cluster-tuning"},{from:"/docs/latest/querying/optimizations.html",to:"/docs/latest/querying/multi-value-dimensions"},{from:"/docs/latest/querying/searchqueryspec.html",to:"/docs/latest/querying/searchquery"},{from:["/docs/latest/tutorials/booting-a-production-cluster.html","/docs/latest/tutorials/firewall.html","/docs/latest/tutorials/tutorial-the-druid-cluster.html"],to:"/docs/latest/tutorials/cluster"},{from:"/docs/latest/tutorials/tutorial-loading-batch-data.html",to:"/docs/latest/tutorials/tutorial-batch"},{from:"/docs/latest/tutorials/tutorial-loading-streaming-data.html",to:"/docs/latest/tutorials/tutorial-kafka"},{from:"/docs/latest/tutorials/tutorial-tranquility.html",to:"/docs/latest/ingestion/tranquility"},{from:"/docs/latest/development/extensions-contrib/google.html",to:"/docs/latest/development/extensions-core/google"},{from:"/docs/latest/development/integrating-druid-with-other-technologies.html",to:"/docs/latest/ingestion/"},{from:["/docs/latest/operations/druid-console.html","/docs/latest/operations/management-uis.html"],to:"/docs/latest/operations/web-console"},{from:"/docs/latest/operations/recommendations.html",to:"/docs/latest/operations/basic-cluster-tuning"},{from:"/docs/latest/misc/math-expr.html",to:"/docs/latest/querying/math-expr"},{from:"/docs/latest/operations/getting-started",to:"/docs/latest/design/"},{from:"/docs/latest/querying/sql-api.html",to:"/docs/latest/api-reference/sql-api"},{from:"/docs/latest/querying/sql-jdbc.html",to:"/docs/latest/api-reference/sql-jdbc"},{from:"/docs/latest/multi-stage-query/api.html",to:"/docs/latest/api-reference/sql-ingestion-api"},{from:"/docs/latest/operations/api-reference.html",to:"/docs/latest/api-reference/"},{from:"/docs/latest/operations/api-reference/",to:"/docs/latest/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/latest/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('{"/blog-8fb":{"__comp":"1f391b9e","__context":{"plugin":"16e139eb"},"content":"a0de97c3"},"/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/latest-0a9":{"__comp":"1be78505","__context":{"plugin":"e8888d3a"},"versionMetadata":"935f2afb"},"/docs/latest/api-reference/-268":{"__comp":"17896441","content":"5eba74a6"},"/docs/latest/api-reference/automatic-compaction-api-ca5":{"__comp":"17896441","content":"ab046938"},"/docs/latest/api-reference/data-management-api-2f6":{"__comp":"17896441","content":"5a08e3a4"},"/docs/latest/api-reference/dynamic-configuration-api-673":{"__comp":"17896441","content":"5ff9c08d"},"/docs/latest/api-reference/json-querying-api-742":{"__comp":"17896441","content":"a3c37aca"},"/docs/latest/api-reference/legacy-metadata-api-718":{"__comp":"17896441","content":"45247bbe"},"/docs/latest/api-reference/lookups-api-dc0":{"__comp":"17896441","content":"278e5cb2"},"/docs/latest/api-reference/retention-rules-api-bd5":{"__comp":"17896441","content":"5c76467a"},"/docs/latest/api-reference/service-status-api-c55":{"__comp":"17896441","content":"83a49702"},"/docs/latest/api-reference/sql-api-329":{"__comp":"17896441","content":"e988a960"},"/docs/latest/api-reference/sql-ingestion-api-a1e":{"__comp":"17896441","content":"3ccbe206"},"/docs/latest/api-reference/sql-jdbc-b16":{"__comp":"17896441","content":"2ec3a9a7"},"/docs/latest/api-reference/supervisor-api-a3d":{"__comp":"17896441","content":"cdec71b5"},"/docs/latest/api-reference/tasks-api-4d5":{"__comp":"17896441","content":"d6a8f8f9"},"/docs/latest/comparisons/druid-vs-elasticsearch-503":{"__comp":"17896441","content":"651ab57e"},"/docs/latest/comparisons/druid-vs-key-value-7fa":{"__comp":"17896441","content":"7081bcd7"},"/docs/latest/comparisons/druid-vs-kudu-4a0":{"__comp":"17896441","content":"0f8b9ecb"},"/docs/latest/comparisons/druid-vs-redshift-9d3":{"__comp":"17896441","content":"98321876"},"/docs/latest/comparisons/druid-vs-spark-c92":{"__comp":"17896441","content":"c76ab4db"},"/docs/latest/comparisons/druid-vs-sql-on-hadoop-ff1":{"__comp":"17896441","content":"3202af10"},"/docs/latest/configuration/-0f3":{"__comp":"17896441","content":"55e202dc"},"/docs/latest/configuration/extensions-90b":{"__comp":"17896441","content":"8e848799"},"/docs/latest/configuration/human-readable-byte-0c4":{"__comp":"17896441","content":"02aa2f6f"},"/docs/latest/configuration/logging-3cf":{"__comp":"17896441","content":"34fe466c"},"/docs/latest/data-management/-2b4":{"__comp":"17896441","content":"0c5549ae"},"/docs/latest/data-management/automatic-compaction-c23":{"__comp":"17896441","content":"6865240a"},"/docs/latest/data-management/compaction-04c":{"__comp":"17896441","content":"180c7d3d"},"/docs/latest/data-management/delete-245":{"__comp":"17896441","content":"99d91b5a"},"/docs/latest/data-management/manual-compaction-dc7":{"__comp":"17896441","content":"fc6529ab"},"/docs/latest/data-management/schema-changes-ea7":{"__comp":"17896441","content":"d05fa046"},"/docs/latest/data-management/update-ffa":{"__comp":"17896441","content":"8902724d"},"/docs/latest/design/-89d":{"__comp":"17896441","content":"0e461f11"},"/docs/latest/design/architecture-81b":{"__comp":"17896441","content":"9216ddc9"},"/docs/latest/design/broker-adb":{"__comp":"17896441","content":"42be3a3f"},"/docs/latest/design/coordinator-859":{"__comp":"17896441","content":"85811133"},"/docs/latest/design/deep-storage-382":{"__comp":"17896441","content":"32fb84ff"},"/docs/latest/design/extensions-contrib/dropwizard-90d":{"__comp":"17896441","content":"5cbdf55c"},"/docs/latest/design/historical-7e3":{"__comp":"17896441","content":"8d4becf1"},"/docs/latest/design/indexer-ad3":{"__comp":"17896441","content":"567f2b24"},"/docs/latest/design/indexing-service-581":{"__comp":"17896441","content":"dd1dce50"},"/docs/latest/design/metadata-storage-69b":{"__comp":"17896441","content":"bb4c931d"},"/docs/latest/design/middlemanager-0ec":{"__comp":"17896441","content":"723062a3"},"/docs/latest/design/overlord-c98":{"__comp":"17896441","content":"ec725065"},"/docs/latest/design/peons-f85":{"__comp":"17896441","content":"95eaac7a"},"/docs/latest/design/processes-e89":{"__comp":"17896441","content":"ec47ab22"},"/docs/latest/design/router-7bd":{"__comp":"17896441","content":"dd08839c"},"/docs/latest/design/segments-0cf":{"__comp":"17896441","content":"c0161e79"},"/docs/latest/design/zookeeper-ebf":{"__comp":"17896441","content":"0b432fa0"},"/docs/latest/development/build-815":{"__comp":"17896441","content":"712138dd"},"/docs/latest/development/contribute-to-docs-df3":{"__comp":"17896441","content":"32f5b141"},"/docs/latest/development/experimental-160":{"__comp":"17896441","content":"98d928e9"},"/docs/latest/development/experimental-features-5b8":{"__comp":"17896441","content":"c998defe"},"/docs/latest/development/extensions-contrib/aliyun-oss-362":{"__comp":"17896441","content":"ba37ccec"},"/docs/latest/development/extensions-contrib/ambari-metrics-emitter-bdd":{"__comp":"17896441","content":"f325f28e"},"/docs/latest/development/extensions-contrib/cassandra-305":{"__comp":"17896441","content":"dd7937ca"},"/docs/latest/development/extensions-contrib/cloudfiles-38b":{"__comp":"17896441","content":"358eef7e"},"/docs/latest/development/extensions-contrib/compressed-big-decimal-7ad":{"__comp":"17896441","content":"d05704bd"},"/docs/latest/development/extensions-contrib/distinctcount-e37":{"__comp":"17896441","content":"53a4fd00"},"/docs/latest/development/extensions-contrib/gce-extensions-9c1":{"__comp":"17896441","content":"5270ae94"},"/docs/latest/development/extensions-contrib/graphite-9fe":{"__comp":"17896441","content":"ec0533e6"},"/docs/latest/development/extensions-contrib/iceberg-80b":{"__comp":"17896441","content":"445bf8fb"},"/docs/latest/development/extensions-contrib/influx-c83":{"__comp":"17896441","content":"62fd7da7"},"/docs/latest/development/extensions-contrib/influxdb-emitter-27f":{"__comp":"17896441","content":"8e1c0edb"},"/docs/latest/development/extensions-contrib/k8s-jobs-1a0":{"__comp":"17896441","content":"af159704"},"/docs/latest/development/extensions-contrib/kafka-emitter-52c":{"__comp":"17896441","content":"c84b7027"},"/docs/latest/development/extensions-contrib/materialized-view-963":{"__comp":"17896441","content":"76cc4805"},"/docs/latest/development/extensions-contrib/momentsketch-quantiles-7af":{"__comp":"17896441","content":"d5580824"},"/docs/latest/development/extensions-contrib/moving-average-query-8d3":{"__comp":"17896441","content":"aa7b9828"},"/docs/latest/development/extensions-contrib/opentsdb-emitter-29b":{"__comp":"17896441","content":"e66b7786"},"/docs/latest/development/extensions-contrib/prometheus-a64":{"__comp":"17896441","content":"e5b4ea37"},"/docs/latest/development/extensions-contrib/redis-cache-e60":{"__comp":"17896441","content":"2785fc82"},"/docs/latest/development/extensions-contrib/sqlserver-477":{"__comp":"17896441","content":"f74ace7b"},"/docs/latest/development/extensions-contrib/statsd-f53":{"__comp":"17896441","content":"86365239"},"/docs/latest/development/extensions-contrib/tdigestsketch-quantiles-0fa":{"__comp":"17896441","content":"a246c79f"},"/docs/latest/development/extensions-contrib/thrift-274":{"__comp":"17896441","content":"cef2afce"},"/docs/latest/development/extensions-contrib/time-min-max-1f4":{"__comp":"17896441","content":"8d04c7dd"},"/docs/latest/development/extensions-core/approximate-histograms-b95":{"__comp":"17896441","content":"f2fce74c"},"/docs/latest/development/extensions-core/avro-012":{"__comp":"17896441","content":"a91680d2"},"/docs/latest/development/extensions-core/azure-143":{"__comp":"17896441","content":"54a411b6"},"/docs/latest/development/extensions-core/bloom-filter-663":{"__comp":"17896441","content":"954f55a3"},"/docs/latest/development/extensions-core/datasketches-extension-6e4":{"__comp":"17896441","content":"b54a2972"},"/docs/latest/development/extensions-core/datasketches-hll-1c8":{"__comp":"17896441","content":"3698f0ce"},"/docs/latest/development/extensions-core/datasketches-kll-ad3":{"__comp":"17896441","content":"2de98abf"},"/docs/latest/development/extensions-core/datasketches-quantiles-a34":{"__comp":"17896441","content":"af79f0c6"},"/docs/latest/development/extensions-core/datasketches-theta-2ef":{"__comp":"17896441","content":"af2a22a3"},"/docs/latest/development/extensions-core/datasketches-tuple-5be":{"__comp":"17896441","content":"a612578d"},"/docs/latest/development/extensions-core/druid-aws-rds-c40":{"__comp":"17896441","content":"0165ae86"},"/docs/latest/development/extensions-core/druid-basic-security-b24":{"__comp":"17896441","content":"945892f2"},"/docs/latest/development/extensions-core/druid-kerberos-0a8":{"__comp":"17896441","content":"d3a077b9"},"/docs/latest/development/extensions-core/druid-lookups-fcf":{"__comp":"17896441","content":"78df240a"},"/docs/latest/development/extensions-core/druid-pac4j-c87":{"__comp":"17896441","content":"b4129207"},"/docs/latest/development/extensions-core/druid-ranger-security-fb6":{"__comp":"17896441","content":"1d0359fb"},"/docs/latest/development/extensions-core/examples-027":{"__comp":"17896441","content":"e276423b"},"/docs/latest/development/extensions-core/google-ff3":{"__comp":"17896441","content":"cd9e4e04"},"/docs/latest/development/extensions-core/hdfs-6eb":{"__comp":"17896441","content":"40d22985"},"/docs/latest/development/extensions-core/kafka-extraction-namespace-65d":{"__comp":"17896441","content":"c4cd877c"},"/docs/latest/development/extensions-core/kafka-ingestion-42c":{"__comp":"17896441","content":"8adc1ef6"},"/docs/latest/development/extensions-core/kafka-supervisor-operations-fe7":{"__comp":"17896441","content":"7f477080"},"/docs/latest/development/extensions-core/kafka-supervisor-reference-469":{"__comp":"17896441","content":"236a1a4a"},"/docs/latest/development/extensions-core/kinesis-ingestion-63d":{"__comp":"17896441","content":"8e305ed1"},"/docs/latest/development/extensions-core/kubernetes-faf":{"__comp":"17896441","content":"83f7537e"},"/docs/latest/development/extensions-core/lookups-cached-global-d7b":{"__comp":"17896441","content":"91e63cf7"},"/docs/latest/development/extensions-core/mysql-411":{"__comp":"17896441","content":"35ed644f"},"/docs/latest/development/extensions-core/orc-225":{"__comp":"17896441","content":"52b6c25c"},"/docs/latest/development/extensions-core/parquet-b46":{"__comp":"17896441","content":"01286a6a"},"/docs/latest/development/extensions-core/postgresql-fb5":{"__comp":"17896441","content":"910d61b6"},"/docs/latest/development/extensions-core/protobuf-61e":{"__comp":"17896441","content":"36497d9a"},"/docs/latest/development/extensions-core/s3-371":{"__comp":"17896441","content":"414403c6"},"/docs/latest/development/extensions-core/simple-client-sslcontext-a66":{"__comp":"17896441","content":"59acd16c"},"/docs/latest/development/extensions-core/stats-99f":{"__comp":"17896441","content":"f76af10b"},"/docs/latest/development/extensions-core/test-stats-4c9":{"__comp":"17896441","content":"7f7990e2"},"/docs/latest/development/javascript-589":{"__comp":"17896441","content":"147fd7c7"},"/docs/latest/development/modules-3e8":{"__comp":"17896441","content":"4451b7a8"},"/docs/latest/development/overview-ded":{"__comp":"17896441","content":"0e1d85c5"},"/docs/latest/development/versioning-581":{"__comp":"17896441","content":"554afeae"},"/docs/latest/ingestion/-29f":{"__comp":"17896441","content":"274a38ba"},"/docs/latest/ingestion/data-formats-ead":{"__comp":"17896441","content":"8adf3ad1"},"/docs/latest/ingestion/faq-d8b":{"__comp":"17896441","content":"c6999de6"},"/docs/latest/ingestion/hadoop-ffe":{"__comp":"17896441","content":"05bce26a"},"/docs/latest/ingestion/ingestion-spec-b2a":{"__comp":"17896441","content":"293487cb"},"/docs/latest/ingestion/input-sources-1b1":{"__comp":"17896441","content":"292ba8e7"},"/docs/latest/ingestion/native-batch-be1":{"__comp":"17896441","content":"f8b35359"},"/docs/latest/ingestion/native-batch-firehose-40a":{"__comp":"17896441","content":"5b0c39fb"},"/docs/latest/ingestion/native-batch-simple-task-6f5":{"__comp":"17896441","content":"613e19b7"},"/docs/latest/ingestion/partitioning-68c":{"__comp":"17896441","content":"f5acae74"},"/docs/latest/ingestion/rollup-bc5":{"__comp":"17896441","content":"7178b9b6"},"/docs/latest/ingestion/schema-design-ce0":{"__comp":"17896441","content":"c2ae6274"},"/docs/latest/ingestion/schema-model-5a4":{"__comp":"17896441","content":"582a09ff"},"/docs/latest/ingestion/standalone-realtime-5d4":{"__comp":"17896441","content":"881b6e93"},"/docs/latest/ingestion/tasks-a0e":{"__comp":"17896441","content":"0c83841d"},"/docs/latest/ingestion/tranquility-f52":{"__comp":"17896441","content":"1e267fd0"},"/docs/latest/misc/papers-and-talks-fb2":{"__comp":"17896441","content":"5a9f7f50"},"/docs/latest/multi-stage-query/-20f":{"__comp":"17896441","content":"63a5d816"},"/docs/latest/multi-stage-query/concepts-7a0":{"__comp":"17896441","content":"98453339"},"/docs/latest/multi-stage-query/examples-14c":{"__comp":"17896441","content":"2677d7b8"},"/docs/latest/multi-stage-query/known-issues-c08":{"__comp":"17896441","content":"4eb80632"},"/docs/latest/multi-stage-query/reference-3ce":{"__comp":"17896441","content":"7a0ffe1e"},"/docs/latest/multi-stage-query/security-d74":{"__comp":"17896441","content":"3fc4ca5f"},"/docs/latest/operations/alerts-f3f":{"__comp":"17896441","content":"d8e0d2fb"},"/docs/latest/operations/auth-a7a":{"__comp":"17896441","content":"4a060e30"},"/docs/latest/operations/auth-ldap-34c":{"__comp":"17896441","content":"d8c9bb91"},"/docs/latest/operations/basic-cluster-tuning-1e2":{"__comp":"17896441","content":"43c5580d"},"/docs/latest/operations/clean-metadata-store-208":{"__comp":"17896441","content":"f04833a0"},"/docs/latest/operations/deep-storage-migration-9e1":{"__comp":"17896441","content":"3f0b55c4"},"/docs/latest/operations/dump-segment-8fd":{"__comp":"17896441","content":"d721507d"},"/docs/latest/operations/durable-storage-e9a":{"__comp":"17896441","content":"408f2282"},"/docs/latest/operations/dynamic-config-provider-306":{"__comp":"17896441","content":"2ab55e37"},"/docs/latest/operations/export-metadata-e14":{"__comp":"17896441","content":"e67f5660"},"/docs/latest/operations/high-availability-5d8":{"__comp":"17896441","content":"28797c76"},"/docs/latest/operations/http-compression-7cf":{"__comp":"17896441","content":"f0bb013e"},"/docs/latest/operations/insert-segment-to-db-8f5":{"__comp":"17896441","content":"dd79da31"},"/docs/latest/operations/java-9c9":{"__comp":"17896441","content":"c74ccf1e"},"/docs/latest/operations/kubernetes-e12":{"__comp":"17896441","content":"0376c95c"},"/docs/latest/operations/metadata-migration-f77":{"__comp":"17896441","content":"0ddfffdf"},"/docs/latest/operations/metrics-c47":{"__comp":"17896441","content":"412ee224"},"/docs/latest/operations/migrate-from-firehose-e49":{"__comp":"17896441","content":"45512dc1"},"/docs/latest/operations/mixed-workloads-104":{"__comp":"17896441","content":"3ba5c2fc"},"/docs/latest/operations/other-hadoop-75c":{"__comp":"17896441","content":"144855fb"},"/docs/latest/operations/password-provider-11e":{"__comp":"17896441","content":"392ede42"},"/docs/latest/operations/pull-deps-a46":{"__comp":"17896441","content":"1981460b"},"/docs/latest/operations/request-logging-c45":{"__comp":"17896441","content":"337cc2af"},"/docs/latest/operations/reset-cluster-8df":{"__comp":"17896441","content":"327b842b"},"/docs/latest/operations/rolling-updates-3a3":{"__comp":"17896441","content":"c233c888"},"/docs/latest/operations/rule-configuration-467":{"__comp":"17896441","content":"e6ea7cb8"},"/docs/latest/operations/security-overview-17e":{"__comp":"17896441","content":"6bb9967c"},"/docs/latest/operations/security-user-auth-396":{"__comp":"17896441","content":"60453156"},"/docs/latest/operations/segment-optimization-56b":{"__comp":"17896441","content":"1a239e8f"},"/docs/latest/operations/single-server-e9e":{"__comp":"17896441","content":"1c6eaaf8"},"/docs/latest/operations/tls-support-836":{"__comp":"17896441","content":"05283ef2"},"/docs/latest/operations/use_sbt_to_build_fat_jar-ce3":{"__comp":"17896441","content":"c946c085"},"/docs/latest/operations/web-console-aaf":{"__comp":"17896441","content":"60b9c99e"},"/docs/latest/querying/-5d8":{"__comp":"17896441","content":"8603200e"},"/docs/latest/querying/aggregations-1c4":{"__comp":"17896441","content":"fa493215"},"/docs/latest/querying/arrays-b47":{"__comp":"17896441","content":"0f7339bc"},"/docs/latest/querying/caching-c8a":{"__comp":"17896441","content":"affbd492"},"/docs/latest/querying/datasource-987":{"__comp":"17896441","content":"e44d1fc1"},"/docs/latest/querying/datasourcemetadataquery-3c1":{"__comp":"17896441","content":"91d46102"},"/docs/latest/querying/dimensionspecs-41b":{"__comp":"17896441","content":"8e96f099"},"/docs/latest/querying/filters-372":{"__comp":"17896441","content":"704b58a6"},"/docs/latest/querying/geo-b01":{"__comp":"17896441","content":"e3609e88"},"/docs/latest/querying/granularities-e72":{"__comp":"17896441","content":"83593c6b"},"/docs/latest/querying/groupbyquery-efa":{"__comp":"17896441","content":"615c06f6"},"/docs/latest/querying/having-f8b":{"__comp":"17896441","content":"5aad1f90"},"/docs/latest/querying/hll-old-72f":{"__comp":"17896441","content":"a129ef7f"},"/docs/latest/querying/joins-6e2":{"__comp":"17896441","content":"a155e191"},"/docs/latest/querying/limitspec-2a1":{"__comp":"17896441","content":"daff6454"},"/docs/latest/querying/lookups-54b":{"__comp":"17896441","content":"8549cd83"},"/docs/latest/querying/math-expr-7ed":{"__comp":"17896441","content":"6d081973"},"/docs/latest/querying/multi-value-dimensions-f1c":{"__comp":"17896441","content":"caed696f"},"/docs/latest/querying/multitenancy-14a":{"__comp":"17896441","content":"ce4dff4d"},"/docs/latest/querying/nested-columns-13d":{"__comp":"17896441","content":"cea8fd56"},"/docs/latest/querying/post-aggregations-c22":{"__comp":"17896441","content":"2feb98fa"},"/docs/latest/querying/query-context-fb0":{"__comp":"17896441","content":"13ec796f"},"/docs/latest/querying/query-deep-storage-2e6":{"__comp":"17896441","content":"f0a1c229"},"/docs/latest/querying/query-execution-a52":{"__comp":"17896441","content":"0e1242db"},"/docs/latest/querying/scan-query-8fb":{"__comp":"17896441","content":"b639be62"},"/docs/latest/querying/searchquery-6dc":{"__comp":"17896441","content":"b307eceb"},"/docs/latest/querying/segmentmetadataquery-94c":{"__comp":"17896441","content":"a8cc8574"},"/docs/latest/querying/select-query-eb3":{"__comp":"17896441","content":"84a6c3d0"},"/docs/latest/querying/sorting-orders-415":{"__comp":"17896441","content":"90cf7f37"},"/docs/latest/querying/sql-e56":{"__comp":"17896441","content":"2fbe7d8e"},"/docs/latest/querying/sql-aggregations-2d7":{"__comp":"17896441","content":"77f7adac"},"/docs/latest/querying/sql-array-functions-c16":{"__comp":"17896441","content":"8cdd5c5f"},"/docs/latest/querying/sql-data-types-17d":{"__comp":"17896441","content":"5e9ea8d6"},"/docs/latest/querying/sql-functions-90a":{"__comp":"17896441","content":"b2d41fa9"},"/docs/latest/querying/sql-json-functions-d7f":{"__comp":"17896441","content":"c9fa3e8f"},"/docs/latest/querying/sql-metadata-tables-869":{"__comp":"17896441","content":"bee5d326"},"/docs/latest/querying/sql-multivalue-string-functions-780":{"__comp":"17896441","content":"06bb6c62"},"/docs/latest/querying/sql-operators-f3d":{"__comp":"17896441","content":"a94c6434"},"/docs/latest/querying/sql-query-context-6aa":{"__comp":"17896441","content":"740ee517"},"/docs/latest/querying/sql-scalar-87b":{"__comp":"17896441","content":"c5760f30"},"/docs/latest/querying/sql-translation-763":{"__comp":"17896441","content":"9557406b"},"/docs/latest/querying/sql-window-functions-d1f":{"__comp":"17896441","content":"d2eba29c"},"/docs/latest/querying/timeboundaryquery-de1":{"__comp":"17896441","content":"56374a56"},"/docs/latest/querying/timeseriesquery-685":{"__comp":"17896441","content":"cd07172b"},"/docs/latest/querying/tips-good-queries-a6f":{"__comp":"17896441","content":"db509a08"},"/docs/latest/querying/topnmetricspec-459":{"__comp":"17896441","content":"9c039e3e"},"/docs/latest/querying/topnquery-670":{"__comp":"17896441","content":"a37f7d8e"},"/docs/latest/querying/troubleshooting-e83":{"__comp":"17896441","content":"98da0572"},"/docs/latest/querying/using-caching-b6b":{"__comp":"17896441","content":"f50e9825"},"/docs/latest/querying/virtual-columns-1a9":{"__comp":"17896441","content":"0c7364f1"},"/docs/latest/release-info/release-notes-ba6":{"__comp":"17896441","content":"9dd30c58"},"/docs/latest/release-info/upgrade-notes-cdd":{"__comp":"17896441","content":"71de5257"},"/docs/latest/tutorials/-806":{"__comp":"17896441","content":"dc86ecba"},"/docs/latest/tutorials/cluster-535":{"__comp":"17896441","content":"01019b7b"},"/docs/latest/tutorials/docker-fa7":{"__comp":"17896441","content":"b0c79e6c"},"/docs/latest/tutorials/tutorial-batch-4d5":{"__comp":"17896441","content":"cd22c7ca"},"/docs/latest/tutorials/tutorial-batch-hadoop-b2e":{"__comp":"17896441","content":"4fbcb8e1"},"/docs/latest/tutorials/tutorial-batch-native-c3a":{"__comp":"17896441","content":"d6226c05"},"/docs/latest/tutorials/tutorial-compaction-c26":{"__comp":"17896441","content":"7f61aae6"},"/docs/latest/tutorials/tutorial-delete-data-a91":{"__comp":"17896441","content":"3f8e7beb"},"/docs/latest/tutorials/tutorial-ingestion-spec-897":{"__comp":"17896441","content":"688a6cad"},"/docs/latest/tutorials/tutorial-jdbc-ca8":{"__comp":"17896441","content":"86f503e8"},"/docs/latest/tutorials/tutorial-jupyter-docker-efe":{"__comp":"17896441","content":"05c5d8b0"},"/docs/latest/tutorials/tutorial-jupyter-index-6f6":{"__comp":"17896441","content":"8a63feaa"},"/docs/latest/tutorials/tutorial-kafka-33c":{"__comp":"17896441","content":"b964b515"},"/docs/latest/tutorials/tutorial-kerberos-hadoop-e91":{"__comp":"17896441","content":"cb88f4a3"},"/docs/latest/tutorials/tutorial-msq-convert-spec-317":{"__comp":"17896441","content":"d24799e9"},"/docs/latest/tutorials/tutorial-msq-extern-5c9":{"__comp":"17896441","content":"0b1078cf"},"/docs/latest/tutorials/tutorial-query-313":{"__comp":"17896441","content":"4cf66254"},"/docs/latest/tutorials/tutorial-query-deep-storage-27b":{"__comp":"17896441","content":"7ef2feef"},"/docs/latest/tutorials/tutorial-retention-e91":{"__comp":"17896441","content":"33d88741"},"/docs/latest/tutorials/tutorial-rollup-bd3":{"__comp":"17896441","content":"5ffc9c90"},"/docs/latest/tutorials/tutorial-sketches-theta-34e":{"__comp":"17896441","content":"06350a84"},"/docs/latest/tutorials/tutorial-sql-query-view-132":{"__comp":"17896441","content":"ba471ed5"},"/docs/latest/tutorials/tutorial-transform-spec-24a":{"__comp":"17896441","content":"c0ee7c6a"},"/docs/latest/tutorials/tutorial-unnest-arrays-b82":{"__comp":"17896441","content":"c223c992"},"/docs/latest/tutorials/tutorial-update-data-ade":{"__comp":"17896441","content":"3d095abc"},"/-8ed":{"__comp":"c4f5d8e4","__context":{"plugin":"16e139eb"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=49383,e(e.s=t);var t}));e.O()}]);