From 6e8de0747e334d3df0910e82b910e22ac19bee60 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 14 Jun 2024 06:27:08 +0000 Subject: [PATCH] deploy: taskiq-python/taskiq@7d8b193c5a5db89ea509c6eb27fc8bf68223b215 --- 404.html | 8 ++++---- .../{404.html-3LzQokOC.js => 404.html-BtSNQ6hx.js} | 2 +- ...chResult-DtoDG66d.js => SearchResult-nRRabPVu.js} | 2 +- assets/{app-BQ_RvZRm.js => app-B7rxM88G.js} | 6 +++--- assets/{arc-Dfq8ddjc.js => arc-DKl72la8.js} | 2 +- ...uXI.js => architecture-overview.html-DNa4LIBv.js} | 4 ++-- ...Lac1f6ab.js => blockDiagram-9f4a6865-Zpc-eQGX.js} | 2 +- ...oker.html-DqusxivQ.js => broker.html-BoSB0Wjf.js} | 4 ++-- ...ers.html-aejrugY5.js => brokers.html-CaIcSGbA.js} | 4 ++-- ...93-CUy5LWf1.js => c4Diagram-ae766693-BTix4Ws5.js} | 2 +- assets/channel-It_pefhc.js | 1 - assets/channel-tiY1AyWJ.js | 1 + ...Sx-rWsFE.js => classDiagram-fb54d2a0-C8mBi0ie.js} | 2 +- ...vTt6n.js => classDiagram-v2-a2b738ad-B2KLm9e2.js} | 2 +- .../{cli.html-Bx0PPBIR.js => cli.html-D5C_Fe4w.js} | 4 ++-- .../{cli.html-CCDgUlSP.js => cli.html-u54Dq3YY.js} | 6 +++--- assets/clone-B4YCsPuJ.js | 1 - assets/clone-SNQTcLae.js | 1 + ...rib.html-D8vp9Kkd.js => contrib.html-Ct7fcL-5.js} | 4 ++-- ...6-BYApgeQh.js => createText-ca0c5216-zqCXB1ps.js} | 2 +- ...-uZ0iJF8V.js => dynamic-brokers.html-BLoMPtw4.js} | 4 ++-- ...6a5561-31kAkIJ0.js => edges-066a5561-Cesv2_yT.js} | 2 +- ...5f-HbBTHeac.js => erDiagram-09d1c15f-Cq02I8yw.js} | 2 +- ....html-EaaabuO6.js => faststream.html-Chb2k470.js} | 4 ++-- ...33063-B3SS7hvs.js => flowDb-c1833063-BJUkj5Yh.js} | 2 +- ...-EQMov2Ka.js => flowDiagram-b222e15a-C05KrNLm.js} | 2 +- assets/flowDiagram-v2-13329dc7-08uOBUsR.js | 1 - assets/flowDiagram-v2-13329dc7-D1675DB6.js | 1 + ...=> flowchart-elk-definition-ae0efee6-CfLg3myy.js} | 2 +- ...DNQqloZc.js => ganttDiagram-b62c793e-BBZElqEr.js} | 2 +- ...-B0WO7Lq0.js => getting-started.html-D1SQk_MT.js} | 4 ++-- ...EBaCK.js => gitGraphDiagram-942e62fe-C7MdniS-.js} | 2 +- assets/{graph-k1ojK0f-.js => graph-BKQChTdx.js} | 2 +- ...f381cb-DBfo_-ML.js => index-01f381cb-CtMJaTFR.js} | 2 +- ...index.html-D-kZ8pgQ.js => index.html-CnxRYwnI.js} | 2 +- ...index.html-CcYOliuJ.js => index.html-D9AVDIxR.js} | 2 +- ...index.html-lKTVOM5N.js => index.html-DRuGpgM4.js} | 2 +- ...index.html-DQbil-Mp.js => index.html-DxjDQWc4.js} | 2 +- ...index.html-DYeVH7vP.js => index.html-oKCnTwhT.js} | 4 ++-- ...-znpLWbNm.js => infoDiagram-94cd232f-CpI5hD6J.js} | 2 +- ...TzKQA0.js => journeyDiagram-6625b456-C-oR09-z.js} | 2 +- assets/{layout-CbxIxNpL.js => layout-Bwrh1hP1.js} | 2 +- assets/{line-DOPC82El.js => line-Dh5t0evl.js} | 2 +- assets/{linear-DyHMIkCX.js => linear-DPKUxXbT.js} | 2 +- ...aid.core-Cio1iadR.js => mermaid.core-D8sVPjx9.js} | 8 ++++---- ...l-D21CuXih.js => message-format.html-DtYcYMvv.js} | 4 ++-- ....html-C4f4VUnw.js => middleware.html-C0_oXorf.js} | 4 ++-- ...html-CxZ7sgW4.js => middlewares.html-CqXjJAKK.js} | 4 ++-- ...zH.js => mindmap-definition-307c710a-Bb-El7-P.js} | 2 +- ...5-DTocJMlC.js => pieDiagram-bb1d19e5-C2756XJQ.js} | 2 +- ...tcxYb.js => quadrantDiagram-c759a472-B-yKjtHK.js} | 2 +- ...4g.js => requirementDiagram-87253d64-Cszy6Rvt.js} | 2 +- ...l-BC9Oa3OE.js => result-backend.html-DUmMr-aN.js} | 4 ++-- ...-FfIc_G19.js => result-backends.html-1sXIWCy8.js} | 4 ++-- ...8B1JfeB.js => sankeyDiagram-707fac0f-ZjD0l9d1.js} | 2 +- ...B5ZlrPM_.js => schedule-sources.html-CWUhHItT.js} | 4 ++-- ...BvQTi1oy.js => schedule-sources.html-NmDe5G3N.js} | 4 ++-- ...D4Z3wlOc.js => scheduling-tasks.html-DxDltdd4.js} | 4 ++-- ...z8JpS.js => sequenceDiagram-6894f283-DNGrofAl.js} | 2 +- ...l-VkjM2UB5.js => state-and-deps.html-D334n9p0.js} | 4 ++-- ...Ct9I0Jb9.js => stateDiagram-5dee940d-DyuMIJ4M.js} | 2 +- ...qJEoI.js => stateDiagram-v2-1992cada-DCEDun8l.js} | 2 +- ...4dbeb-CjO33eRK.js => styles-0784dbeb-CcB-RSXW.js} | 2 +- ...fbfea-Dbx9RFKS.js => styles-483fbfea-BbaBfEuf.js} | 2 +- ...b31c9-BnKcw3I0.js => styles-b83b31c9-DZ0N-tpj.js} | 2 +- ...dGGMEzj.js => svgDrawCommon-5e1cfd1d-DOlHDRVT.js} | 2 +- ...yAs84.js => taskiq-with-aiogram.html-CTg4OC-K.js} | 4 ++-- ...n4UgR.js => taskiq-with-aiohttp.html-BKUu5AbU.js} | 4 ++-- ...3zjkD.js => taskiq-with-fastapi.html-Bo1avbi-.js} | 4 ++-- ...l-BmpQf4bQ.js => testing-taskiq.html-Ckmgkcrw.js} | 4 ++-- ...Z.js => timeline-definition-bf702344-DHauvNjP.js} | 2 +- ...jcrauj.js => xychartDiagram-f11f50a6-BV3T3Dmy.js} | 2 +- available-components/brokers.html | 10 +++++----- available-components/index.html | 10 +++++----- available-components/middlewares.html | 10 +++++----- available-components/result-backends.html | 10 +++++----- available-components/schedule-sources.html | 10 +++++----- contrib.html | 10 +++++----- extending-taskiq/broker.html | 10 +++++----- extending-taskiq/cli.html | 10 +++++----- extending-taskiq/index.html | 10 +++++----- extending-taskiq/middleware.html | 10 +++++----- extending-taskiq/result-backend.html | 10 +++++----- extending-taskiq/schedule-sources.html | 10 +++++----- framework_integrations/faststream.html | 10 +++++----- framework_integrations/index.html | 10 +++++----- framework_integrations/taskiq-with-aiogram.html | 10 +++++----- framework_integrations/taskiq-with-aiohttp.html | 10 +++++----- framework_integrations/taskiq-with-fastapi.html | 10 +++++----- guide/architecture-overview.html | 10 +++++----- guide/cli.html | 12 ++++++------ guide/dynamic-brokers.html | 10 +++++----- guide/getting-started.html | 10 +++++----- guide/index.html | 10 +++++----- guide/message-format.html | 10 +++++----- guide/scheduling-tasks.html | 10 +++++----- guide/state-and-deps.html | 10 +++++----- guide/testing-taskiq.html | 10 +++++----- index.html | 8 ++++---- search-pro.worker.js | 2 +- sitemap.xml | 2 +- 101 files changed, 238 insertions(+), 238 deletions(-) rename assets/{404.html-3LzQokOC.js => 404.html-BtSNQ6hx.js} (93%) rename assets/{SearchResult-DtoDG66d.js => SearchResult-nRRabPVu.js} (98%) rename assets/{app-BQ_RvZRm.js => app-B7rxM88G.js} (98%) rename assets/{arc-Dfq8ddjc.js => arc-DKl72la8.js} (96%) rename assets/{architecture-overview.html-BeBi1uXI.js => architecture-overview.html-DNa4LIBv.js} (98%) rename assets/{blockDiagram-9f4a6865-Lac1f6ab.js => blockDiagram-9f4a6865-Zpc-eQGX.js} (98%) rename assets/{broker.html-DqusxivQ.js => broker.html-BoSB0Wjf.js} (97%) rename assets/{brokers.html-aejrugY5.js => brokers.html-CaIcSGbA.js} (96%) rename assets/{c4Diagram-ae766693-CUy5LWf1.js => c4Diagram-ae766693-BTix4Ws5.js} (99%) delete mode 100644 assets/channel-It_pefhc.js create mode 100644 assets/channel-tiY1AyWJ.js rename assets/{classDiagram-fb54d2a0-Sx-rWsFE.js => classDiagram-fb54d2a0-C8mBi0ie.js} (97%) rename assets/{classDiagram-v2-a2b738ad-D0vvTt6n.js => classDiagram-v2-a2b738ad-B2KLm9e2.js} (92%) rename assets/{cli.html-Bx0PPBIR.js => cli.html-D5C_Fe4w.js} (96%) rename assets/{cli.html-CCDgUlSP.js => cli.html-u54Dq3YY.js} (85%) delete mode 100644 assets/clone-B4YCsPuJ.js create mode 100644 assets/clone-SNQTcLae.js rename assets/{contrib.html-D8vp9Kkd.js => contrib.html-Ct7fcL-5.js} (92%) rename assets/{createText-ca0c5216-BYApgeQh.js => createText-ca0c5216-zqCXB1ps.js} (99%) rename assets/{dynamic-brokers.html-uZ0iJF8V.js => dynamic-brokers.html-BLoMPtw4.js} (98%) rename assets/{edges-066a5561-31kAkIJ0.js => edges-066a5561-Cesv2_yT.js} (99%) rename assets/{erDiagram-09d1c15f-HbBTHeac.js => erDiagram-09d1c15f-Cq02I8yw.js} (99%) rename assets/{faststream.html-EaaabuO6.js => faststream.html-Chb2k470.js} (89%) rename assets/{flowDb-c1833063-B3SS7hvs.js => flowDb-c1833063-BJUkj5Yh.js} (99%) rename assets/{flowDiagram-b222e15a-EQMov2Ka.js => flowDiagram-b222e15a-C05KrNLm.js} (97%) delete mode 100644 assets/flowDiagram-v2-13329dc7-08uOBUsR.js create mode 100644 assets/flowDiagram-v2-13329dc7-D1675DB6.js rename assets/{flowchart-elk-definition-ae0efee6-BvF1eOFQ.js => flowchart-elk-definition-ae0efee6-CfLg3myy.js} (99%) rename assets/{ganttDiagram-b62c793e-DNQqloZc.js => ganttDiagram-b62c793e-BBZElqEr.js} (99%) rename assets/{getting-started.html-B0WO7Lq0.js => getting-started.html-D1SQk_MT.js} (98%) rename assets/{gitGraphDiagram-942e62fe-DgiEBaCK.js => gitGraphDiagram-942e62fe-C7MdniS-.js} (99%) rename assets/{graph-k1ojK0f-.js => graph-BKQChTdx.js} (99%) rename assets/{index-01f381cb-DBfo_-ML.js => index-01f381cb-CtMJaTFR.js} (96%) rename assets/{index.html-D-kZ8pgQ.js => index.html-CnxRYwnI.js} (81%) rename assets/{index.html-CcYOliuJ.js => index.html-D9AVDIxR.js} (86%) rename assets/{index.html-lKTVOM5N.js => index.html-DRuGpgM4.js} (92%) rename assets/{index.html-DQbil-Mp.js => index.html-DxjDQWc4.js} (81%) rename assets/{index.html-DYeVH7vP.js => index.html-oKCnTwhT.js} (91%) rename assets/{infoDiagram-94cd232f-znpLWbNm.js => infoDiagram-94cd232f-CpI5hD6J.js} (98%) rename assets/{journeyDiagram-6625b456-DdTzKQA0.js => journeyDiagram-6625b456-C-oR09-z.js} (98%) rename assets/{layout-CbxIxNpL.js => layout-Bwrh1hP1.js} (99%) rename assets/{line-DOPC82El.js => line-Dh5t0evl.js} (93%) rename assets/{linear-DyHMIkCX.js => linear-DPKUxXbT.js} (99%) rename assets/{mermaid.core-Cio1iadR.js => mermaid.core-D8sVPjx9.js} (98%) rename assets/{message-format.html-D21CuXih.js => message-format.html-DtYcYMvv.js} (96%) rename assets/{middleware.html-C4f4VUnw.js => middleware.html-C0_oXorf.js} (96%) rename assets/{middlewares.html-CxZ7sgW4.js => middlewares.html-CqXjJAKK.js} (95%) rename assets/{mindmap-definition-307c710a-3IslH3zH.js => mindmap-definition-307c710a-Bb-El7-P.js} (99%) rename assets/{pieDiagram-bb1d19e5-DTocJMlC.js => pieDiagram-bb1d19e5-C2756XJQ.js} (98%) rename assets/{quadrantDiagram-c759a472-DS1tcxYb.js => quadrantDiagram-c759a472-B-yKjtHK.js} (99%) rename assets/{requirementDiagram-87253d64-CeDPUd4g.js => requirementDiagram-87253d64-Cszy6Rvt.js} (98%) rename assets/{result-backend.html-BC9Oa3OE.js => result-backend.html-DUmMr-aN.js} (97%) rename assets/{result-backends.html-FfIc_G19.js => result-backends.html-1sXIWCy8.js} (87%) rename assets/{sankeyDiagram-707fac0f-C8B1JfeB.js => sankeyDiagram-707fac0f-ZjD0l9d1.js} (99%) rename assets/{schedule-sources.html-B5ZlrPM_.js => schedule-sources.html-CWUhHItT.js} (95%) rename assets/{schedule-sources.html-BvQTi1oy.js => schedule-sources.html-NmDe5G3N.js} (97%) rename assets/{scheduling-tasks.html-D4Z3wlOc.js => scheduling-tasks.html-DxDltdd4.js} (98%) rename assets/{sequenceDiagram-6894f283-vjJz8JpS.js => sequenceDiagram-6894f283-DNGrofAl.js} (99%) rename assets/{state-and-deps.html-VkjM2UB5.js => state-and-deps.html-D334n9p0.js} (99%) rename assets/{stateDiagram-5dee940d-Ct9I0Jb9.js => stateDiagram-5dee940d-DyuMIJ4M.js} (97%) rename assets/{stateDiagram-v2-1992cada-CYZqJEoI.js => stateDiagram-v2-1992cada-DCEDun8l.js} (90%) rename assets/{styles-0784dbeb-CjO33eRK.js => styles-0784dbeb-CcB-RSXW.js} (99%) rename assets/{styles-483fbfea-Dbx9RFKS.js => styles-483fbfea-BbaBfEuf.js} (98%) rename assets/{styles-b83b31c9-BnKcw3I0.js => styles-b83b31c9-DZ0N-tpj.js} (99%) rename assets/{svgDrawCommon-5e1cfd1d-BdGGMEzj.js => svgDrawCommon-5e1cfd1d-DOlHDRVT.js} (95%) rename assets/{taskiq-with-aiogram.html-CNQyAs84.js => taskiq-with-aiogram.html-CTg4OC-K.js} (96%) rename assets/{taskiq-with-aiohttp.html-_Hkn4UgR.js => taskiq-with-aiohttp.html-BKUu5AbU.js} (97%) rename assets/{taskiq-with-fastapi.html-BZZ3zjkD.js => taskiq-with-fastapi.html-Bo1avbi-.js} (96%) rename assets/{testing-taskiq.html-BmpQf4bQ.js => testing-taskiq.html-Ckmgkcrw.js} (98%) rename assets/{timeline-definition-bf702344-CfSWb9uZ.js => timeline-definition-bf702344-DHauvNjP.js} (99%) rename assets/{xychartDiagram-f11f50a6-DXjcrauj.js => xychartDiagram-f11f50a6-BV3T3Dmy.js} (99%) diff --git a/404.html b/404.html index dd59c00..7ad9c38 100644 --- a/404.html +++ b/404.html @@ -30,11 +30,11 @@ Taskiq - - + + -
Skip to main content

404

Page not found

Looks like we've got some broken links.

- +
Skip to main content

404

Page not found

How did we get here?

+ diff --git a/assets/404.html-3LzQokOC.js b/assets/404.html-BtSNQ6hx.js similarity index 93% rename from assets/404.html-3LzQokOC.js rename to assets/404.html-BtSNQ6hx.js index c709f24..d4a76be 100644 --- a/assets/404.html-3LzQokOC.js +++ b/assets/404.html-BtSNQ6hx.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as e,c as o,b as n}from"./app-BQ_RvZRm.js";const a={},r=n("p",null,"404 Not Found",-1),p=[r];function c(s,i){return e(),o("div",null,p)}const d=t(a,[["render",c],["__file","404.html.vue"]]),_=JSON.parse('{"path":"/404.html","title":"","lang":"en-US","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/404.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"]]},"headers":[],"git":{},"filePathRelative":null,"autoDesc":true,"excerpt":"

404 Not Found

\\n"}');export{d as comp,_ as data}; +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as e,c as o,b as n}from"./app-B7rxM88G.js";const a={},r=n("p",null,"404 Not Found",-1),p=[r];function c(s,i){return e(),o("div",null,p)}const d=t(a,[["render",c],["__file","404.html.vue"]]),_=JSON.parse('{"path":"/404.html","title":"","lang":"en-US","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/404.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"]]},"headers":[],"git":{},"filePathRelative":null,"autoDesc":true,"excerpt":"

404 Not Found

\\n"}');export{d as comp,_ as data}; diff --git a/assets/SearchResult-DtoDG66d.js b/assets/SearchResult-nRRabPVu.js similarity index 98% rename from assets/SearchResult-DtoDG66d.js rename to assets/SearchResult-nRRabPVu.js index 91d8bdc..6db7c76 100644 --- a/assets/SearchResult-DtoDG66d.js +++ b/assets/SearchResult-nRRabPVu.js @@ -1 +1 @@ -import{u as Y,f as te,g as se,h as B,i as ae,P as le,t as re,j as ie,k as E,l as x,m as ue,n as M,p as s,q as ne,R as $,s as oe,v as ce,x as ve,C as de,y as he,z as pe,A as me,B as ye,D as ge,E as ke,F as fe,G as j,H as I,I as we,J as b,K as qe}from"./app-BQ_RvZRm.js";const He=["/","/contrib.html","/available-components/","/available-components/brokers.html","/available-components/middlewares.html","/available-components/result-backends.html","/available-components/schedule-sources.html","/extending-taskiq/","/extending-taskiq/broker.html","/extending-taskiq/cli.html","/extending-taskiq/middleware.html","/extending-taskiq/result-backend.html","/extending-taskiq/schedule-sources.html","/framework_integrations/","/framework_integrations/faststream.html","/framework_integrations/taskiq-with-aiogram.html","/framework_integrations/taskiq-with-aiohttp.html","/framework_integrations/taskiq-with-fastapi.html","/guide/","/guide/architecture-overview.html","/guide/cli.html","/guide/dynamic-brokers.html","/guide/getting-started.html","/guide/message-format.html","/guide/scheduling-tasks.html","/guide/state-and-deps.html","/guide/testing-taskiq.html","/404.html"],Re="SEARCH_PRO_QUERY_HISTORY",g=Y(Re,[]),xe=()=>{const{queryHistoryCount:a}=b,l=a>0;return{enabled:l,queryHistory:g,addQueryHistory:r=>{l&&(g.value=Array.from(new Set([r,...g.value.slice(0,a-1)])))},removeQueryHistory:r=>{g.value=[...g.value.slice(0,r),...g.value.slice(r+1)]}}},F=a=>He[a.id]+("anchor"in a?`#${a.anchor}`:""),be="SEARCH_PRO_RESULT_HISTORY",{resultHistoryCount:U}=b,k=Y(be,[]),Qe=()=>{const a=U>0;return{enabled:a,resultHistory:k,addResultHistory:l=>{if(a){const r={link:F(l),display:l.display};"header"in l&&(r.header=l.header),k.value=[r,...k.value.slice(0,U-1)]}},removeResultHistory:l=>{k.value=[...k.value.slice(0,l),...k.value.slice(l+1)]}}},Se=a=>{const l=de(),r=B(),Q=he(),u=E(0),q=x(()=>u.value>0),p=pe([]);return me(()=>{const{search:m,terminate:S}=ye(),f=we(c=>{const w=c.join(" "),{searchFilter:C=h=>h,splitWord:D,suggestionsFilter:P,...y}=l.value;w?(u.value+=1,m(c.join(" "),r.value,y).then(h=>C(h,w,r.value,Q.value)).then(h=>{u.value-=1,p.value=h}).catch(h=>{console.warn(h),u.value-=1,u.value||(p.value=[])})):p.value=[]},b.searchDelay-b.suggestDelay);M([a,r],([c])=>f(c),{immediate:!0}),ge(()=>{S()})}),{isSearching:q,results:p}};var De=te({name:"SearchResult",props:{queries:{type:Array,required:!0},isFocusing:Boolean},emits:["close","updateQuery"],setup(a,{emit:l}){const r=se(),Q=B(),u=ae(le),{enabled:q,addQueryHistory:p,queryHistory:m,removeQueryHistory:S}=xe(),{enabled:f,resultHistory:c,addResultHistory:w,removeResultHistory:C}=Qe(),D=q||f,P=re(a,"queries"),{results:y,isSearching:h}=Se(P),i=ie({isQuery:!0,index:0}),v=E(0),d=E(0),O=x(()=>D&&(m.value.length>0||c.value.length>0)),L=x(()=>y.value.length>0),_=x(()=>y.value[v.value]||null),z=()=>{const{isQuery:e,index:t}=i;t===0?(i.isQuery=!e,i.index=e?c.value.length-1:m.value.length-1):i.index=t-1},G=()=>{const{isQuery:e,index:t}=i;t===(e?m.value.length-1:c.value.length-1)?(i.isQuery=!e,i.index=0):i.index=t+1},J=()=>{v.value=v.value>0?v.value-1:y.value.length-1,d.value=_.value.contents.length-1},K=()=>{v.value=v.value{d.value<_.value.contents.length-1?d.value+=1:K()},N=()=>{d.value>0?d.value-=1:J()},A=e=>e.map(t=>qe(t)?t:s(t[0],t[1])),W=e=>{if(e.type==="customField"){const t=ke[e.index]||"$content",[n,R=""]=fe(t)?t[Q.value].split("$content"):t.split("$content");return e.display.map(o=>s("div",A([n,...o,R])))}return e.display.map(t=>s("div",A(t)))},H=()=>{v.value=0,d.value=0,l("updateQuery",""),l("close")},X=()=>q?s("ul",{class:"search-pro-result-list"},s("li",{class:"search-pro-result-list-item"},[s("div",{class:"search-pro-result-title"},u.value.queryHistory),m.value.map((e,t)=>s("div",{class:["search-pro-result-item",{active:i.isQuery&&i.index===t}],onClick:()=>{l("updateQuery",e)}},[s(j,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},e),s("button",{class:"search-pro-remove-icon",innerHTML:I,onClick:n=>{n.preventDefault(),n.stopPropagation(),S(t)}})]))])):null,Z=()=>f?s("ul",{class:"search-pro-result-list"},s("li",{class:"search-pro-result-list-item"},[s("div",{class:"search-pro-result-title"},u.value.resultHistory),c.value.map((e,t)=>s($,{to:e.link,class:["search-pro-result-item",{active:!i.isQuery&&i.index===t}],onClick:()=>{H()}},()=>[s(j,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},[e.header?s("div",{class:"content-header"},e.header):null,s("div",e.display.map(n=>A(n)).flat())]),s("button",{class:"search-pro-remove-icon",innerHTML:I,onClick:n=>{n.preventDefault(),n.stopPropagation(),C(t)}})]))])):null;return ue("keydown",e=>{if(a.isFocusing){if(L.value){if(e.key==="ArrowUp")N();else if(e.key==="ArrowDown")V();else if(e.key==="Enter"){const t=_.value.contents[d.value];p(a.queries.join(" ")),w(t),r.push(F(t)),H()}}else if(f){if(e.key==="ArrowUp")z();else if(e.key==="ArrowDown")G();else if(e.key==="Enter"){const{index:t}=i;i.isQuery?(l("updateQuery",m.value[t]),e.preventDefault()):(r.push(c.value[t].link),H())}}}}),M([v,d],()=>{var e;(e=document.querySelector(".search-pro-result-list-item.active .search-pro-result-item.active"))==null||e.scrollIntoView(!1)},{flush:"post"}),()=>s("div",{class:["search-pro-result-wrapper",{empty:a.queries.length?!L.value:!O.value}],id:"search-pro-results"},a.queries.length?h.value?s(ne,{hint:u.value.searching}):L.value?s("ul",{class:"search-pro-result-list"},y.value.map(({title:e,contents:t},n)=>{const R=v.value===n;return s("li",{class:["search-pro-result-list-item",{active:R}]},[s("div",{class:"search-pro-result-title"},e||u.value.defaultTitle),t.map((o,ee)=>{const T=R&&d.value===ee;return s($,{to:F(o),class:["search-pro-result-item",{active:T,"aria-selected":T}],onClick:()=>{p(a.queries.join(" ")),w(o),H()}},()=>[o.type==="text"?null:s(o.type==="title"?oe:o.type==="heading"?ce:ve,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},[o.type==="text"&&o.header?s("div",{class:"content-header"},o.header):null,s("div",W(o))])])})])})):u.value.emptyResult:D?O.value?[X(),Z()]:u.value.emptyHistory:u.value.emptyResult)}});export{De as default}; +import{u as Y,f as te,g as se,h as B,i as ae,P as le,t as re,j as ie,k as E,l as x,m as ue,n as M,p as s,q as ne,R as $,s as oe,v as ce,x as ve,C as de,y as he,z as pe,A as me,B as ye,D as ge,E as ke,F as fe,G as j,H as I,I as we,J as b,K as qe}from"./app-B7rxM88G.js";const He=["/","/contrib.html","/available-components/","/available-components/brokers.html","/available-components/middlewares.html","/available-components/result-backends.html","/available-components/schedule-sources.html","/extending-taskiq/","/extending-taskiq/broker.html","/extending-taskiq/cli.html","/extending-taskiq/middleware.html","/extending-taskiq/result-backend.html","/extending-taskiq/schedule-sources.html","/framework_integrations/","/framework_integrations/faststream.html","/framework_integrations/taskiq-with-aiogram.html","/framework_integrations/taskiq-with-aiohttp.html","/framework_integrations/taskiq-with-fastapi.html","/guide/","/guide/architecture-overview.html","/guide/cli.html","/guide/dynamic-brokers.html","/guide/getting-started.html","/guide/message-format.html","/guide/scheduling-tasks.html","/guide/state-and-deps.html","/guide/testing-taskiq.html","/404.html"],Re="SEARCH_PRO_QUERY_HISTORY",g=Y(Re,[]),xe=()=>{const{queryHistoryCount:a}=b,l=a>0;return{enabled:l,queryHistory:g,addQueryHistory:r=>{l&&(g.value=Array.from(new Set([r,...g.value.slice(0,a-1)])))},removeQueryHistory:r=>{g.value=[...g.value.slice(0,r),...g.value.slice(r+1)]}}},F=a=>He[a.id]+("anchor"in a?`#${a.anchor}`:""),be="SEARCH_PRO_RESULT_HISTORY",{resultHistoryCount:U}=b,k=Y(be,[]),Qe=()=>{const a=U>0;return{enabled:a,resultHistory:k,addResultHistory:l=>{if(a){const r={link:F(l),display:l.display};"header"in l&&(r.header=l.header),k.value=[r,...k.value.slice(0,U-1)]}},removeResultHistory:l=>{k.value=[...k.value.slice(0,l),...k.value.slice(l+1)]}}},Se=a=>{const l=de(),r=B(),Q=he(),u=E(0),q=x(()=>u.value>0),p=pe([]);return me(()=>{const{search:m,terminate:S}=ye(),f=we(c=>{const w=c.join(" "),{searchFilter:C=h=>h,splitWord:D,suggestionsFilter:P,...y}=l.value;w?(u.value+=1,m(c.join(" "),r.value,y).then(h=>C(h,w,r.value,Q.value)).then(h=>{u.value-=1,p.value=h}).catch(h=>{console.warn(h),u.value-=1,u.value||(p.value=[])})):p.value=[]},b.searchDelay-b.suggestDelay);M([a,r],([c])=>f(c),{immediate:!0}),ge(()=>{S()})}),{isSearching:q,results:p}};var De=te({name:"SearchResult",props:{queries:{type:Array,required:!0},isFocusing:Boolean},emits:["close","updateQuery"],setup(a,{emit:l}){const r=se(),Q=B(),u=ae(le),{enabled:q,addQueryHistory:p,queryHistory:m,removeQueryHistory:S}=xe(),{enabled:f,resultHistory:c,addResultHistory:w,removeResultHistory:C}=Qe(),D=q||f,P=re(a,"queries"),{results:y,isSearching:h}=Se(P),i=ie({isQuery:!0,index:0}),v=E(0),d=E(0),O=x(()=>D&&(m.value.length>0||c.value.length>0)),L=x(()=>y.value.length>0),_=x(()=>y.value[v.value]||null),z=()=>{const{isQuery:e,index:t}=i;t===0?(i.isQuery=!e,i.index=e?c.value.length-1:m.value.length-1):i.index=t-1},G=()=>{const{isQuery:e,index:t}=i;t===(e?m.value.length-1:c.value.length-1)?(i.isQuery=!e,i.index=0):i.index=t+1},J=()=>{v.value=v.value>0?v.value-1:y.value.length-1,d.value=_.value.contents.length-1},K=()=>{v.value=v.value{d.value<_.value.contents.length-1?d.value+=1:K()},N=()=>{d.value>0?d.value-=1:J()},A=e=>e.map(t=>qe(t)?t:s(t[0],t[1])),W=e=>{if(e.type==="customField"){const t=ke[e.index]||"$content",[n,R=""]=fe(t)?t[Q.value].split("$content"):t.split("$content");return e.display.map(o=>s("div",A([n,...o,R])))}return e.display.map(t=>s("div",A(t)))},H=()=>{v.value=0,d.value=0,l("updateQuery",""),l("close")},X=()=>q?s("ul",{class:"search-pro-result-list"},s("li",{class:"search-pro-result-list-item"},[s("div",{class:"search-pro-result-title"},u.value.queryHistory),m.value.map((e,t)=>s("div",{class:["search-pro-result-item",{active:i.isQuery&&i.index===t}],onClick:()=>{l("updateQuery",e)}},[s(j,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},e),s("button",{class:"search-pro-remove-icon",innerHTML:I,onClick:n=>{n.preventDefault(),n.stopPropagation(),S(t)}})]))])):null,Z=()=>f?s("ul",{class:"search-pro-result-list"},s("li",{class:"search-pro-result-list-item"},[s("div",{class:"search-pro-result-title"},u.value.resultHistory),c.value.map((e,t)=>s($,{to:e.link,class:["search-pro-result-item",{active:!i.isQuery&&i.index===t}],onClick:()=>{H()}},()=>[s(j,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},[e.header?s("div",{class:"content-header"},e.header):null,s("div",e.display.map(n=>A(n)).flat())]),s("button",{class:"search-pro-remove-icon",innerHTML:I,onClick:n=>{n.preventDefault(),n.stopPropagation(),C(t)}})]))])):null;return ue("keydown",e=>{if(a.isFocusing){if(L.value){if(e.key==="ArrowUp")N();else if(e.key==="ArrowDown")V();else if(e.key==="Enter"){const t=_.value.contents[d.value];p(a.queries.join(" ")),w(t),r.push(F(t)),H()}}else if(f){if(e.key==="ArrowUp")z();else if(e.key==="ArrowDown")G();else if(e.key==="Enter"){const{index:t}=i;i.isQuery?(l("updateQuery",m.value[t]),e.preventDefault()):(r.push(c.value[t].link),H())}}}}),M([v,d],()=>{var e;(e=document.querySelector(".search-pro-result-list-item.active .search-pro-result-item.active"))==null||e.scrollIntoView(!1)},{flush:"post"}),()=>s("div",{class:["search-pro-result-wrapper",{empty:a.queries.length?!L.value:!O.value}],id:"search-pro-results"},a.queries.length?h.value?s(ne,{hint:u.value.searching}):L.value?s("ul",{class:"search-pro-result-list"},y.value.map(({title:e,contents:t},n)=>{const R=v.value===n;return s("li",{class:["search-pro-result-list-item",{active:R}]},[s("div",{class:"search-pro-result-title"},e||u.value.defaultTitle),t.map((o,ee)=>{const T=R&&d.value===ee;return s($,{to:F(o),class:["search-pro-result-item",{active:T,"aria-selected":T}],onClick:()=>{p(a.queries.join(" ")),w(o),H()}},()=>[o.type==="text"?null:s(o.type==="title"?oe:o.type==="heading"?ce:ve,{class:"search-pro-result-type"}),s("div",{class:"search-pro-result-content"},[o.type==="text"&&o.header?s("div",{class:"content-header"},o.header):null,s("div",W(o))])])})])})):u.value.emptyResult:D?O.value?[X(),Z()]:u.value.emptyHistory:u.value.emptyResult)}});export{De as default}; diff --git a/assets/app-BQ_RvZRm.js b/assets/app-B7rxM88G.js similarity index 98% rename from assets/app-BQ_RvZRm.js rename to assets/app-B7rxM88G.js index 764e63f..9187d11 100644 --- a/assets/app-BQ_RvZRm.js +++ b/assets/app-B7rxM88G.js @@ -1,4 +1,4 @@ -const __vite__fileDeps=["assets/index.html-DYeVH7vP.js","assets/plugin-vue_export-helper-DlAUqK2U.js","assets/contrib.html-D8vp9Kkd.js","assets/index.html-D-kZ8pgQ.js","assets/brokers.html-aejrugY5.js","assets/middlewares.html-CxZ7sgW4.js","assets/result-backends.html-FfIc_G19.js","assets/schedule-sources.html-B5ZlrPM_.js","assets/index.html-CcYOliuJ.js","assets/broker.html-DqusxivQ.js","assets/cli.html-Bx0PPBIR.js","assets/middleware.html-C4f4VUnw.js","assets/result-backend.html-BC9Oa3OE.js","assets/schedule-sources.html-BvQTi1oy.js","assets/index.html-DQbil-Mp.js","assets/faststream.html-EaaabuO6.js","assets/taskiq-with-aiogram.html-CNQyAs84.js","assets/taskiq-with-aiohttp.html-_Hkn4UgR.js","assets/taskiq-with-fastapi.html-BZZ3zjkD.js","assets/index.html-lKTVOM5N.js","assets/architecture-overview.html-BeBi1uXI.js","assets/cli.html-CCDgUlSP.js","assets/dynamic-brokers.html-uZ0iJF8V.js","assets/getting-started.html-B0WO7Lq0.js","assets/message-format.html-D21CuXih.js","assets/scheduling-tasks.html-D4Z3wlOc.js","assets/state-and-deps.html-VkjM2UB5.js","assets/testing-taskiq.html-BmpQf4bQ.js","assets/404.html-3LzQokOC.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); +const __vite__fileDeps=["assets/index.html-oKCnTwhT.js","assets/plugin-vue_export-helper-DlAUqK2U.js","assets/contrib.html-Ct7fcL-5.js","assets/index.html-CnxRYwnI.js","assets/brokers.html-CaIcSGbA.js","assets/middlewares.html-CqXjJAKK.js","assets/result-backends.html-1sXIWCy8.js","assets/schedule-sources.html-CWUhHItT.js","assets/index.html-D9AVDIxR.js","assets/broker.html-BoSB0Wjf.js","assets/cli.html-D5C_Fe4w.js","assets/middleware.html-C0_oXorf.js","assets/result-backend.html-DUmMr-aN.js","assets/schedule-sources.html-NmDe5G3N.js","assets/index.html-DxjDQWc4.js","assets/faststream.html-Chb2k470.js","assets/taskiq-with-aiogram.html-CTg4OC-K.js","assets/taskiq-with-aiohttp.html-BKUu5AbU.js","assets/taskiq-with-fastapi.html-Bo1avbi-.js","assets/index.html-DRuGpgM4.js","assets/architecture-overview.html-DNa4LIBv.js","assets/cli.html-u54Dq3YY.js","assets/dynamic-brokers.html-BLoMPtw4.js","assets/getting-started.html-D1SQk_MT.js","assets/message-format.html-DtYcYMvv.js","assets/scheduling-tasks.html-DxDltdd4.js","assets/state-and-deps.html-D334n9p0.js","assets/testing-taskiq.html-Ckmgkcrw.js","assets/404.html-BtSNQ6hx.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); /** * @vue/shared v3.4.27 * (c) 2018-present Yuxi (Evan) You and Vue contributors @@ -15,11 +15,11 @@ const __vite__fileDeps=["assets/index.html-DYeVH7vP.js","assets/plugin-vue_expor * @vue/runtime-dom v3.4.27 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const cd="http://www.w3.org/2000/svg",ud="http://www.w3.org/1998/Math/MathML",Ft=typeof document<"u"?document:null,yl=Ft&&Ft.createElement("template"),fd={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?Ft.createElementNS(cd,e):t==="mathml"?Ft.createElementNS(ud,e):Ft.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Ft.createTextNode(e),createComment:e=>Ft.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ft.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const l=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{yl.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const a=yl.content;if(r==="svg"||r==="mathml"){const i=a.firstChild;for(;i.firstChild;)a.appendChild(i.firstChild);a.removeChild(i)}t.insertBefore(a,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},It="transition",Pn="animation",En=Symbol("_vtc"),Ut=(e,{slots:t})=>u(bf,gi(e),t);Ut.displayName="Transition";const vi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},dd=Ut.props=xe({},Ua,vi),Zt=(e,t=[])=>{ee(e)?e.forEach(n=>n(...t)):e&&e(...t)},wl=e=>e?ee(e)?e.some(t=>t.length>1):e.length>1:!1;function gi(e){const t={};for(const P in e)P in vi||(t[P]=e[P]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:i=s,appearActiveClass:c=l,appearToClass:f=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,m=pd(o),E=m&&m[0],w=m&&m[1],{onBeforeEnter:y,onEnter:C,onEnterCancelled:b,onLeave:x,onLeaveCancelled:$,onBeforeAppear:k=y,onAppear:q=C,onAppearCancelled:N=b}=t,K=(P,X,ye)=>{$t(P,X?f:a),$t(P,X?c:l),ye&&ye()},O=(P,X)=>{P._isLeaving=!1,$t(P,d),$t(P,v),$t(P,p),X&&X()},V=P=>(X,ye)=>{const ge=P?q:C,z=()=>K(X,P,ye);Zt(ge,[X,z]),_l(()=>{$t(X,P?i:s),kt(X,P?f:a),wl(ge)||El(X,r,E,z)})};return xe(t,{onBeforeEnter(P){Zt(y,[P]),kt(P,s),kt(P,l)},onBeforeAppear(P){Zt(k,[P]),kt(P,i),kt(P,c)},onEnter:V(!1),onAppear:V(!0),onLeave(P,X){P._isLeaving=!0;const ye=()=>O(P,X);kt(P,d),kt(P,p),bi(),_l(()=>{P._isLeaving&&($t(P,d),kt(P,v),wl(x)||El(P,r,w,ye))}),Zt(x,[P,ye])},onEnterCancelled(P){K(P,!1),Zt(b,[P])},onAppearCancelled(P){K(P,!0),Zt(N,[P])},onLeaveCancelled(P){O(P),Zt($,[P])}})}function pd(e){if(e==null)return null;if(we(e))return[ho(e.enter),ho(e.leave)];{const t=ho(e);return[t,t]}}function ho(e){return vu(e)}function kt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[En]||(e[En]=new Set)).add(t)}function $t(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[En];n&&(n.delete(t),n.size||(e[En]=void 0))}function _l(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let hd=0;function El(e,t,n,r){const o=e._endId=++hd,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:l,timeout:a,propCount:i}=mi(e,t);if(!l)return r();const c=l+"end";let f=0;const d=()=>{e.removeEventListener(c,p),s()},p=v=>{v.target===e&&++f>=i&&d()};setTimeout(()=>{f(n[m]||"").split(", "),o=r(`${It}Delay`),s=r(`${It}Duration`),l=Cl(o,s),a=r(`${Pn}Delay`),i=r(`${Pn}Duration`),c=Cl(a,i);let f=null,d=0,p=0;t===It?l>0&&(f=It,d=l,p=s.length):t===Pn?c>0&&(f=Pn,d=c,p=i.length):(d=Math.max(l,c),f=d>0?l>c?It:Pn:null,p=f?f===It?s.length:i.length:0);const v=f===It&&/\b(transform|all)(,|$)/.test(r(`${It}Property`).toString());return{type:f,timeout:d,propCount:p,hasTransform:v}}function Cl(e,t){for(;e.lengthkl(n)+kl(e[r])))}function kl(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function bi(){return document.body.offsetHeight}function vd(e,t,n){const r=e[En];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const xl=Symbol("_vod"),gd=Symbol("_vsh"),md=Symbol(""),bd=/(^|;)\s*display\s*:/;function yd(e,t,n){const r=e.style,o=Me(n);let s=!1;if(n&&!o){if(t)if(Me(t))for(const l of t.split(";")){const a=l.slice(0,l.indexOf(":")).trim();n[a]==null&&Mr(r,a,"")}else for(const l in t)n[l]==null&&Mr(r,l,"");for(const l in n)l==="display"&&(s=!0),Mr(r,l,n[l])}else if(o){if(t!==n){const l=r[md];l&&(n+=";"+l),r.cssText=n,s=bd.test(n)}}else t&&e.removeAttribute("style");xl in e&&(e[xl]=s?r.display:"",e[gd]&&(r.display="none"))}const Sl=/\s*!important$/;function Mr(e,t,n){if(ee(n))n.forEach(r=>Mr(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=wd(e,t);Sl.test(n)?e.setProperty(xn(r),n.replace(Sl,""),"important"):e[r]=n}}const Tl=["Webkit","Moz","ms"],vo={};function wd(e,t){const n=vo[t];if(n)return n;let r=st(t);if(r!=="filter"&&r in e)return vo[t]=r;r=cr(r);for(let o=0;ogo||(Td.then(()=>go=0),go=Date.now());function Ld(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;ot(Rd(r,n.value),t,5,[r])};return n.value=e,n.attached=Ad(),n}function Rd(e,t){if(ee(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const Ol=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Od=(e,t,n,r,o,s,l,a,i)=>{const c=o==="svg";t==="class"?vd(e,r,c):t==="style"?yd(e,n,r):ar(t)?ls(t)||xd(e,t,n,r,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Pd(e,t,r,c))?Ed(e,t,r,s,l,a,i):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),_d(e,t,r,c))};function Pd(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ol(t)&&ne(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Ol(t)&&Me(n)?!1:t in e}const yi=new WeakMap,wi=new WeakMap,Vr=Symbol("_moveCb"),Pl=Symbol("_enterCb"),_i={name:"TransitionGroup",props:xe({},dd,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Tn(),r=qa();let o,s;return Ya(()=>{if(!o.length)return;const l=e.moveClass||`${e.name||"v"}-move`;if(!Hd(o[0].el,n.vnode.el,l))return;o.forEach($d),o.forEach(Nd);const a=o.filter(Dd);bi(),a.forEach(i=>{const c=i.el,f=c.style;kt(c,l),f.transform=f.webkitTransform=f.transitionDuration="";const d=c[Vr]=p=>{p&&p.target!==c||(!p||/transform$/.test(p.propertyName))&&(c.removeEventListener("transitionend",d),c[Vr]=null,$t(c,l))};c.addEventListener("transitionend",d)})}),()=>{const l=ie(e),a=gi(l);let i=l.tag||Ye;if(o=[],s)for(let c=0;cdelete e.mode;_i.props;const Md=_i;function $d(e){const t=e.el;t[Vr]&&t[Vr](),t[Pl]&&t[Pl]()}function Nd(e){wi.set(e,e.el.getBoundingClientRect())}function Dd(e){const t=yi.get(e),n=wi.get(e),r=t.left-n.left,o=t.top-n.top;if(r||o){const s=e.el.style;return s.transform=s.webkitTransform=`translate(${r}px,${o}px)`,s.transitionDuration="0s",e}}function Hd(e,t,n){const r=e.cloneNode(),o=e[En];o&&o.forEach(a=>{a.split(/\s+/).forEach(i=>i&&r.classList.remove(i))}),n.split(/\s+/).forEach(a=>a&&r.classList.add(a)),r.style.display="none";const s=t.nodeType===1?t:t.parentNode;s.appendChild(r);const{hasTransform:l}=mi(r);return s.removeChild(r),l}const Fd=xe({patchProp:Od},fd);let mo,Il=!1;function Bd(){return mo=Il?mo:qf(Fd),Il=!0,mo}const jd=(...e)=>{const t=Bd().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=zd(r);if(o)return n(o,!0,Vd(o))},t};function Vd(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function zd(e){return Me(e)?document.querySelector(e):e}var qd=["link","meta","script","style","noscript","template"],Ud=["title","base"],Wd=([e,t,n])=>Ud.includes(e)?e:qd.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,Kd=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=Wd(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},Gd=e=>e[0]==="/"?e:`/${e}`,Ei=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,cn=e=>/^(https?:)?\/\//.test(e),Yd=/.md((\?|#).*)?$/,Ts=(e,t="/")=>!!(cn(e)||e.startsWith("/")&&!e.startsWith(t)&&!Yd.test(e)),Qr=e=>/^[a-z][a-z0-9+.-]*:/.test(e),Xr=e=>Object.prototype.toString.call(e)==="[object Object]",Jd=e=>{const[t,...n]=e.split(/(\?|#)/);if(!t||t.endsWith("/"))return e;let r=t.replace(/(^|\/)README.md$/i,"$1index.html");return r.endsWith(".md")?r=r.substring(0,r.length-3)+".html":r.endsWith(".html")||(r=r+".html"),r.endsWith("/index.html")&&(r=r.substring(0,r.length-10)),r+n.join("")},As=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Ci=e=>e[0]==="/"?e.slice(1):e,Qd=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},Xd=e=>typeof e=="function",Ee=e=>typeof e=="string";const Zd="modulepreload",ep=function(e){return"/"+e},Ml={},ce=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),l=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));o=Promise.all(n.map(a=>{if(a=ep(a),a in Ml)return;Ml[a]=!0;const i=a.endsWith(".css"),c=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${c}`))return;const f=document.createElement("link");if(f.rel=i?"stylesheet":Zd,i||(f.as="script",f.crossOrigin=""),f.href=a,l&&f.setAttribute("nonce",l),document.head.appendChild(f),i)return new Promise((d,p)=>{f.addEventListener("load",d),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${a}`)))})}))}return o.then(()=>t()).catch(s=>{const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=s,window.dispatchEvent(l),!l.defaultPrevented)throw s})},tp=JSON.parse("{}"),np=Object.fromEntries([["/",{loader:()=>ce(()=>import("./index.html-DYeVH7vP.js"),__vite__mapDeps([0,1])),meta:{t:"Task manager for asyncio"}}],["/contrib.html",{loader:()=>ce(()=>import("./contrib.html-D8vp9Kkd.js"),__vite__mapDeps([2,1])),meta:{t:"Contribution guide",O:5}}],["/available-components/",{loader:()=>ce(()=>import("./index.html-D-kZ8pgQ.js"),__vite__mapDeps([3,1])),meta:{t:"Available components",O:4}}],["/available-components/brokers.html",{loader:()=>ce(()=>import("./brokers.html-aejrugY5.js"),__vite__mapDeps([4,1])),meta:{t:"Available brokers",O:2}}],["/available-components/middlewares.html",{loader:()=>ce(()=>import("./middlewares.html-CxZ7sgW4.js"),__vite__mapDeps([5,1])),meta:{t:"Available middlewares",O:5}}],["/available-components/result-backends.html",{loader:()=>ce(()=>import("./result-backends.html-FfIc_G19.js"),__vite__mapDeps([6,1])),meta:{t:"Available result backends",O:3}}],["/available-components/schedule-sources.html",{loader:()=>ce(()=>import("./schedule-sources.html-B5ZlrPM_.js"),__vite__mapDeps([7,1])),meta:{t:"Available schedule sources",O:4}}],["/extending-taskiq/",{loader:()=>ce(()=>import("./index.html-CcYOliuJ.js"),__vite__mapDeps([8,1])),meta:{t:"Extending taskiq",O:3}}],["/extending-taskiq/broker.html",{loader:()=>ce(()=>import("./broker.html-DqusxivQ.js"),__vite__mapDeps([9,1])),meta:{t:"Brokers",O:1}}],["/extending-taskiq/cli.html",{loader:()=>ce(()=>import("./cli.html-Bx0PPBIR.js"),__vite__mapDeps([10,1])),meta:{t:"CLI",O:4}}],["/extending-taskiq/middleware.html",{loader:()=>ce(()=>import("./middleware.html-C4f4VUnw.js"),__vite__mapDeps([11,1])),meta:{t:"Middlewares",O:2}}],["/extending-taskiq/result-backend.html",{loader:()=>ce(()=>import("./result-backend.html-BC9Oa3OE.js"),__vite__mapDeps([12,1])),meta:{t:"Result backend",O:3}}],["/extending-taskiq/schedule-sources.html",{loader:()=>ce(()=>import("./schedule-sources.html-BvQTi1oy.js"),__vite__mapDeps([13,1])),meta:{t:"Schedule source",O:5}}],["/framework_integrations/",{loader:()=>ce(()=>import("./index.html-DQbil-Mp.js"),__vite__mapDeps([14,1])),meta:{t:"Framework integrations",O:2}}],["/framework_integrations/faststream.html",{loader:()=>ce(()=>import("./faststream.html-EaaabuO6.js"),__vite__mapDeps([15,1])),meta:{t:"Taskiq + FastStream",O:3}}],["/framework_integrations/taskiq-with-aiogram.html",{loader:()=>ce(()=>import("./taskiq-with-aiogram.html-CNQyAs84.js"),__vite__mapDeps([16,1])),meta:{t:"Taskiq + Aiogram"}}],["/framework_integrations/taskiq-with-aiohttp.html",{loader:()=>ce(()=>import("./taskiq-with-aiohttp.html-_Hkn4UgR.js"),__vite__mapDeps([17,1])),meta:{t:"Taskiq + AioHTTP",O:2}}],["/framework_integrations/taskiq-with-fastapi.html",{loader:()=>ce(()=>import("./taskiq-with-fastapi.html-BZZ3zjkD.js"),__vite__mapDeps([18,1])),meta:{t:"Taskiq + FastAPI",O:1}}],["/guide/",{loader:()=>ce(()=>import("./index.html-lKTVOM5N.js"),__vite__mapDeps([19,1])),meta:{t:"Introduction",O:1}}],["/guide/architecture-overview.html",{loader:()=>ce(()=>import("./architecture-overview.html-BeBi1uXI.js"),__vite__mapDeps([20,1])),meta:{t:"Architecture overview",O:3}}],["/guide/cli.html",{loader:()=>ce(()=>import("./cli.html-CCDgUlSP.js"),__vite__mapDeps([21,1])),meta:{t:"CLI",O:4}}],["/guide/dynamic-brokers.html",{loader:()=>ce(()=>import("./dynamic-brokers.html-uZ0iJF8V.js"),__vite__mapDeps([22,1])),meta:{t:"Dynamic Environments",O:9}}],["/guide/getting-started.html",{loader:()=>ce(()=>import("./getting-started.html-B0WO7Lq0.js"),__vite__mapDeps([23,1])),meta:{t:"Getting started",O:2}}],["/guide/message-format.html",{loader:()=>ce(()=>import("./message-format.html-D21CuXih.js"),__vite__mapDeps([24,1])),meta:{t:"Taskiq message format",O:11}}],["/guide/scheduling-tasks.html",{loader:()=>ce(()=>import("./scheduling-tasks.html-D4Z3wlOc.js"),__vite__mapDeps([25,1])),meta:{t:"Scheduling tasks",O:8}}],["/guide/state-and-deps.html",{loader:()=>ce(()=>import("./state-and-deps.html-VkjM2UB5.js"),__vite__mapDeps([26,1])),meta:{t:"State and Dependencies",O:7}}],["/guide/testing-taskiq.html",{loader:()=>ce(()=>import("./testing-taskiq.html-BmpQf4bQ.js"),__vite__mapDeps([27,1])),meta:{t:"Testing with taskiq",O:10}}],["/404.html",{loader:()=>ce(()=>import("./404.html-3LzQokOC.js"),__vite__mapDeps([28,1])),meta:{t:""}}]]);/*! +**/const cd="http://www.w3.org/2000/svg",ud="http://www.w3.org/1998/Math/MathML",Ft=typeof document<"u"?document:null,yl=Ft&&Ft.createElement("template"),fd={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?Ft.createElementNS(cd,e):t==="mathml"?Ft.createElementNS(ud,e):Ft.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Ft.createTextNode(e),createComment:e=>Ft.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ft.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const l=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{yl.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const a=yl.content;if(r==="svg"||r==="mathml"){const i=a.firstChild;for(;i.firstChild;)a.appendChild(i.firstChild);a.removeChild(i)}t.insertBefore(a,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},It="transition",Pn="animation",En=Symbol("_vtc"),Ut=(e,{slots:t})=>u(bf,gi(e),t);Ut.displayName="Transition";const vi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},dd=Ut.props=xe({},Ua,vi),Zt=(e,t=[])=>{ee(e)?e.forEach(n=>n(...t)):e&&e(...t)},wl=e=>e?ee(e)?e.some(t=>t.length>1):e.length>1:!1;function gi(e){const t={};for(const P in e)P in vi||(t[P]=e[P]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:i=s,appearActiveClass:c=l,appearToClass:f=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,m=pd(o),E=m&&m[0],w=m&&m[1],{onBeforeEnter:y,onEnter:C,onEnterCancelled:b,onLeave:x,onLeaveCancelled:$,onBeforeAppear:k=y,onAppear:q=C,onAppearCancelled:N=b}=t,K=(P,X,ye)=>{$t(P,X?f:a),$t(P,X?c:l),ye&&ye()},O=(P,X)=>{P._isLeaving=!1,$t(P,d),$t(P,v),$t(P,p),X&&X()},V=P=>(X,ye)=>{const ge=P?q:C,z=()=>K(X,P,ye);Zt(ge,[X,z]),_l(()=>{$t(X,P?i:s),kt(X,P?f:a),wl(ge)||El(X,r,E,z)})};return xe(t,{onBeforeEnter(P){Zt(y,[P]),kt(P,s),kt(P,l)},onBeforeAppear(P){Zt(k,[P]),kt(P,i),kt(P,c)},onEnter:V(!1),onAppear:V(!0),onLeave(P,X){P._isLeaving=!0;const ye=()=>O(P,X);kt(P,d),kt(P,p),bi(),_l(()=>{P._isLeaving&&($t(P,d),kt(P,v),wl(x)||El(P,r,w,ye))}),Zt(x,[P,ye])},onEnterCancelled(P){K(P,!1),Zt(b,[P])},onAppearCancelled(P){K(P,!0),Zt(N,[P])},onLeaveCancelled(P){O(P),Zt($,[P])}})}function pd(e){if(e==null)return null;if(we(e))return[ho(e.enter),ho(e.leave)];{const t=ho(e);return[t,t]}}function ho(e){return vu(e)}function kt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[En]||(e[En]=new Set)).add(t)}function $t(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[En];n&&(n.delete(t),n.size||(e[En]=void 0))}function _l(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let hd=0;function El(e,t,n,r){const o=e._endId=++hd,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:l,timeout:a,propCount:i}=mi(e,t);if(!l)return r();const c=l+"end";let f=0;const d=()=>{e.removeEventListener(c,p),s()},p=v=>{v.target===e&&++f>=i&&d()};setTimeout(()=>{f(n[m]||"").split(", "),o=r(`${It}Delay`),s=r(`${It}Duration`),l=Cl(o,s),a=r(`${Pn}Delay`),i=r(`${Pn}Duration`),c=Cl(a,i);let f=null,d=0,p=0;t===It?l>0&&(f=It,d=l,p=s.length):t===Pn?c>0&&(f=Pn,d=c,p=i.length):(d=Math.max(l,c),f=d>0?l>c?It:Pn:null,p=f?f===It?s.length:i.length:0);const v=f===It&&/\b(transform|all)(,|$)/.test(r(`${It}Property`).toString());return{type:f,timeout:d,propCount:p,hasTransform:v}}function Cl(e,t){for(;e.lengthkl(n)+kl(e[r])))}function kl(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function bi(){return document.body.offsetHeight}function vd(e,t,n){const r=e[En];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const xl=Symbol("_vod"),gd=Symbol("_vsh"),md=Symbol(""),bd=/(^|;)\s*display\s*:/;function yd(e,t,n){const r=e.style,o=Me(n);let s=!1;if(n&&!o){if(t)if(Me(t))for(const l of t.split(";")){const a=l.slice(0,l.indexOf(":")).trim();n[a]==null&&Mr(r,a,"")}else for(const l in t)n[l]==null&&Mr(r,l,"");for(const l in n)l==="display"&&(s=!0),Mr(r,l,n[l])}else if(o){if(t!==n){const l=r[md];l&&(n+=";"+l),r.cssText=n,s=bd.test(n)}}else t&&e.removeAttribute("style");xl in e&&(e[xl]=s?r.display:"",e[gd]&&(r.display="none"))}const Sl=/\s*!important$/;function Mr(e,t,n){if(ee(n))n.forEach(r=>Mr(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=wd(e,t);Sl.test(n)?e.setProperty(xn(r),n.replace(Sl,""),"important"):e[r]=n}}const Tl=["Webkit","Moz","ms"],vo={};function wd(e,t){const n=vo[t];if(n)return n;let r=st(t);if(r!=="filter"&&r in e)return vo[t]=r;r=cr(r);for(let o=0;ogo||(Td.then(()=>go=0),go=Date.now());function Ld(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;ot(Rd(r,n.value),t,5,[r])};return n.value=e,n.attached=Ad(),n}function Rd(e,t){if(ee(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const Ol=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Od=(e,t,n,r,o,s,l,a,i)=>{const c=o==="svg";t==="class"?vd(e,r,c):t==="style"?yd(e,n,r):ar(t)?ls(t)||xd(e,t,n,r,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Pd(e,t,r,c))?Ed(e,t,r,s,l,a,i):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),_d(e,t,r,c))};function Pd(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ol(t)&&ne(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Ol(t)&&Me(n)?!1:t in e}const yi=new WeakMap,wi=new WeakMap,Vr=Symbol("_moveCb"),Pl=Symbol("_enterCb"),_i={name:"TransitionGroup",props:xe({},dd,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Tn(),r=qa();let o,s;return Ya(()=>{if(!o.length)return;const l=e.moveClass||`${e.name||"v"}-move`;if(!Hd(o[0].el,n.vnode.el,l))return;o.forEach($d),o.forEach(Nd);const a=o.filter(Dd);bi(),a.forEach(i=>{const c=i.el,f=c.style;kt(c,l),f.transform=f.webkitTransform=f.transitionDuration="";const d=c[Vr]=p=>{p&&p.target!==c||(!p||/transform$/.test(p.propertyName))&&(c.removeEventListener("transitionend",d),c[Vr]=null,$t(c,l))};c.addEventListener("transitionend",d)})}),()=>{const l=ie(e),a=gi(l);let i=l.tag||Ye;if(o=[],s)for(let c=0;cdelete e.mode;_i.props;const Md=_i;function $d(e){const t=e.el;t[Vr]&&t[Vr](),t[Pl]&&t[Pl]()}function Nd(e){wi.set(e,e.el.getBoundingClientRect())}function Dd(e){const t=yi.get(e),n=wi.get(e),r=t.left-n.left,o=t.top-n.top;if(r||o){const s=e.el.style;return s.transform=s.webkitTransform=`translate(${r}px,${o}px)`,s.transitionDuration="0s",e}}function Hd(e,t,n){const r=e.cloneNode(),o=e[En];o&&o.forEach(a=>{a.split(/\s+/).forEach(i=>i&&r.classList.remove(i))}),n.split(/\s+/).forEach(a=>a&&r.classList.add(a)),r.style.display="none";const s=t.nodeType===1?t:t.parentNode;s.appendChild(r);const{hasTransform:l}=mi(r);return s.removeChild(r),l}const Fd=xe({patchProp:Od},fd);let mo,Il=!1;function Bd(){return mo=Il?mo:qf(Fd),Il=!0,mo}const jd=(...e)=>{const t=Bd().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=zd(r);if(o)return n(o,!0,Vd(o))},t};function Vd(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function zd(e){return Me(e)?document.querySelector(e):e}var qd=["link","meta","script","style","noscript","template"],Ud=["title","base"],Wd=([e,t,n])=>Ud.includes(e)?e:qd.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,Kd=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=Wd(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},Gd=e=>e[0]==="/"?e:`/${e}`,Ei=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,cn=e=>/^(https?:)?\/\//.test(e),Yd=/.md((\?|#).*)?$/,Ts=(e,t="/")=>!!(cn(e)||e.startsWith("/")&&!e.startsWith(t)&&!Yd.test(e)),Qr=e=>/^[a-z][a-z0-9+.-]*:/.test(e),Xr=e=>Object.prototype.toString.call(e)==="[object Object]",Jd=e=>{const[t,...n]=e.split(/(\?|#)/);if(!t||t.endsWith("/"))return e;let r=t.replace(/(^|\/)README.md$/i,"$1index.html");return r.endsWith(".md")?r=r.substring(0,r.length-3)+".html":r.endsWith(".html")||(r=r+".html"),r.endsWith("/index.html")&&(r=r.substring(0,r.length-10)),r+n.join("")},As=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Ci=e=>e[0]==="/"?e.slice(1):e,Qd=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},Xd=e=>typeof e=="function",Ee=e=>typeof e=="string";const Zd="modulepreload",ep=function(e){return"/"+e},Ml={},ce=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),l=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));o=Promise.all(n.map(a=>{if(a=ep(a),a in Ml)return;Ml[a]=!0;const i=a.endsWith(".css"),c=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${c}`))return;const f=document.createElement("link");if(f.rel=i?"stylesheet":Zd,i||(f.as="script",f.crossOrigin=""),f.href=a,l&&f.setAttribute("nonce",l),document.head.appendChild(f),i)return new Promise((d,p)=>{f.addEventListener("load",d),f.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${a}`)))})}))}return o.then(()=>t()).catch(s=>{const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=s,window.dispatchEvent(l),!l.defaultPrevented)throw s})},tp=JSON.parse("{}"),np=Object.fromEntries([["/",{loader:()=>ce(()=>import("./index.html-oKCnTwhT.js"),__vite__mapDeps([0,1])),meta:{t:"Task manager for asyncio"}}],["/contrib.html",{loader:()=>ce(()=>import("./contrib.html-Ct7fcL-5.js"),__vite__mapDeps([2,1])),meta:{t:"Contribution guide",O:5}}],["/available-components/",{loader:()=>ce(()=>import("./index.html-CnxRYwnI.js"),__vite__mapDeps([3,1])),meta:{t:"Available components",O:4}}],["/available-components/brokers.html",{loader:()=>ce(()=>import("./brokers.html-CaIcSGbA.js"),__vite__mapDeps([4,1])),meta:{t:"Available brokers",O:2}}],["/available-components/middlewares.html",{loader:()=>ce(()=>import("./middlewares.html-CqXjJAKK.js"),__vite__mapDeps([5,1])),meta:{t:"Available middlewares",O:5}}],["/available-components/result-backends.html",{loader:()=>ce(()=>import("./result-backends.html-1sXIWCy8.js"),__vite__mapDeps([6,1])),meta:{t:"Available result backends",O:3}}],["/available-components/schedule-sources.html",{loader:()=>ce(()=>import("./schedule-sources.html-CWUhHItT.js"),__vite__mapDeps([7,1])),meta:{t:"Available schedule sources",O:4}}],["/extending-taskiq/",{loader:()=>ce(()=>import("./index.html-D9AVDIxR.js"),__vite__mapDeps([8,1])),meta:{t:"Extending taskiq",O:3}}],["/extending-taskiq/broker.html",{loader:()=>ce(()=>import("./broker.html-BoSB0Wjf.js"),__vite__mapDeps([9,1])),meta:{t:"Brokers",O:1}}],["/extending-taskiq/cli.html",{loader:()=>ce(()=>import("./cli.html-D5C_Fe4w.js"),__vite__mapDeps([10,1])),meta:{t:"CLI",O:4}}],["/extending-taskiq/middleware.html",{loader:()=>ce(()=>import("./middleware.html-C0_oXorf.js"),__vite__mapDeps([11,1])),meta:{t:"Middlewares",O:2}}],["/extending-taskiq/result-backend.html",{loader:()=>ce(()=>import("./result-backend.html-DUmMr-aN.js"),__vite__mapDeps([12,1])),meta:{t:"Result backend",O:3}}],["/extending-taskiq/schedule-sources.html",{loader:()=>ce(()=>import("./schedule-sources.html-NmDe5G3N.js"),__vite__mapDeps([13,1])),meta:{t:"Schedule source",O:5}}],["/framework_integrations/",{loader:()=>ce(()=>import("./index.html-DxjDQWc4.js"),__vite__mapDeps([14,1])),meta:{t:"Framework integrations",O:2}}],["/framework_integrations/faststream.html",{loader:()=>ce(()=>import("./faststream.html-Chb2k470.js"),__vite__mapDeps([15,1])),meta:{t:"Taskiq + FastStream",O:3}}],["/framework_integrations/taskiq-with-aiogram.html",{loader:()=>ce(()=>import("./taskiq-with-aiogram.html-CTg4OC-K.js"),__vite__mapDeps([16,1])),meta:{t:"Taskiq + Aiogram"}}],["/framework_integrations/taskiq-with-aiohttp.html",{loader:()=>ce(()=>import("./taskiq-with-aiohttp.html-BKUu5AbU.js"),__vite__mapDeps([17,1])),meta:{t:"Taskiq + AioHTTP",O:2}}],["/framework_integrations/taskiq-with-fastapi.html",{loader:()=>ce(()=>import("./taskiq-with-fastapi.html-Bo1avbi-.js"),__vite__mapDeps([18,1])),meta:{t:"Taskiq + FastAPI",O:1}}],["/guide/",{loader:()=>ce(()=>import("./index.html-DRuGpgM4.js"),__vite__mapDeps([19,1])),meta:{t:"Introduction",O:1}}],["/guide/architecture-overview.html",{loader:()=>ce(()=>import("./architecture-overview.html-DNa4LIBv.js"),__vite__mapDeps([20,1])),meta:{t:"Architecture overview",O:3}}],["/guide/cli.html",{loader:()=>ce(()=>import("./cli.html-u54Dq3YY.js"),__vite__mapDeps([21,1])),meta:{t:"CLI",O:4}}],["/guide/dynamic-brokers.html",{loader:()=>ce(()=>import("./dynamic-brokers.html-BLoMPtw4.js"),__vite__mapDeps([22,1])),meta:{t:"Dynamic Environments",O:9}}],["/guide/getting-started.html",{loader:()=>ce(()=>import("./getting-started.html-D1SQk_MT.js"),__vite__mapDeps([23,1])),meta:{t:"Getting started",O:2}}],["/guide/message-format.html",{loader:()=>ce(()=>import("./message-format.html-DtYcYMvv.js"),__vite__mapDeps([24,1])),meta:{t:"Taskiq message format",O:11}}],["/guide/scheduling-tasks.html",{loader:()=>ce(()=>import("./scheduling-tasks.html-DxDltdd4.js"),__vite__mapDeps([25,1])),meta:{t:"Scheduling tasks",O:8}}],["/guide/state-and-deps.html",{loader:()=>ce(()=>import("./state-and-deps.html-D334n9p0.js"),__vite__mapDeps([26,1])),meta:{t:"State and Dependencies",O:7}}],["/guide/testing-taskiq.html",{loader:()=>ce(()=>import("./testing-taskiq.html-Ckmgkcrw.js"),__vite__mapDeps([27,1])),meta:{t:"Testing with taskiq",O:10}}],["/404.html",{loader:()=>ce(()=>import("./404.html-BtSNQ6hx.js"),__vite__mapDeps([28,1])),meta:{t:""}}]]);/*! * vue-router v4.3.3 * (c) 2024 Eduardo San Martin Morote * @license MIT */const hn=typeof document<"u";function rp(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const ue=Object.assign;function bo(e,t){const n={};for(const r in t){const o=t[r];n[r]=dt(o)?o.map(e):e(o)}return n}const Un=()=>{},dt=Array.isArray,ki=/#/g,op=/&/g,sp=/\//g,lp=/=/g,ap=/\?/g,xi=/\+/g,ip=/%5B/g,cp=/%5D/g,Si=/%5E/g,up=/%60/g,Ti=/%7B/g,fp=/%7C/g,Ai=/%7D/g,dp=/%20/g;function Ls(e){return encodeURI(""+e).replace(fp,"|").replace(ip,"[").replace(cp,"]")}function pp(e){return Ls(e).replace(Ti,"{").replace(Ai,"}").replace(Si,"^")}function zo(e){return Ls(e).replace(xi,"%2B").replace(dp,"+").replace(ki,"%23").replace(op,"%26").replace(up,"`").replace(Ti,"{").replace(Ai,"}").replace(Si,"^")}function hp(e){return zo(e).replace(lp,"%3D")}function vp(e){return Ls(e).replace(ki,"%23").replace(ap,"%3F")}function gp(e){return e==null?"":vp(e).replace(sp,"%2F")}function tr(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const mp=/\/$/,bp=e=>e.replace(mp,"");function yo(e,t,n="/"){let r,o={},s="",l="";const a=t.indexOf("#");let i=t.indexOf("?");return a=0&&(i=-1),i>-1&&(r=t.slice(0,i),s=t.slice(i+1,a>-1?a:t.length),o=e(s)),a>-1&&(r=r||t.slice(0,a),l=t.slice(a,t.length)),r=Ep(r??t,n),{fullPath:r+(s&&"?")+s+l,path:r,query:o,hash:tr(l)}}function yp(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function $l(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function wp(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&Cn(t.matched[r],n.matched[o])&&Li(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Cn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Li(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!_p(e[n],t[n]))return!1;return!0}function _p(e,t){return dt(e)?Nl(e,t):dt(t)?Nl(t,e):e===t}function Nl(e,t){return dt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Ep(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let s=n.length-1,l,a;for(l=0;l1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(l).join("/")}var nr;(function(e){e.pop="pop",e.push="push"})(nr||(nr={}));var Wn;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Wn||(Wn={}));function Cp(e){if(!e)if(hn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),bp(e)}const kp=/^[^#]+#/;function xp(e,t){return e.replace(kp,"#")+t}function Sp(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Zr=()=>({left:window.scrollX,top:window.scrollY});function Tp(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=Sp(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Dl(e,t){return(history.state?history.state.position-t:-1)+e}const qo=new Map;function Ap(e,t){qo.set(e,t)}function Lp(e){const t=qo.get(e);return qo.delete(e),t}let Rp=()=>location.protocol+"//"+location.host;function Ri(e,t){const{pathname:n,search:r,hash:o}=t,s=e.indexOf("#");if(s>-1){let a=o.includes(e.slice(s))?e.slice(s).length:1,i=o.slice(a);return i[0]!=="/"&&(i="/"+i),$l(i,"")}return $l(n,e)+r+o}function Op(e,t,n,r){let o=[],s=[],l=null;const a=({state:p})=>{const v=Ri(e,location),m=n.value,E=t.value;let w=0;if(p){if(n.value=v,t.value=p,l&&l===m){l=null;return}w=E?p.position-E.position:0}else r(v);o.forEach(y=>{y(n.value,m,{delta:w,type:nr.pop,direction:w?w>0?Wn.forward:Wn.back:Wn.unknown})})};function i(){l=n.value}function c(p){o.push(p);const v=()=>{const m=o.indexOf(p);m>-1&&o.splice(m,1)};return s.push(v),v}function f(){const{history:p}=window;p.state&&p.replaceState(ue({},p.state,{scroll:Zr()}),"")}function d(){for(const p of s)p();s=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:i,listen:c,destroy:d}}function Hl(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?Zr():null}}function Pp(e){const{history:t,location:n}=window,r={value:Ri(e,n)},o={value:t.state};o.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(i,c,f){const d=e.indexOf("#"),p=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+i:Rp()+e+i;try{t[f?"replaceState":"pushState"](c,"",p),o.value=c}catch(v){console.error(v),n[f?"replace":"assign"](p)}}function l(i,c){const f=ue({},t.state,Hl(o.value.back,i,o.value.forward,!0),c,{position:o.value.position});s(i,f,!0),r.value=i}function a(i,c){const f=ue({},o.value,t.state,{forward:i,scroll:Zr()});s(f.current,f,!0);const d=ue({},Hl(r.value,i,null),{position:f.position+1},c);s(i,d,!1),r.value=i}return{location:r,state:o,push:a,replace:l}}function Ip(e){e=Cp(e);const t=Pp(e),n=Op(e,t.state,t.location,t.replace);function r(s,l=!0){l||n.pauseListeners(),history.go(s)}const o=ue({location:"",base:e,go:r,createHref:xp.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function Mp(e){return typeof e=="string"||e&&typeof e=="object"}function Oi(e){return typeof e=="string"||typeof e=="symbol"}const xt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Pi=Symbol("");var Fl;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Fl||(Fl={}));function kn(e,t){return ue(new Error,{type:e,[Pi]:!0},t)}function Ct(e,t){return e instanceof Error&&Pi in e&&(t==null||!!(e.type&t))}const Bl="[^/]+?",$p={sensitive:!1,strict:!1,start:!0,end:!0},Np=/[.+*?^${}()[\]/\\]/g;function Dp(e,t){const n=ue({},$p,t),r=[];let o=n.start?"^":"";const s=[];for(const c of e){const f=c.length?[]:[90];n.strict&&!c.length&&(o+="/");for(let d=0;dt.length?t.length===1&&t[0]===80?1:-1:0}function Ii(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const Fp={type:0,value:""},Bp=/[a-zA-Z0-9_]/;function jp(e){if(!e)return[[]];if(e==="/")return[[Fp]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(v){throw new Error(`ERR (${n})/"${c}": ${v}`)}let n=0,r=n;const o=[];let s;function l(){s&&o.push(s),s=[]}let a=0,i,c="",f="";function d(){c&&(n===0?s.push({type:0,value:c}):n===1||n===2||n===3?(s.length>1&&(i==="*"||i==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:c,regexp:f,repeatable:i==="*"||i==="+",optional:i==="*"||i==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=i}for(;a{l(C)}:Un}function l(f){if(Oi(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(l),d.alias.forEach(l))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(l),f.alias.forEach(l))}}function a(){return n}function i(f){const d=Kp(f,n);n.splice(d,0,f),f.record.name&&!zl(f)&&r.set(f.record.name,f)}function c(f,d){let p,v={},m,E;if("name"in f&&f.name){if(p=r.get(f.name),!p)throw kn(1,{location:f});E=p.record.name,v=ue(Vl(d.params,p.keys.filter(C=>!C.optional).concat(p.parent?p.parent.keys.filter(C=>C.optional):[]).map(C=>C.name)),f.params&&Vl(f.params,p.keys.map(C=>C.name))),m=p.stringify(v)}else if(f.path!=null)m=f.path,p=n.find(C=>C.re.test(m)),p&&(v=p.parse(m),E=p.record.name);else{if(p=d.name?r.get(d.name):n.find(C=>C.re.test(d.path)),!p)throw kn(1,{location:f,currentLocation:d});E=p.record.name,v=ue({},d.params,f.params),m=p.stringify(v)}const w=[];let y=p;for(;y;)w.unshift(y.record),y=y.parent;return{name:E,path:m,params:v,matched:w,meta:Wp(w)}}return e.forEach(f=>s(f)),{addRoute:s,resolve:c,removeRoute:l,getRoutes:a,getRecordMatcher:o}}function Vl(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function qp(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:Up(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function Up(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function zl(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Wp(e){return e.reduce((t,n)=>ue(t,n.meta),{})}function ql(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function Kp(e,t){let n=0,r=t.length;for(;n!==r;){const s=n+r>>1;Ii(e,t[s])<0?r=s:n=s+1}const o=Gp(e);return o&&(r=t.lastIndexOf(o,r-1)),r}function Gp(e){let t=e;for(;t=t.parent;)if(Mi(t)&&Ii(e,t)===0)return t}function Mi({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Yp(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;os&&zo(s)):[r&&zo(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Jp(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=dt(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const Qp=Symbol(""),Wl=Symbol(""),eo=Symbol(""),Rs=Symbol(""),Uo=Symbol("");function In(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Bt(e,t,n,r,o,s=l=>l()){const l=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((a,i)=>{const c=p=>{p===!1?i(kn(4,{from:n,to:t})):p instanceof Error?i(p):Mp(p)?i(kn(2,{from:t,to:p})):(l&&r.enterCallbacks[o]===l&&typeof p=="function"&&l.push(p),a())},f=s(()=>e.call(r&&r.instances[o],t,n,c));let d=Promise.resolve(f);e.length<3&&(d=d.then(c)),d.catch(p=>i(p))})}function wo(e,t,n,r,o=s=>s()){const s=[];for(const l of e)for(const a in l.components){let i=l.components[a];if(!(t!=="beforeRouteEnter"&&!l.instances[a]))if(Xp(i)){const f=(i.__vccOpts||i)[t];f&&s.push(Bt(f,n,r,l,a,o))}else{let c=i();s.push(()=>c.then(f=>{if(!f)return Promise.reject(new Error(`Couldn't resolve component "${a}" at "${l.path}"`));const d=rp(f)?f.default:f;l.components[a]=d;const v=(d.__vccOpts||d)[t];return v&&Bt(v,n,r,l,a,o)()}))}}return s}function Xp(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Kl(e){const t=ke(eo),n=ke(Rs),r=S(()=>{const i=ln(e.to);return t.resolve(i)}),o=S(()=>{const{matched:i}=r.value,{length:c}=i,f=i[c-1],d=n.matched;if(!f||!d.length)return-1;const p=d.findIndex(Cn.bind(null,f));if(p>-1)return p;const v=Gl(i[c-2]);return c>1&&Gl(f)===v&&d[d.length-1].path!==v?d.findIndex(Cn.bind(null,i[c-2])):p}),s=S(()=>o.value>-1&&nh(n.params,r.value.params)),l=S(()=>o.value>-1&&o.value===n.matched.length-1&&Li(n.params,r.value.params));function a(i={}){return th(i)?t[ln(e.replace)?"replace":"push"](ln(e.to)).catch(Un):Promise.resolve()}return{route:r,href:S(()=>r.value.href),isActive:s,isExactActive:l,navigate:a}}const Zp=G({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Kl,setup(e,{slots:t}){const n=ur(Kl(e)),{options:r}=ke(eo),o=S(()=>({[Yl(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Yl(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:u("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},s)}}}),eh=Zp;function th(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function nh(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!dt(o)||o.length!==r.length||r.some((s,l)=>s!==o[l]))return!1}return!0}function Gl(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Yl=(e,t,n)=>e??t??n,rh=G({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=ke(Uo),o=S(()=>e.route||r.value),s=ke(Wl,0),l=S(()=>{let c=ln(s);const{matched:f}=o.value;let d;for(;(d=f[c])&&!d.components;)c++;return c}),a=S(()=>o.value.matched[l.value]);an(Wl,S(()=>l.value+1)),an(Qp,a),an(Uo,o);const i=Q();return oe(()=>[i.value,a.value,e.name],([c,f,d],[p,v,m])=>{f&&(f.instances[d]=c,v&&v!==f&&c&&c===p&&(f.leaveGuards.size||(f.leaveGuards=v.leaveGuards),f.updateGuards.size||(f.updateGuards=v.updateGuards))),c&&f&&(!v||!Cn(f,v)||!p)&&(f.enterCallbacks[d]||[]).forEach(E=>E(c))},{flush:"post"}),()=>{const c=o.value,f=e.name,d=a.value,p=d&&d.components[f];if(!p)return Jl(n.default,{Component:p,route:c});const v=d.props[f],m=v?v===!0?c.params:typeof v=="function"?v(c):v:null,w=u(p,ue({},m,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(d.instances[f]=null)},ref:i}));return Jl(n.default,{Component:w,route:c})||w}}});function Jl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const oh=rh;function sh(e){const t=zp(e.routes,e),n=e.parseQuery||Yp,r=e.stringifyQuery||Ul,o=e.history,s=In(),l=In(),a=In(),i=Ne(xt);let c=xt;hn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=bo.bind(null,T=>""+T),d=bo.bind(null,gp),p=bo.bind(null,tr);function v(T,B){let H,W;return Oi(T)?(H=t.getRecordMatcher(T),W=B):W=T,t.addRoute(W,H)}function m(T){const B=t.getRecordMatcher(T);B&&t.removeRoute(B)}function E(){return t.getRoutes().map(T=>T.record)}function w(T){return!!t.getRecordMatcher(T)}function y(T,B){if(B=ue({},B||i.value),typeof T=="string"){const g=yo(n,T,B.path),_=t.resolve({path:g.path},B),L=o.createHref(g.fullPath);return ue(g,_,{params:p(_.params),hash:tr(g.hash),redirectedFrom:void 0,href:L})}let H;if(T.path!=null)H=ue({},T,{path:yo(n,T.path,B.path).path});else{const g=ue({},T.params);for(const _ in g)g[_]==null&&delete g[_];H=ue({},T,{params:d(g)}),B.params=d(B.params)}const W=t.resolve(H,B),se=T.hash||"";W.params=f(p(W.params));const de=yp(r,ue({},T,{hash:pp(se),path:W.path})),h=o.createHref(de);return ue({fullPath:de,hash:se,query:r===Ul?Jp(T.query):T.query||{}},W,{redirectedFrom:void 0,href:h})}function C(T){return typeof T=="string"?yo(n,T,i.value.path):ue({},T)}function b(T,B){if(c!==T)return kn(8,{from:B,to:T})}function x(T){return q(T)}function $(T){return x(ue(C(T),{replace:!0}))}function k(T){const B=T.matched[T.matched.length-1];if(B&&B.redirect){const{redirect:H}=B;let W=typeof H=="function"?H(T):H;return typeof W=="string"&&(W=W.includes("?")||W.includes("#")?W=C(W):{path:W},W.params={}),ue({query:T.query,hash:T.hash,params:W.path!=null?{}:T.params},W)}}function q(T,B){const H=c=y(T),W=i.value,se=T.state,de=T.force,h=T.replace===!0,g=k(H);if(g)return q(ue(C(g),{state:typeof g=="object"?ue({},se,g.state):se,force:de,replace:h}),B||H);const _=H;_.redirectedFrom=B;let L;return!de&&wp(r,W,H)&&(L=kn(16,{to:_,from:W}),Xe(W,W,!0,!1)),(L?Promise.resolve(L):O(_,W)).catch(A=>Ct(A)?Ct(A,2)?A:ht(A):U(A,_,W)).then(A=>{if(A){if(Ct(A,2))return q(ue({replace:h},C(A.to),{state:typeof A.to=="object"?ue({},se,A.to.state):se,force:de}),B||_)}else A=P(_,W,!0,h,se);return V(_,W,A),A})}function N(T,B){const H=b(T,B);return H?Promise.reject(H):Promise.resolve()}function K(T){const B=Et.values().next().value;return B&&typeof B.runWithContext=="function"?B.runWithContext(T):T()}function O(T,B){let H;const[W,se,de]=lh(T,B);H=wo(W.reverse(),"beforeRouteLeave",T,B);for(const g of W)g.leaveGuards.forEach(_=>{H.push(Bt(_,T,B))});const h=N.bind(null,T,B);return H.push(h),Ae(H).then(()=>{H=[];for(const g of s.list())H.push(Bt(g,T,B));return H.push(h),Ae(H)}).then(()=>{H=wo(se,"beforeRouteUpdate",T,B);for(const g of se)g.updateGuards.forEach(_=>{H.push(Bt(_,T,B))});return H.push(h),Ae(H)}).then(()=>{H=[];for(const g of de)if(g.beforeEnter)if(dt(g.beforeEnter))for(const _ of g.beforeEnter)H.push(Bt(_,T,B));else H.push(Bt(g.beforeEnter,T,B));return H.push(h),Ae(H)}).then(()=>(T.matched.forEach(g=>g.enterCallbacks={}),H=wo(de,"beforeRouteEnter",T,B,K),H.push(h),Ae(H))).then(()=>{H=[];for(const g of l.list())H.push(Bt(g,T,B));return H.push(h),Ae(H)}).catch(g=>Ct(g,8)?g:Promise.reject(g))}function V(T,B,H){a.list().forEach(W=>K(()=>W(T,B,H)))}function P(T,B,H,W,se){const de=b(T,B);if(de)return de;const h=B===xt,g=hn?history.state:{};H&&(W||h?o.replace(T.fullPath,ue({scroll:h&&g&&g.scroll},se)):o.push(T.fullPath,se)),i.value=T,Xe(T,B,H,h),ht()}let X;function ye(){X||(X=o.listen((T,B,H)=>{if(!vt.listening)return;const W=y(T),se=k(W);if(se){q(ue(se,{replace:!0}),W).catch(Un);return}c=W;const de=i.value;hn&&Ap(Dl(de.fullPath,H.delta),Zr()),O(W,de).catch(h=>Ct(h,12)?h:Ct(h,2)?(q(h.to,W).then(g=>{Ct(g,20)&&!H.delta&&H.type===nr.pop&&o.go(-1,!1)}).catch(Un),Promise.reject()):(H.delta&&o.go(-H.delta,!1),U(h,W,de))).then(h=>{h=h||P(W,de,!1),h&&(H.delta&&!Ct(h,8)?o.go(-H.delta,!1):H.type===nr.pop&&Ct(h,20)&&o.go(-1,!1)),V(W,de,h)}).catch(Un)}))}let ge=In(),z=In(),Z;function U(T,B,H){ht(T);const W=z.list();return W.length?W.forEach(se=>se(T,B,H)):console.error(T),Promise.reject(T)}function Te(){return Z&&i.value!==xt?Promise.resolve():new Promise((T,B)=>{ge.add([T,B])})}function ht(T){return Z||(Z=!T,ye(),ge.list().forEach(([B,H])=>T?H(T):B()),ge.reset()),T}function Xe(T,B,H,W){const{scrollBehavior:se}=e;if(!hn||!se)return Promise.resolve();const de=!H&&Lp(Dl(T.fullPath,0))||(W||!H)&&history.state&&history.state.scroll||null;return Yt().then(()=>se(T,B,de)).then(h=>h&&Tp(h)).catch(h=>U(h,T,B))}const Oe=T=>o.go(T);let We;const Et=new Set,vt={currentRoute:i,listening:!0,addRoute:v,removeRoute:m,hasRoute:w,getRoutes:E,resolve:y,options:e,push:x,replace:$,go:Oe,back:()=>Oe(-1),forward:()=>Oe(1),beforeEach:s.add,beforeResolve:l.add,afterEach:a.add,onError:z.add,isReady:Te,install(T){const B=this;T.component("RouterLink",eh),T.component("RouterView",oh),T.config.globalProperties.$router=B,Object.defineProperty(T.config.globalProperties,"$route",{enumerable:!0,get:()=>ln(i)}),hn&&!We&&i.value===xt&&(We=!0,x(o.location).catch(se=>{}));const H={};for(const se in xt)Object.defineProperty(H,se,{get:()=>i.value[se],enumerable:!0});T.provide(eo,B),T.provide(Rs,Ra(H)),T.provide(Uo,i);const W=T.unmount;Et.add(T),T.unmount=function(){Et.delete(T),Et.size<1&&(c=xt,X&&X(),X=null,i.value=xt,We=!1,Z=!1),W()}}};function Ae(T){return T.reduce((B,H)=>B.then(()=>K(H)),Promise.resolve())}return vt}function lh(e,t){const n=[],r=[],o=[],s=Math.max(t.matched.length,e.matched.length);for(let l=0;lCn(c,a))?r.push(a):n.push(a));const i=e.matched[l];i&&(t.matched.find(c=>Cn(c,i))||o.push(i))}return[n,r,o]}function An(){return ke(eo)}function Rt(){return ke(Rs)}var Os=Symbol(""),_t=()=>{const e=ke(Os);if(!e)throw new Error("useClientData() is called without provider.");return e},ah=()=>_t().pageComponent,Se=()=>_t().pageData,Le=()=>_t().pageFrontmatter,ih=()=>_t().pageHead,$i=()=>_t().pageLang,ch=()=>_t().pageLayout,un=()=>_t().routeLocale,uh=()=>_t().routes,Ni=()=>_t().siteData,to=()=>_t().siteLocaleData,fh=Symbol(""),Wo=Ne(tp),rr=Ne(np),Di=e=>{const t=Jd(e);if(rr.value[t])return t;const n=encodeURI(t);return rr.value[n]?n:Wo.value[t]||Wo.value[n]||t},Wt=e=>{const t=Di(e),n=rr.value[t]??{...rr.value["/404.html"],notFound:!0};return{path:t,notFound:!1,...n}},no=G({name:"ClientOnly",setup(e,t){const n=Q(!1);return _e(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),Hi=G({name:"Content",props:{path:{type:String,required:!1,default:""}},setup(e){const t=ah(),n=S(()=>{if(!e.path)return t.value;const r=Wt(e.path);return Ka(()=>r.loader().then(({comp:o})=>o))});return()=>u(n.value)}}),lt=(e={})=>e,Ve=e=>cn(e)?e:`/${Ci(e)}`,dh=e=>{if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget){const t=e.currentTarget.getAttribute("target");if(t!=null&&t.match(/\b_blank\b/i))return}return e.preventDefault(),!0}},Qe=({active:e=!1,activeClass:t="route-link-active",to:n,...r},{slots:o})=>{var i;const s=An(),l=Di(n),a=l.startsWith("#")||l.startsWith("?")?l:Ve(l);return u("a",{...r,class:["route-link",{[t]:e}],href:a,onClick:(c={})=>{dh(c)?s.push(n).catch():Promise.resolve()}},(i=o.default)==null?void 0:i.call(o))};Qe.displayName="RouteLink";Qe.props={active:Boolean,activeClass:String,to:String};var ph="Layout",hh="en-US",en=ur({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageHead:(e,t,n)=>{const r=Ee(t.description)?t.description:n.description,o=[...Array.isArray(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return Kd(o)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||hh,resolvePageLayout:(e,t)=>{const n=Ee(e.frontmatter.layout)?e.frontmatter.layout:ph;if(!t[n])throw new Error(`[vuepress] Cannot resolve layout: ${n}`);return t[n]},resolveRouteLocale:(e,t)=>Qd(e,t),resolveSiteLocaleData:(e,t)=>{var n;return{...e,...e.locales[t],head:[...((n=e.locales[t])==null?void 0:n.head)??[],...e.head??[]]}}});const vh={},Jt=e=>{const t=un();return S(()=>e[t.value]??{})};var Je=Uint8Array,gn=Uint16Array,gh=Int32Array,Fi=new Je([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Bi=new Je([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),mh=new Je([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ji=function(e,t){for(var n=new gn(31),r=0;r<31;++r)n[r]=t+=1<>1|(he&21845)<<1;Mt=(Mt&52428)>>2|(Mt&13107)<<2,Mt=(Mt&61680)>>4|(Mt&3855)<<4,Ko[he]=((Mt&65280)>>8|(Mt&255)<<8)>>1}var Kn=function(e,t,n){for(var r=e.length,o=0,s=new gn(t);o>i]=c}else for(a=new gn(r),o=0;o>15-e[o]);return a},gr=new Je(288);for(var he=0;he<144;++he)gr[he]=8;for(var he=144;he<256;++he)gr[he]=9;for(var he=256;he<280;++he)gr[he]=7;for(var he=280;he<288;++he)gr[he]=8;var qi=new Je(32);for(var he=0;he<32;++he)qi[he]=5;var _h=Kn(gr,9,1),Eh=Kn(qi,5,1),_o=function(e){for(var t=e[0],n=1;nt&&(t=e[n]);return t},it=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},Eo=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},Ch=function(e){return(e+7)/8|0},Ui=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new Je(e.subarray(t,n))},kh=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],tt=function(e,t,n){var r=new Error(t||kh[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,tt),!n)throw r;return r},xh=function(e,t,n,r){var o=e.length,s=0;if(!o||t.f&&!t.l)return n||new Je(0);var l=!n,a=l||t.i!=2,i=t.i;l&&(n=new Je(o*3));var c=function(se){var de=n.length;if(se>de){var h=new Je(Math.max(de*2,se));h.set(n),n=h}},f=t.f||0,d=t.p||0,p=t.b||0,v=t.l,m=t.d,E=t.m,w=t.n,y=o*8;do{if(!v){f=it(e,d,1);var C=it(e,d+1,3);if(d+=3,C)if(C==1)v=_h,m=Eh,E=9,w=5;else if(C==2){var k=it(e,d,31)+257,q=it(e,d+10,15)+4,N=k+it(e,d+5,31)+1;d+=14;for(var K=new Je(N),O=new Je(19),V=0;V>4;if(b<16)K[V++]=b;else{var z=0,Z=0;for(b==16?(Z=3+it(e,d,3),d+=2,z=K[V-1]):b==17?(Z=3+it(e,d,7),d+=3):b==18&&(Z=11+it(e,d,127),d+=7);Z--;)K[V++]=z}}var U=K.subarray(0,k),Te=K.subarray(k);E=_o(U),w=_o(Te),v=Kn(U,E,1),m=Kn(Te,w,1)}else tt(1);else{var b=Ch(d)+4,x=e[b-4]|e[b-3]<<8,$=b+x;if($>o){i&&tt(0);break}a&&c(p+x),n.set(e.subarray(b,$),p),t.b=p+=x,t.p=d=$*8,t.f=f;continue}if(d>y){i&&tt(0);break}}a&&c(p+131072);for(var ht=(1<>4;if(d+=z&15,d>y){i&&tt(0);break}if(z||tt(2),We<256)n[p++]=We;else if(We==256){Oe=d,v=null;break}else{var Et=We-254;if(We>264){var V=We-257,vt=Fi[V];Et=it(e,d,(1<>4;Ae||tt(3),d+=Ae&15;var Te=wh[T];if(T>3){var vt=Bi[T];Te+=Eo(e,d)&(1<y){i&&tt(0);break}a&&c(p+131072);var B=p+Et;if(p>4>7||(e[0]<<8|e[1])%31)&&tt(6,"invalid zlib data"),(e[1]>>5&1)==+!t&&tt(6,"invalid zlib data: "+(e[1]&32?"need":"unexpected")+" dictionary"),(e[1]>>3&4)+2};function Ah(e,t){return xh(e.subarray(Th(e,t),-4),{i:2},t,t)}var Go=typeof TextDecoder<"u"&&new TextDecoder,Lh=0;try{Go.decode(Sh,{stream:!0}),Lh=1}catch{}var Rh=function(e){for(var t="",n=0;;){var r=e[n++],o=(r>127)+(r>223)+(r>239);if(n+o>e.length)return{s:t,r:Ui(e,n-1)};o?o==3?(r=((r&15)<<18|(e[n++]&63)<<12|(e[n++]&63)<<6|e[n++]&63)-65536,t+=String.fromCharCode(55296|r>>10,56320|r&1023)):o&1?t+=String.fromCharCode((r&31)<<6|e[n++]&63):t+=String.fromCharCode((r&15)<<12|(e[n++]&63)<<6|e[n++]&63):t+=String.fromCharCode(r)}};function Oh(e,t){{for(var n=new Je(e.length),r=0;r{const t=atob(e);return Ph(Ah(Oh(t)))},Tt=(e,t)=>{var r;const n=(r=(t==null?void 0:t._instance)||Tn())==null?void 0:r.appContext.components;return n?e in n||st(e)in n||cr(st(e))in n:!1},Ih=e=>typeof e<"u",Co=e=>typeof e=="number",Yo=Array.isArray,or=(e,t)=>Ee(e)&&e.startsWith(t),Mh=(e,t)=>Ee(e)&&e.endsWith(t),$h=Object.entries,ro=Object.keys,Nh=Object.values,Dh=e=>{if(e){if(typeof e=="number")return new Date(e);const t=Date.parse(e.toString());if(!Number.isNaN(t))return new Date(t)}return null},oo=e=>or(e,"/"),Hh="http://.",Fh=(e,t)=>{if(oo(e)||typeof t!="string")return Wt(e);const n=t.slice(0,t.lastIndexOf("/"));return Wt(new URL(`${n}/${encodeURI(e)}`,Hh).pathname)},Wi=e=>new Promise(t=>setTimeout(t,e)),Ki=({type:e="info",text:t="",vertical:n,color:r},{slots:o})=>{var s;return u("span",{class:["vp-badge",e,{diy:r}],style:{verticalAlign:n??!1,backgroundColor:r??!1}},((s=o.default)==null?void 0:s.call(o))||t)};Ki.displayName="Badge";var Bh=G({name:"FontIcon",props:{icon:{type:String,default:""},color:{type:String,default:""},size:{type:[String,Number],default:""}},setup(e){const t=S(()=>{const r=["font-icon icon"],o=`${e.icon}`;return r.push(o),r}),n=S(()=>{const r={};return e.color&&(r.color=e.color),e.size&&(r["font-size"]=Number.isNaN(Number(e.size))?e.size:`${e.size}px`),ro(r).length?r:null});return()=>e.icon?u("span",{key:e.icon,class:t.value,style:n.value}):null}});const jh=lt({enhance:({app:e})=>{Tt("Badge")||e.component("Badge",Ki),Tt("FontIcon")||e.component("FontIcon",Bh)},setup:()=>{},rootComponents:[]});function Gi(e,t){let n,r,o;const s=Q(!0),l=()=>{s.value=!0,o()};oe(e,l,{flush:"sync"});const a=typeof t=="function"?t:t.get,i=typeof t=="function"?void 0:t.set,c=ys((f,d)=>(r=f,o=d,{get(){return s.value&&(n=a(),s.value=!1),r(),n},set(p){i==null||i(p)}}));return Object.isExtensible(c)&&(c.trigger=l),c}function fn(e){return ba()?(ku(e),!0):!1}function Fe(e){return typeof e=="function"?e():ln(e)}const mr=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Vh=e=>e!=null,zh=Object.prototype.toString,qh=e=>zh.call(e)==="[object Object]",At=()=>{},Jo=Uh();function Uh(){var e,t;return mr&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Ps(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const Yi=e=>e();function Wh(e,t={}){let n,r,o=At;const s=a=>{clearTimeout(a),o(),o=At};return a=>{const i=Fe(e),c=Fe(t.maxWait);return n&&s(n),i<=0||c!==void 0&&c<=0?(r&&(s(r),r=null),Promise.resolve(a())):new Promise((f,d)=>{o=t.rejectOnCancel?d:f,c&&!r&&(r=setTimeout(()=>{n&&s(n),r=null,f(a())},c)),n=setTimeout(()=>{r&&s(r),r=null,f(a())},i)})}}function Kh(...e){let t=0,n,r=!0,o=At,s,l,a,i,c;!$e(e[0])&&typeof e[0]=="object"?{delay:l,trailing:a=!0,leading:i=!0,rejectOnCancel:c=!1}=e[0]:[l,a=!0,i=!0,c=!1]=e;const f=()=>{n&&(clearTimeout(n),n=void 0,o(),o=At)};return p=>{const v=Fe(l),m=Date.now()-t,E=()=>s=p();return f(),v<=0?(t=Date.now(),E()):(m>v&&(i||!r)?(t=Date.now(),E()):a&&(s=new Promise((w,y)=>{o=c?y:w,n=setTimeout(()=>{t=Date.now(),r=!0,w(E()),f()},Math.max(0,v-m))})),!i&&!n&&(n=setTimeout(()=>r=!0,v)),r=!1,s)}}function Gh(e=Yi){const t=Q(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...s)=>{t.value&&e(...s)};return{isActive:fr(t),pause:n,resume:r,eventFilter:o}}function Yh(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const r=t;t=void 0,r&&await r},n}function Jh(e){return Tn()}function Qh(...e){if(e.length!==1)return Kr(...e);const t=e[0];return typeof t=="function"?fr(ys(()=>({get:t,set:At}))):Q(t)}function Ji(e,t=200,n={}){return Ps(Wh(t,n),e)}function Xh(e,t=200,n=!1,r=!0,o=!1){return Ps(Kh(t,n,r,o),e)}function Zh(e,t,n={}){const{eventFilter:r=Yi,...o}=n;return oe(e,Ps(r,t),o)}function e1(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:s,pause:l,resume:a,isActive:i}=Gh(r);return{stop:Zh(e,t,{...o,eventFilter:s}),pause:l,resume:a,isActive:i}}function Is(e,t=!0,n){Jh()?_e(e,n):t?e():Yt(e)}function t1(e,t,n={}){const{immediate:r=!0}=n,o=Q(!1);let s=null;function l(){s&&(clearTimeout(s),s=null)}function a(){o.value=!1,l()}function i(...c){l(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...c)},Fe(t))}return r&&(o.value=!0,mr&&i()),fn(a),{isPending:fr(o),start:i,stop:a}}function Qo(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=$e(e),s=Q(e);function l(a){if(arguments.length)return s.value=a,s.value;{const i=Fe(n);return s.value=s.value===i?Fe(r):i,s.value}}return o?l:[s,l]}function ze(e){var t;const n=Fe(e);return(t=n==null?void 0:n.$el)!=null?t:n}const pt=mr?window:void 0,n1=mr?window.document:void 0,Qi=mr?window.navigator:void 0;function Ce(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=pt):[t,n,r,o]=e,!t)return At;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],l=()=>{s.forEach(f=>f()),s.length=0},a=(f,d,p,v)=>(f.addEventListener(d,p,v),()=>f.removeEventListener(d,p,v)),i=oe(()=>[ze(t),Fe(o)],([f,d])=>{if(l(),!f)return;const p=qh(d)?{...d}:d;s.push(...n.flatMap(v=>r.map(m=>a(f,v,m,p))))},{immediate:!0,flush:"post"}),c=()=>{i(),l()};return fn(c),c}let Xl=!1;function r1(e,t,n={}){const{window:r=pt,ignore:o=[],capture:s=!0,detectIframe:l=!1}=n;if(!r)return At;Jo&&!Xl&&(Xl=!0,Array.from(r.document.body.children).forEach(p=>p.addEventListener("click",At)),r.document.documentElement.addEventListener("click",At));let a=!0;const i=p=>o.some(v=>{if(typeof v=="string")return Array.from(r.document.querySelectorAll(v)).some(m=>m===p.target||p.composedPath().includes(m));{const m=ze(v);return m&&(p.target===m||p.composedPath().includes(m))}}),f=[Ce(r,"click",p=>{const v=ze(e);if(!(!v||v===p.target||p.composedPath().includes(v))){if(p.detail===0&&(a=!i(p)),!a){a=!0;return}t(p)}},{passive:!0,capture:s}),Ce(r,"pointerdown",p=>{const v=ze(e);a=!i(p)&&!!(v&&!p.composedPath().includes(v))},{passive:!0}),l&&Ce(r,"blur",p=>{setTimeout(()=>{var v;const m=ze(e);((v=r.document.activeElement)==null?void 0:v.tagName)==="IFRAME"&&!(m!=null&&m.contains(r.document.activeElement))&&t(p)},0)})].filter(Boolean);return()=>f.forEach(p=>p())}function o1(){const e=Q(!1),t=Tn();return t&&_e(()=>{e.value=!0},t),e}function Ln(e){const t=o1();return S(()=>(t.value,!!e()))}function Xi(e,t,n={}){const{window:r=pt,...o}=n;let s;const l=Ln(()=>r&&"MutationObserver"in r),a=()=>{s&&(s.disconnect(),s=void 0)},i=S(()=>{const p=Fe(e),v=(Array.isArray(p)?p:[p]).map(ze).filter(Vh);return new Set(v)}),c=oe(()=>i.value,p=>{a(),l.value&&p.size&&(s=new MutationObserver(t),p.forEach(v=>s.observe(v,o)))},{immediate:!0,flush:"post"}),f=()=>s==null?void 0:s.takeRecords(),d=()=>{a(),c()};return fn(d),{isSupported:l,stop:d,takeRecords:f}}function Zi(e,t={}){const{window:n=pt}=t,r=Ln(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const s=Q(!1),l=c=>{s.value=c.matches},a=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",l):o.removeListener(l))},i=Va(()=>{r.value&&(a(),o=n.matchMedia(Fe(e)),"addEventListener"in o?o.addEventListener("change",l):o.addListener(l),s.value=o.matches)});return fn(()=>{i(),a(),o=void 0}),s}function Zl(e,t={}){const{controls:n=!1,navigator:r=Qi}=t,o=Ln(()=>r&&"permissions"in r);let s;const l=typeof e=="string"?{name:e}:e,a=Q(),i=()=>{s&&(a.value=s.state)},c=Yh(async()=>{if(o.value){if(!s)try{s=await r.permissions.query(l),Ce(s,"change",i),i()}catch{a.value="prompt"}return s}});return c(),n?{state:a,isSupported:o,query:c}:a}function s1(e={}){const{navigator:t=Qi,read:n=!1,source:r,copiedDuring:o=1500,legacy:s=!1}=e,l=Ln(()=>t&&"clipboard"in t),a=Zl("clipboard-read"),i=Zl("clipboard-write"),c=S(()=>l.value||s),f=Q(""),d=Q(!1),p=t1(()=>d.value=!1,o);function v(){l.value&&y(a.value)?t.clipboard.readText().then(C=>{f.value=C}):f.value=w()}c.value&&n&&Ce(["copy","cut"],v);async function m(C=Fe(r)){c.value&&C!=null&&(l.value&&y(i.value)?await t.clipboard.writeText(C):E(C),f.value=C,d.value=!0,p.start())}function E(C){const b=document.createElement("textarea");b.value=C??"",b.style.position="absolute",b.style.opacity="0",document.body.appendChild(b),b.select(),document.execCommand("copy"),b.remove()}function w(){var C,b,x;return(x=(b=(C=document==null?void 0:document.getSelection)==null?void 0:C.call(document))==null?void 0:b.toString())!=null?x:""}function y(C){return C==="granted"||C==="prompt"}return{isSupported:c,text:f,copied:d,copy:m}}const Lr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Rr="__vueuse_ssr_handlers__",l1=a1();function a1(){return Rr in Lr||(Lr[Rr]=Lr[Rr]||{}),Lr[Rr]}function i1(e,t){return l1[e]||t}function c1(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const u1={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},ea="vueuse-storage";function Ms(e,t,n,r={}){var o;const{flush:s="pre",deep:l=!0,listenToStorageChanges:a=!0,writeDefaults:i=!0,mergeDefaults:c=!1,shallow:f,window:d=pt,eventFilter:p,onError:v=O=>{console.error(O)},initOnMounted:m}=r,E=(f?Ne:Q)(typeof t=="function"?t():t);if(!n)try{n=i1("getDefaultStorage",()=>{var O;return(O=pt)==null?void 0:O.localStorage})()}catch(O){v(O)}if(!n)return E;const w=Fe(t),y=c1(w),C=(o=r.serializer)!=null?o:u1[y],{pause:b,resume:x}=e1(E,()=>k(E.value),{flush:s,deep:l,eventFilter:p});d&&a&&Is(()=>{Ce(d,"storage",N),Ce(d,ea,K),m&&N()}),m||N();function $(O,V){d&&d.dispatchEvent(new CustomEvent(ea,{detail:{key:e,oldValue:O,newValue:V,storageArea:n}}))}function k(O){try{const V=n.getItem(e);if(O==null)$(V,null),n.removeItem(e);else{const P=C.write(O);V!==P&&(n.setItem(e,P),$(V,P))}}catch(V){v(V)}}function q(O){const V=O?O.newValue:n.getItem(e);if(V==null)return i&&w!=null&&n.setItem(e,C.write(w)),w;if(!O&&c){const P=C.read(V);return typeof c=="function"?c(P,w):y==="object"&&!Array.isArray(P)?{...w,...P}:P}else return typeof V!="string"?V:C.read(V)}function N(O){if(!(O&&O.storageArea!==n)){if(O&&O.key==null){E.value=w;return}if(!(O&&O.key!==e)){b();try{(O==null?void 0:O.newValue)!==C.write(E.value)&&(E.value=q(O))}catch(V){v(V)}finally{O?Yt(x):x()}}}}function K(O){N(O.detail)}return E}function f1(e){return Zi("(prefers-color-scheme: dark)",e)}function d1(e,t,n={}){const{window:r=pt,...o}=n;let s;const l=Ln(()=>r&&"ResizeObserver"in r),a=()=>{s&&(s.disconnect(),s=void 0)},i=S(()=>Array.isArray(e)?e.map(d=>ze(d)):[ze(e)]),c=oe(i,d=>{if(a(),l.value&&r){s=new ResizeObserver(t);for(const p of d)p&&s.observe(p,o)}},{immediate:!0,flush:"post"}),f=()=>{a(),c()};return fn(f),{isSupported:l,stop:f}}function p1(e,t={width:0,height:0},n={}){const{window:r=pt,box:o="content-box"}=n,s=S(()=>{var d,p;return(p=(d=ze(e))==null?void 0:d.namespaceURI)==null?void 0:p.includes("svg")}),l=Q(t.width),a=Q(t.height),{stop:i}=d1(e,([d])=>{const p=o==="border-box"?d.borderBoxSize:o==="content-box"?d.contentBoxSize:d.devicePixelContentBoxSize;if(r&&s.value){const v=ze(e);if(v){const m=v.getBoundingClientRect();l.value=m.width,a.value=m.height}}else if(p){const v=Array.isArray(p)?p:[p];l.value=v.reduce((m,{inlineSize:E})=>m+E,0),a.value=v.reduce((m,{blockSize:E})=>m+E,0)}else l.value=d.contentRect.width,a.value=d.contentRect.height},n);Is(()=>{const d=ze(e);d&&(l.value="offsetWidth"in d?d.offsetWidth:t.width,a.value="offsetHeight"in d?d.offsetHeight:t.height)});const c=oe(()=>ze(e),d=>{l.value=d?t.width:0,a.value=d?t.height:0});function f(){i(),c()}return{width:l,height:a,stop:f}}const ta=["fullscreenchange","webkitfullscreenchange","webkitendfullscreen","mozfullscreenchange","MSFullscreenChange"];function $s(e,t={}){const{document:n=n1,autoExit:r=!1}=t,o=S(()=>{var y;return(y=ze(e))!=null?y:n==null?void 0:n.querySelector("html")}),s=Q(!1),l=S(()=>["requestFullscreen","webkitRequestFullscreen","webkitEnterFullscreen","webkitEnterFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"].find(y=>n&&y in n||o.value&&y in o.value)),a=S(()=>["exitFullscreen","webkitExitFullscreen","webkitExitFullScreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"].find(y=>n&&y in n||o.value&&y in o.value)),i=S(()=>["fullScreen","webkitIsFullScreen","webkitDisplayingFullscreen","mozFullScreen","msFullscreenElement"].find(y=>n&&y in n||o.value&&y in o.value)),c=["fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement"].find(y=>n&&y in n),f=Ln(()=>o.value&&n&&l.value!==void 0&&a.value!==void 0&&i.value!==void 0),d=()=>c?(n==null?void 0:n[c])===o.value:!1,p=()=>{if(i.value){if(n&&n[i.value]!=null)return n[i.value];{const y=o.value;if((y==null?void 0:y[i.value])!=null)return!!y[i.value]}}return!1};async function v(){if(!(!f.value||!s.value)){if(a.value)if((n==null?void 0:n[a.value])!=null)await n[a.value]();else{const y=o.value;(y==null?void 0:y[a.value])!=null&&await y[a.value]()}s.value=!1}}async function m(){if(!f.value||s.value)return;p()&&await v();const y=o.value;l.value&&(y==null?void 0:y[l.value])!=null&&(await y[l.value](),s.value=!0)}async function E(){await(s.value?v():m())}const w=()=>{const y=p();(!y||y&&d())&&(s.value=y)};return Ce(n,ta,w,!1),Ce(()=>ze(o),ta,w,!1),r&&fn(v),{isSupported:f,isFullscreen:s,enter:m,exit:v,toggle:E}}function ko(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Pg(e,t,n={}){const{window:r=pt}=n;return Ms(e,t,r==null?void 0:r.localStorage,n)}function ec(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const xo=new WeakMap;function Ns(e,t=!1){const n=Q(t);let r=null,o="";oe(Qh(e),a=>{const i=ko(Fe(a));if(i){const c=i;if(xo.get(c)||xo.set(c,c.style.overflow),c.style.overflow!=="hidden"&&(o=c.style.overflow),c.style.overflow==="hidden")return n.value=!0;if(n.value)return c.style.overflow="hidden"}},{immediate:!0});const s=()=>{const a=ko(Fe(e));!a||n.value||(Jo&&(r=Ce(a,"touchmove",i=>{h1(i)},{passive:!1})),a.style.overflow="hidden",n.value=!0)},l=()=>{const a=ko(Fe(e));!a||!n.value||(Jo&&(r==null||r()),a.style.overflow=o,xo.delete(a),n.value=!1)};return fn(l),S({get(){return n.value},set(a){a?s():l()}})}function v1(e={}){const{window:t=pt,behavior:n="auto"}=e;if(!t)return{x:Q(0),y:Q(0)};const r=Q(t.scrollX),o=Q(t.scrollY),s=S({get(){return r.value},set(a){scrollTo({left:a,behavior:n})}}),l=S({get(){return o.value},set(a){scrollTo({top:a,behavior:n})}});return Ce(t,"scroll",()=>{r.value=t.scrollX,o.value=t.scrollY},{capture:!1,passive:!0}),{x:s,y:l}}function g1(e={}){const{window:t=pt,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:o=!0,includeScrollbar:s=!0}=e,l=Q(n),a=Q(r),i=()=>{t&&(s?(l.value=t.innerWidth,a.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,a.value=t.document.documentElement.clientHeight))};if(i(),Is(i),Ce("resize",i,{passive:!0}),o){const c=Zi("(orientation: portrait)");oe(c,()=>i())}return{width:l,height:a}}const na=async(e,t)=>{const{path:n,query:r}=e.currentRoute.value,{scrollBehavior:o}=e.options;e.options.scrollBehavior=void 0,await e.replace({path:n,query:r,hash:t}),e.options.scrollBehavior=o},m1=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:r=5})=>{const o=An();Ce("scroll",Ji(()=>{var m,E;const l=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(l-0)d.some(y=>y.hash===w.hash));for(let w=0;w=(((m=y.parentElement)==null?void 0:m.offsetTop)??0)-r,x=!C||l<(((E=C.parentElement)==null?void 0:E.offsetTop)??0)-r;if(!(b&&x))continue;const k=decodeURIComponent(o.currentRoute.value.hash),q=decodeURIComponent(y.hash);if(k===q)return;if(f){for(let N=w+1;NEe(e.title)?{title:e.title}:null;const nc=Symbol(""),C1=e=>{tc=e},k1=()=>ke(nc),x1=e=>{e.provide(nc,tc)};var S1={"/":{title:"Catalog",empty:"No catalog"}};const T1=G({name:"Catalog",props:{base:{type:String,default:""},level:{type:Number,default:3},index:Boolean,hideHeading:Boolean},setup(e){const t=k1(),n=Jt(S1),r=Se(),o=uh(),s=Ni(),a=Ne($h(o.value).map(([c,{meta:f}])=>{const d=t(f);if(!d)return null;const p=c.split("/").length;return{level:Mh(c,"/")?p-2:p-1,base:c.replace(/\/[^/]+\/?$/,"/"),path:c,...d}}).filter(c=>Xr(c)&&Ee(c.title))),i=S(()=>{const c=e.base?Gd(Ei(e.base)):r.value.path.replace(/\/[^/]+$/,"/"),f=c.split("/").length-2,d=[];return a.value.filter(({level:p,path:v})=>{if(!or(v,c)||v===c)return!1;if(c==="/"){const m=ro(s.value.locales).filter(E=>E!=="/");if(v==="/404.html"||m.some(E=>or(v,E)))return!1}return p-f<=e.level}).sort(({title:p,level:v,order:m},{title:E,level:w,order:y})=>{const C=v-w;return C||(Co(m)?Co(y)?m>0?y>0?m-y:-1:y<0?m-y:1:m:Co(y)?y:p.localeCompare(E))}).forEach(p=>{var E;const{base:v,level:m}=p;switch(m-f){case 1:{d.push(p);break}case 2:{const w=d.find(y=>y.path===v);w&&(w.children??(w.children=[])).push(p);break}default:{const w=d.find(y=>y.path===v.replace(/\/[^/]+\/$/,"/"));if(w){const y=(E=w.children)==null?void 0:E.find(C=>C.path===v);y&&(y.children??(y.children=[])).push(p)}}}}),d});return()=>{const c=i.value.some(f=>f.children);return u("div",{class:["vp-catalog-wrapper",{index:e.index}]},[e.hideHeading?null:u("h2",{class:"vp-catalog-main-title"},n.value.title),i.value.length?u(e.index?"ol":"ul",{class:["vp-catalogs",{deep:c}]},i.value.map(({children:f=[],title:d,path:p,content:v})=>{const m=u(Qe,{class:"vp-catalog-title",to:p},()=>v?u(v):d);return u("li",{class:"vp-catalog"},c?[u("h3",{id:d,class:["vp-catalog-child-title",{"has-children":f.length}]},[u("a",{href:`#${d}`,class:"vp-catalog-header-anchor","aria-hidden":!0},"#"),m]),f.length?u(e.index?"ol":"ul",{class:"vp-child-catalogs"},f.map(({children:E=[],content:w,path:y,title:C})=>u("li",{class:"vp-child-catalog"},[u("div",{class:["vp-catalog-sub-title",{"has-children":E.length}]},[u("a",{href:`#${C}`,class:"vp-catalog-header-anchor"},"#"),u(Qe,{class:"vp-catalog-title",to:y},()=>w?u(w):C)]),E.length?u(e.index?"ol":"div",{class:e.index?"vp-sub-catalogs":"vp-sub-catalogs-wrapper"},E.map(({content:b,path:x,title:$})=>e.index?u("li",{class:"vp-sub-catalog"},u(Qe,{to:x},()=>b?u(b):$)):u(Qe,{class:"vp-sub-catalog-link",to:x},()=>b?u(b):$))):null]))):null]:u("div",{class:"vp-catalog-child-title"},m))})):u("p",{class:"vp-empty-catalog"},n.value.empty)])}}}),A1=lt({enhance:({app:e})=>{x1(e),Tt("Catalog",e)||e.component("Catalog",T1)}});var L1={"/":{backToTop:"Back to top"}};const R1=G({name:"BackToTop",setup(){const e=Le(),t=Jt(L1),n=Ne(),{height:r}=p1(n),{height:o}=g1(),{y:s}=v1(),l=S(()=>e.value.backToTop!==!1&&s.value>100),a=S(()=>s.value/(r.value-o.value)*100);return _e(()=>{n.value=document.body}),()=>u(Ut,{name:"back-to-top"},()=>l.value?u("button",{type:"button",class:"vp-back-to-top-button","aria-label":t.value.backToTop,onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[u("span",{class:"vp-scroll-progress",role:"progressbar","aria-labelledby":"loadinglabel","aria-valuenow":a.value},u("svg",u("circle",{cx:"26",cy:"26",r:"24",fill:"none",stroke:"currentColor","stroke-width":"4","stroke-dasharray":`${Math.PI*a.value*.48} ${Math.PI*(100-a.value)*.48}`}))),u("div",{class:"back-to-top-icon"})]):null)}}),O1=lt({rootComponents:[R1]}),P1=u("svg",{class:"external-link-icon",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"},[u("path",{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}),u("polygon",{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"})]),rc=G({name:"ExternalLinkIcon",props:{locales:{type:Object,default:()=>({})}},setup(e){const t=un(),n=S(()=>e.locales[t.value]??{openInNewWindow:"open in new window"});return()=>u("span",[P1,u("span",{class:"external-link-icon-sr-only"},n.value.openInNewWindow)])}});var I1={};const M1=I1,$1=lt({enhance({app:e}){e.component("ExternalLinkIcon",u(rc,{locales:M1}))}});/** * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress * @license MIT - */const le={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},status:null,set:e=>{const t=le.isStarted();e=So(e,le.settings.minimum,1),le.status=e===1?null:e;const n=le.render(!t),r=n.querySelector(le.settings.barSelector),o=le.settings.speed,s=le.settings.easing;return n.offsetWidth,N1(l=>{Or(r,{transform:"translate3d("+ra(e)+"%,0,0)",transition:"all "+o+"ms "+s}),e===1?(Or(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(function(){Or(n,{transition:"all "+o+"ms linear",opacity:"0"}),setTimeout(function(){le.remove(),l()},o)},o)):setTimeout(()=>l(),o)}),le},isStarted:()=>typeof le.status=="number",start:()=>{le.status||le.set(0);const e=()=>{setTimeout(()=>{le.status&&(le.trickle(),e())},le.settings.trickleSpeed)};return le.settings.trickle&&e(),le},done:e=>!e&&!le.status?le:le.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=le.status;return t?(typeof e!="number"&&(e=(1-t)*So(Math.random()*t,.1,.95)),t=So(t+e,0,.994),le.set(t)):le.start()},trickle:()=>le.inc(Math.random()*le.settings.trickleRate),render:e=>{if(le.isRendered())return document.getElementById("nprogress");oa(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=le.settings.template;const n=t.querySelector(le.settings.barSelector),r=e?"-100":ra(le.status||0),o=document.querySelector(le.settings.parent);return Or(n,{transition:"all 0 linear",transform:"translate3d("+r+"%,0,0)"}),o!==document.body&&oa(o,"nprogress-custom-parent"),o==null||o.appendChild(t),t},remove:()=>{sa(document.documentElement,"nprogress-busy"),sa(document.querySelector(le.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&D1(e)},isRendered:()=>!!document.getElementById("nprogress")},So=(e,t,n)=>en?n:e,ra=e=>(-1+e)*100,N1=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),Or=function(){const e=["Webkit","O","Moz","ms"],t={};function n(l){return l.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(a,i){return i.toUpperCase()})}function r(l){const a=document.body.style;if(l in a)return l;let i=e.length;const c=l.charAt(0).toUpperCase()+l.slice(1);let f;for(;i--;)if(f=e[i]+c,f in a)return f;return l}function o(l){return l=n(l),t[l]??(t[l]=r(l))}function s(l,a,i){a=o(a),l.style[a]=i}return function(l,a){for(const i in a){const c=a[i];c!==void 0&&Object.prototype.hasOwnProperty.call(a,i)&&s(l,i,c)}}}(),oc=(e,t)=>(typeof e=="string"?e:Ds(e)).indexOf(" "+t+" ")>=0,oa=(e,t)=>{const n=Ds(e),r=n+t;oc(n,t)||(e.className=r.substring(1))},sa=(e,t)=>{const n=Ds(e);if(!oc(e,t))return;const r=n.replace(" "+t+" "," ");e.className=r.substring(1,r.length-1)},Ds=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),D1=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)},H1=()=>{_e(()=>{const e=An(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||le.start()}),e.afterEach(n=>{t.add(n.path),le.done()})})},F1=lt({setup(){H1()}}),B1=JSON.parse(`{"encrypt":{},"logo":"/logo.svg","repo":"taskiq-python/taskiq","docsBranch":"master","docsDir":"docs","navbarAutoHide":"none","pure":true,"locales":{"/":{"lang":"en-US","navbarLocales":{"langName":"English","selectLangAriaLabel":"Select language"},"metaLocales":{"author":"Author","date":"Writing Date","origin":"Original","views":"Page views","category":"Category","tag":"Tag","readingTime":"Reading Time","words":"Words","toc":"On This Page","prev":"Prev","next":"Next","lastUpdated":"Last update","contributors":"Contributors","editLink":"Edit this page","print":"Print"},"outlookLocales":{"themeColor":"Theme Color","darkmode":"Theme Mode","fullscreen":"Full Screen"},"routeLocales":{"skipToContent":"Skip to main content","notFoundTitle":"Page not found","notFoundMsg":["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],"back":"Go back","home":"Take me home","openInNewWindow":"Open in new window"},"sidebar":"structure"}}}`),j1=Q(B1),sc=()=>j1,lc=Symbol(""),V1=()=>{const e=ke(lc);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},z1=(e,t)=>{const{locales:n,...r}=e;return{...r,...n==null?void 0:n[t]}},q1=lt({enhance({app:e}){const t=sc(),n=e._context.provides[Os],r=S(()=>z1(t.value,n.routeLocale.value));e.provide(lc,r),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return r.value}}})}}),U1=/\b(?:Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini)/i,W1=()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator&&U1.test(navigator.userAgent),K1=({delay:e=500,duration:t=2e3,locales:n,selector:r,showInMobile:o})=>{const{copy:s,copied:l}=s1({legacy:!0,copiedDuring:t}),a=Jt(n),i=Se(),c=p=>{if(!p.hasAttribute("copy-code-registered")){const v=document.createElement("button");v.type="button",v.classList.add("vp-copy-code-button"),v.innerHTML='
',v.setAttribute("aria-label",a.value.copy),v.setAttribute("data-copied",a.value.copied),p.parentElement&&p.parentElement.insertBefore(v,p),p.setAttribute("copy-code-registered","")}},f=()=>{Yt().then(()=>Wi(e)).then(()=>{r.forEach(p=>{document.querySelectorAll(p).forEach(c)})})},d=(p,v,m)=>{let{innerText:E=""}=v;/language-(shellscript|shell|bash|sh|zsh)/.test(p.classList.toString())&&(E=E.replace(/^ *(\$|>) /gm,"")),s(E).then(()=>{m.classList.add("copied"),oe(l,()=>{m.classList.remove("copied"),m.blur()},{once:!0})})};_e(()=>{const p=!W1()||o;p&&f(),Ce("click",v=>{const m=v.target;if(m.matches('div[class*="language-"] > button.copy')){const E=m.parentElement,w=m.nextElementSibling;w&&d(E,w,m)}else if(m.matches('div[class*="language-"] div.vp-copy-icon')){const E=m.parentElement,w=E.parentElement,y=E.nextElementSibling;y&&d(w,y,E)}}),oe(()=>i.value.path,()=>{p&&f()})})};var G1={"/":{copy:"Copy code",copied:"Copied"}},Y1=['.theme-hope-content div[class*="language-"] pre'];const J1=500,Q1=2e3,X1=G1,Z1=Y1,ev=!0,tv=lt({setup:()=>{K1({selector:Z1,locales:X1,duration:Q1,delay:J1,showInMobile:ev})}}),nv=()=>{Ce("beforeprint",()=>{document.querySelectorAll("details").forEach(e=>{e.open=!0})})},ve=({name:e="",color:t="currentColor"},{slots:n})=>{var r;return u("svg",{xmlns:"http://www.w3.org/2000/svg",class:["icon",`${e}-icon`],viewBox:"0 0 1024 1024",fill:t,"aria-label":`${e} icon`},(r=n.default)==null?void 0:r.call(n))};ve.displayName="IconBase";const ac=({size:e=48,stroke:t=4,wrapper:n=!0,height:r=2*e})=>{const o=u("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,preserveAspectRatio:"xMidYMid",viewBox:"25 25 50 50"},[u("animateTransform",{attributeName:"transform",type:"rotate",dur:"2s",keyTimes:"0;1",repeatCount:"indefinite",values:"0;360"}),u("circle",{cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":t,"stroke-linecap":"round"},[u("animate",{attributeName:"stroke-dasharray",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"1,200;90,200;1,200"}),u("animate",{attributeName:"stroke-dashoffset",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"0;-35px;-125px"})])]);return n?u("div",{class:"loading-icon-wrapper",style:`display:flex;align-items:center;justify-content:center;height:${r}px`},o):o};ac.displayName="LoadingIcon";const ic=(e,{slots:t})=>{var n;return(n=t.default)==null?void 0:n.call(t)},rv=e=>cn(e)?e:`https://github.com/${e}`,Hs=(e="")=>!cn(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null,cc=()=>u(ve,{name:"github"},()=>u("path",{d:"M511.957 21.333C241.024 21.333 21.333 240.981 21.333 512c0 216.832 140.544 400.725 335.574 465.664 24.49 4.395 32.256-10.07 32.256-23.083 0-11.69.256-44.245 0-85.205-136.448 29.61-164.736-64.64-164.736-64.64-22.315-56.704-54.4-71.765-54.4-71.765-44.587-30.464 3.285-29.824 3.285-29.824 49.195 3.413 75.179 50.517 75.179 50.517 43.776 75.008 114.816 53.333 142.762 40.79 4.523-31.66 17.152-53.377 31.19-65.537-108.971-12.458-223.488-54.485-223.488-242.602 0-53.547 19.114-97.323 50.517-131.67-5.035-12.33-21.93-62.293 4.779-129.834 0 0 41.258-13.184 134.912 50.346a469.803 469.803 0 0 1 122.88-16.554c41.642.213 83.626 5.632 122.88 16.554 93.653-63.488 134.784-50.346 134.784-50.346 26.752 67.541 9.898 117.504 4.864 129.834 31.402 34.347 50.474 78.123 50.474 131.67 0 188.586-114.73 230.016-224.042 242.09 17.578 15.232 33.578 44.672 33.578 90.454v135.85c0 13.142 7.936 27.606 32.854 22.87C862.25 912.597 1002.667 728.747 1002.667 512c0-271.019-219.648-490.667-490.71-490.667z"}));cc.displayName="GitHubIcon";const uc=()=>u(ve,{name:"gitee"},()=>u("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm242.97-533.34H482.39a23.7 23.7 0 0 0-23.7 23.7l-.03 59.28c0 13.08 10.59 23.7 23.7 23.7h165.96a23.7 23.7 0 0 1 23.7 23.7v11.85a71.1 71.1 0 0 1-71.1 71.1H375.71a23.7 23.7 0 0 1-23.7-23.7V423.11a71.1 71.1 0 0 1 71.1-71.1h331.8a23.7 23.7 0 0 0 23.7-23.7l.06-59.25a23.73 23.73 0 0 0-23.7-23.73H423.11a177.78 177.78 0 0 0-177.78 177.75v331.83c0 13.08 10.62 23.7 23.7 23.7h349.62a159.99 159.99 0 0 0 159.99-159.99V482.33a23.7 23.7 0 0 0-23.7-23.7z"}));uc.displayName="GiteeIcon";const fc=()=>u(ve,{name:"bitbucket"},()=>u("path",{d:"M575.256 490.862c6.29 47.981-52.005 85.723-92.563 61.147-45.714-20.004-45.714-92.562-1.133-113.152 38.29-23.442 93.696 7.424 93.696 52.005zm63.451-11.996c-10.276-81.152-102.29-134.839-177.152-101.156-47.433 21.138-79.433 71.424-77.129 124.562 2.853 69.705 69.157 126.866 138.862 120.576S647.3 548.571 638.708 478.83zm136.558-309.723c-25.161-33.134-67.986-38.839-105.728-45.13-106.862-17.151-216.576-17.7-323.438 1.134-35.438 5.706-75.447 11.996-97.719 43.996 36.572 34.304 88.576 39.424 135.424 45.129 84.553 10.862 171.447 11.447 256 .585 47.433-5.705 99.987-10.276 135.424-45.714zm32.585 591.433c-16.018 55.99-6.839 131.438-66.304 163.986-102.29 56.576-226.304 62.867-338.87 42.862-59.43-10.862-129.135-29.696-161.72-85.723-14.3-54.858-23.442-110.848-32.585-166.84l3.438-9.142 10.276-5.157c170.277 112.567 408.576 112.567 579.438 0 26.844 8.01 6.84 40.558 6.29 60.014zm103.424-549.157c-19.42 125.148-41.728 249.71-63.415 374.272-6.29 36.572-41.728 57.162-71.424 72.558-106.862 53.724-231.424 62.866-348.562 50.286-79.433-8.558-160.585-29.696-225.134-79.433-30.28-23.443-30.28-63.415-35.986-97.134-20.005-117.138-42.862-234.277-57.161-352.585 6.839-51.42 64.585-73.728 107.447-89.71 57.16-21.138 118.272-30.866 178.87-36.571 129.134-12.58 261.157-8.01 386.304 28.562 44.581 13.13 92.563 31.415 122.844 69.705 13.714 17.7 9.143 40.01 6.29 60.014z"}));fc.displayName="BitbucketIcon";const dc=()=>u(ve,{name:"source"},()=>u("path",{d:"M601.92 475.2c0 76.428-8.91 83.754-28.512 99.594-14.652 11.88-43.956 14.058-78.012 16.434-18.81 1.386-40.392 2.97-62.172 6.534-18.612 2.97-36.432 9.306-53.064 17.424V299.772c37.818-21.978 63.36-62.766 63.36-109.692 0-69.894-56.826-126.72-126.72-126.72S190.08 120.186 190.08 190.08c0 46.926 25.542 87.714 63.36 109.692v414.216c-37.818 21.978-63.36 62.766-63.36 109.692 0 69.894 56.826 126.72 126.72 126.72s126.72-56.826 126.72-126.72c0-31.086-11.286-59.598-29.7-81.576 13.266-9.504 27.522-17.226 39.996-19.206 16.038-2.574 32.868-3.762 50.688-5.148 48.312-3.366 103.158-7.326 148.896-44.55 61.182-49.698 74.25-103.158 75.24-187.902V475.2h-126.72zM316.8 126.72c34.848 0 63.36 28.512 63.36 63.36s-28.512 63.36-63.36 63.36-63.36-28.512-63.36-63.36 28.512-63.36 63.36-63.36zm0 760.32c-34.848 0-63.36-28.512-63.36-63.36s28.512-63.36 63.36-63.36 63.36 28.512 63.36 63.36-28.512 63.36-63.36 63.36zM823.68 158.4h-95.04V63.36h-126.72v95.04h-95.04v126.72h95.04v95.04h126.72v-95.04h95.04z"}));dc.displayName="SourceIcon";const ov=({link:e,type:t=Hs(e??"")})=>{if(!t)return null;const n=t.toLowerCase();return u(n==="bitbucket"?fc:n==="github"?cc:n==="gitlab"?"GitLab":n==="gitee"?uc:dc)};function sv(){const e=Q(!1),t=Tn();return t&&_e(()=>{e.value=!0},t),e}function lv(e){return sv(),S(()=>!!e())}const av=()=>lv(()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator),iv=()=>{const e=av();return S(()=>e.value&&/\b(?:Android|iPhone)/i.test(navigator.userAgent))},cv=e=>[/\((ipad);[-\w),; ]+apple/i,/applecoremedia\/[\w.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i].some(t=>t.test(e)),uv=e=>[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i].some(t=>t.test(e)),fv=e=>[/(mac os x) ?([\w. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i].some(t=>t.test(e)),dv=(e,t=0)=>{let n=3735928559^t,r=1103547991^t;for(let o=0,s;o>>16,2246822507),n^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)},pc=(e,t)=>dv(e)%t,hc=/#.*$/u,pv=e=>{const t=hc.exec(e);return t?t[0]:""},la=e=>decodeURI(e).replace(hc,"").replace(/\/index\.html$/iu,"/").replace(/\.html$/iu,"").replace(/(README|index)?\.md$/iu,""),vc=(e,t)=>{if(!Ih(t))return!1;const n=la(e.path),r=la(t),o=pv(t);return o?o===e.hash&&(!r||n===r):n===r};var hv=e=>Object.prototype.toString.call(e)==="[object Object]",sr=e=>typeof e=="string";const gc=Array.isArray,aa=e=>hv(e)&&sr(e.name),ia=(e,t=!1)=>e?gc(e)?e.map(n=>sr(n)?{name:n}:aa(n)?n:null).filter(n=>n!==null):sr(e)?[{name:e}]:aa(e)?[e]:(console.error(`Expect "author" to be \`AuthorInfo[] | AuthorInfo | string[] | string ${t?"":"| false"} | undefined\`, but got`,e),[]):[],mc=(e,t)=>{if(e){if(gc(e)&&e.every(sr))return e;if(sr(e))return[e];console.error(`Expect ${t||"value"} to be \`string[] | string | undefined\`, but got`,e)}return[]},vv=e=>mc(e,"category"),gv=e=>mc(e,"tag");let mv={};const bc=Symbol(""),bv=()=>ke(bc),yv=e=>{e.provide(bc,mv)},ca=()=>{const e=document.documentElement;return e.classList.contains("dark")||e.getAttribute("data-theme")==="dark"},pn={useMaxWidth:!1},wv=e=>({dark:e,background:e?"#1e1e1e":"#fff",primaryColor:e?"#389d70":"#4abf8a",primaryBorderColor:e?"#389d70":"#4abf8a",primaryTextColor:e?"#fff":"#000",secondaryColor:"#ffb500",secondaryBorderColor:e?"#fff":"#000",secondaryTextColor:e?"#ddd":"#333",tertiaryColor:e?"#282828":"#efeef4",tertiaryBorderColor:e?"#bbb":"#242424",tertiaryTextColor:e?"#ddd":"#333",noteBkgColor:e?"#f6d365":"#fff5ad",noteTextColor:"#242424",noteBorderColor:e?"#f6d365":"#333",lineColor:e?"#d3d3d3":"#333",textColor:e?"#fff":"#242424",mainBkg:e?"#389d70":"#4abf8a",errorBkgColor:"#eb4d5d",errorTextColor:"#fff",nodeBorder:e?"#389d70":"#4abf8a",nodeTextColor:e?"#fff":"#242424",signalTextColor:e?"#9e9e9e":"#242424",classText:"#fff",labelColor:"#fff",attributeBackgroundColorEven:e?"#0d1117":"#fff",attributeBackgroundColorOdd:e?"#161b22":"#f8f8f8",fillType0:e?"#cf1322":"#f1636e",fillType1:"#f39c12",fillType2:"#2ecc71",fillType3:"#fa541c",fillType4:"#25a55b",fillType5:"#13c2c2",fillType6:"#096dd9",fillType7:"#aa6fe9"});var _v=G({name:"Mermaid",props:{id:{type:String,required:!0},code:{type:String,required:!0},title:{type:String,default:""}},setup(e){const{themeVariables:t,...n}=bv(),r=Ne(),o=S(()=>Ql(e.code)),s=Q(""),l=Q(!1);let a=!1;const i=async()=>{const[{default:d}]=await Promise.all([ce(()=>import("./mermaid.core-Cio1iadR.js").then(p=>p.b8),[]),a?Promise.resolve():(a=!0,new Promise(p=>setTimeout(p,800)))]);d.initialize({theme:"base",themeVariables:{...wv(l.value),...Xd(t)?t(l.value):t},flowchart:pn,sequence:pn,journey:pn,gantt:pn,er:pn,pie:pn,...n,startOnLoad:!1}),s.value=(await d.render(e.id,o.value)).svg},c=()=>{const{body:d}=document,p=document.createElement("div");p.classList.add("mermaid-preview"),p.innerHTML=s.value,d.appendChild(p),p.addEventListener("click",()=>{d.removeChild(p)})},f=()=>{const d=`data:image/svg+xml;charset=utf8,${s.value.replace(/
/g,"
").replace(/%/g,"%25").replace(/"/g,"%22").replace(/'/g,"%27").replace(/&/g,"%26").replace(/#/g,"%23").replace(/{/g,"%7B").replace(/}/g,"%7D").replace(//g,"%3E")}`,p=document.createElement("a");p.setAttribute("href",d),p.setAttribute("download",`${e.title?Ql(e.title):e.id}.svg`),p.click()};return _e(()=>{l.value=ca(),i(),Xi(document.documentElement,()=>{l.value=ca()},{attributeFilter:["class","data-theme"],attributes:!0}),oe(l,()=>i())}),()=>[u("div",{class:"mermaid-actions"},[u("button",{class:"preview-button",onClick:()=>c(),title:"preview",innerHTML:''}),u("button",{class:"download-button",onClick:()=>f(),title:"download",innerHTML:''})]),u("div",{ref:r,class:"mermaid-wrapper"},s.value?u("div",{class:"mermaid-content",innerHTML:s.value}):u(ac,{class:"mermaid-loading",height:96}))]}});const To=Ms("VUEPRESS_TAB_STORE",{});var Ev=G({name:"Tabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=Q(e.active),r=Ne([]),o=()=>{e.tabId&&(To.value[e.tabId]=e.data[n.value].id)},s=(c=n.value)=>{n.value=c{n.value=c>0?c-1:r.value.length-1,r.value[n.value].focus()},a=(c,f)=>{c.key===" "||c.key==="Enter"?(c.preventDefault(),n.value=f):c.key==="ArrowRight"?(c.preventDefault(),s()):c.key==="ArrowLeft"&&(c.preventDefault(),l()),o()},i=()=>{if(e.tabId){const c=e.data.findIndex(({id:f})=>To.value[e.tabId]===f);if(c!==-1)return c}return e.active};return _e(()=>{n.value=i(),oe(()=>To.value[e.tabId],(c,f)=>{if(e.tabId&&c!==f){const d=e.data.findIndex(({id:p})=>p===c);d!==-1&&(n.value=d)}})}),()=>e.data.length?u("div",{class:"vp-tabs"},[u("div",{class:"vp-tabs-nav",role:"tablist"},e.data.map(({id:c},f)=>{const d=f===n.value;return u("button",{type:"button",ref:p=>{p&&(r.value[f]=p)},class:["vp-tab-nav",{active:d}],role:"tab","aria-controls":`tab-${e.id}-${f}`,"aria-selected":d,onClick:()=>{n.value=f,o()},onKeydown:p=>a(p,f)},t[`title${f}`]({value:c,isActive:d}))})),e.data.map(({id:c},f)=>{const d=f===n.value;return u("div",{class:["vp-tab",{active:d}],id:`tab-${e.id}-${f}`,role:"tabpanel","aria-expanded":d},[u("div",{class:"vp-tab-title"},t[`title${f}`]({value:c,isActive:d})),t[`tab${f}`]({value:c,isActive:d})])})]):null}});const Cv=lt({enhance:({app:e})=>{yv(e),e.component("Mermaid",_v),e.component("Tabs",Ev)},setup:()=>{nv()}});let kv={};const yc=Symbol(""),xv=()=>ke(yc),Sv=e=>{e.provide(yc,kv)},Tv='
',Av=e=>Ee(e)?Array.from(document.querySelectorAll(e)):e.map(t=>Array.from(document.querySelectorAll(t))).flat(),wc=e=>new Promise((t,n)=>{e.complete?t({type:"image",element:e,src:e.src,width:e.naturalWidth,height:e.naturalHeight,alt:e.alt,msrc:e.src}):(e.onload=()=>t(wc(e)),e.onerror=r=>n(r))}),Lv=e=>{const{isSupported:t,toggle:n}=$s();e.on("uiRegister",()=>{t.value&&e.ui.registerElement({name:"fullscreen",order:7,isButton:!0,html:'',onClick:()=>{n()}}),e.ui.registerElement({name:"download",order:8,isButton:!0,tagName:"a",html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-download"},onInit:(r,o)=>{r.setAttribute("download",""),r.setAttribute("target","_blank"),r.setAttribute("rel","noopener"),o.on("change",()=>{r.setAttribute("href",o.currSlide.data.src)})}}),e.ui.registerElement({name:"bulletsIndicator",className:"photo-swipe-bullets-indicator",appendTo:"wrapper",onInit:(r,o)=>{const s=[];let l=-1;for(let a=0;a{o.goTo(s.indexOf(c.target))},s.push(i),r.appendChild(i)}o.on("change",()=>{l>=0&&s[l].classList.remove("active"),s[o.currIndex].classList.add("active"),l=o.currIndex})}})})},Rv=(e,t,n=!0)=>ce(()=>import("./photoswipe.esm-GXRgw7eJ.js"),[]).then(({default:r})=>{let o=null;const s=e.map(l=>({html:Tv,element:l,msrc:l.src}));return e.forEach((l,a)=>{const i=()=>{o==null||o.destroy(),o=new r({preloaderDelay:0,showHideAnimationType:"zoom",...t,dataSource:s,index:a,...n?{closeOnVerticalDrag:!0,wheelToZoom:!1}:{}}),Lv(o),o.addFilter("thumbEl",()=>l),o.addFilter("placeholderSrc",()=>l.src),o.init()};l.getAttribute("photo-swipe")||(l.style.cursor="zoom-in",l.addEventListener("click",()=>{i()}),l.addEventListener("keypress",({key:c})=>{c==="Enter"&&i()}),l.setAttribute("photo-swipe","")),wc(l).then(c=>{s.splice(a,1,c),o==null||o.refreshSlideContent(a)})}),n?Ce("wheel",()=>{o==null||o.close()}):()=>{}}),Ov=({selector:e,locales:t,delay:n=500,scrollToClose:r=!0})=>{const o=xv(),s=Jt(t),l=Se(),a=Le();let i=null;const c=()=>{const{photoSwipe:f}=a.value;f!==!1&&Yt().then(()=>Wi(n)).then(async()=>{const d=Ee(f)?f:e;i=await Rv(Av(d),{...o,...s.value},r)})};_e(()=>{c(),oe(()=>l.value.path,()=>{i==null||i(),c()})}),Sn(()=>{i==null||i()})};var Pv={"/":{closeTitle:"Close",downloadTitle:"Download Image",fullscreenTitle:"Switch to full screen",zoomTitle:"Zoom in/out",arrowPrevTitle:"Prev (Arrow Left)",arrowNextTitle:"Next (Arrow Right)"}};const Iv=".theme-hope-content :not(a) > img:not([no-view])",Mv=Pv,$v=800,Nv=!0,Dv=lt({enhance:({app:e})=>{Sv(e)},setup:()=>{Ov({selector:Iv,delay:$v,locales:Mv,scrollToClose:Nv})}}),Hv=()=>u(ve,{name:"heading"},()=>u("path",{d:"M250.4 704.6H64V595.4h202.4l26.2-166.6H94V319.6h214.4L352 64h127.8l-43.6 255.4h211.2L691 64h126.2l-43.6 255.4H960v109.2H756.2l-24.6 166.6H930v109.2H717L672 960H545.8l43.6-255.4H376.6L333 960H206.8l43.6-255.4zm168.4-276L394 595.4h211.2l24.6-166.6h-211z"}));Hv.displayName="HeadingIcon";const Fv=()=>u(ve,{name:"heart"},()=>u("path",{d:"M1024 358.156C1024 195.698 892.3 64 729.844 64c-86.362 0-164.03 37.218-217.844 96.49C458.186 101.218 380.518 64 294.156 64 131.698 64 0 195.698 0 358.156 0 444.518 37.218 522.186 96.49 576H96l320 320c32 32 64 64 96 64s64-32 96-64l320-320h-.49c59.272-53.814 96.49-131.482 96.49-217.844zM841.468 481.232 517.49 805.49a2981.962 2981.962 0 0 1-5.49 5.48c-1.96-1.95-3.814-3.802-5.49-5.48L182.532 481.234C147.366 449.306 128 405.596 128 358.156 128 266.538 202.538 192 294.156 192c47.44 0 91.15 19.366 123.076 54.532L512 350.912l94.768-104.378C638.696 211.366 682.404 192 729.844 192 821.462 192 896 266.538 896 358.156c0 47.44-19.368 91.15-54.532 123.076z"}));Fv.displayName="HeartIcon";const Bv=()=>u(ve,{name:"history"},()=>u("path",{d:"M512 1024a512 512 0 1 1 512-512 512 512 0 0 1-512 512zm0-896a384 384 0 1 0 384 384 384 384 0 0 0-384-384zm192 448H512a64 64 0 0 1-64-64V320a64 64 0 0 1 128 0v128h128a64 64 0 0 1 0 128z"}));Bv.displayName="HistoryIcon";const jv=()=>u(ve,{name:"title"},()=>u("path",{d:"M512 256c70.656 0 134.656 28.672 180.992 75.008A254.933 254.933 0 0 1 768 512c0 83.968-41.024 157.888-103.488 204.48C688.96 748.736 704 788.48 704 832c0 105.984-86.016 192-192 192-106.048 0-192-86.016-192-192h128a64 64 0 1 0 128 0 64 64 0 0 0-64-64 255.19 255.19 0 0 1-181.056-75.008A255.403 255.403 0 0 1 256 512c0-83.968 41.024-157.824 103.488-204.544C335.04 275.264 320 235.584 320 192A192 192 0 0 1 512 0c105.984 0 192 85.952 192 192H576a64.021 64.021 0 0 0-128 0c0 35.328 28.672 64 64 64zM384 512c0 70.656 57.344 128 128 128s128-57.344 128-128-57.344-128-128-128-128 57.344-128 128z"}));jv.displayName="TitleIcon";const Fs=()=>u(ve,{name:"search"},()=>u("path",{d:"M192 480a256 256 0 1 1 512 0 256 256 0 0 1-512 0m631.776 362.496-143.2-143.168A318.464 318.464 0 0 0 768 480c0-176.736-143.264-320-320-320S128 303.264 128 480s143.264 320 320 320a318.016 318.016 0 0 0 184.16-58.592l146.336 146.368c12.512 12.48 32.768 12.48 45.28 0 12.48-12.512 12.48-32.768 0-45.28"}));Fs.displayName="SearchIcon";const _c=()=>u("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",preserveAspectRatio:"xMidYMid",viewBox:"0 0 100 100"},[u("circle",{cx:"28",cy:"75",r:"11",fill:"currentColor"},u("animate",{attributeName:"fill-opacity",begin:"0s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"})),u("path",{fill:"none",stroke:"#88baf0","stroke-width":"10",d:"M28 47a28 28 0 0 1 28 28"},u("animate",{attributeName:"stroke-opacity",begin:"0.1s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"})),u("path",{fill:"none",stroke:"#88baf0","stroke-width":"10",d:"M28 25a50 50 0 0 1 50 50"},u("animate",{attributeName:"stroke-opacity",begin:"0.2s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"}))]);_c.displayName="LoadingIcon";const Ec=({hint:e})=>u("div",{class:"search-pro-result-wrapper loading"},[u(_c),e]);Ec.displayName="SearchLoading";const Vv='';var zv={0:{"/":{0:"C",1:"a",2:"t",3:"e",4:"g",5:"o",6:"r",7:"y",8:":",9:" ",10:"$",11:"c",12:"o",13:"n",14:"t",15:"e",16:"n",17:"t"}},1:{"/":{0:"T",1:"a",2:"g",3:":",4:" ",5:"$",6:"c",7:"o",8:"n",9:"t",10:"e",11:"n",12:"t"}}},qv={"/":{cancel:"Cancel",placeholder:"Search",search:"Search",searching:"Searching",defaultTitle:"Documentation",select:"to select",navigate:"to navigate",autocomplete:"to autocomplete",exit:"to exit",queryHistory:"Search History",resultHistory:"Result History",emptyHistory:"Empty Search History",emptyResult:"No results found",loading:"Loading search indexes..."}},Uv={searchDelay:150,suggestDelay:0,queryHistoryCount:5,resultHistoryCount:5,hotKeys:[{key:"k",ctrl:!0},{key:"/",ctrl:!0}],worker:"search-pro.worker.js"};const zr=Uv,Ig=zv,Cc=zr.hotKeys,Bs=qv,Ao="Canceled because of new search request.",Mg=()=>{const e=new Worker(`/${zr.worker}`,{}),t={suggest:null,search:null,all:null};return e.addEventListener("message",({data:n})=>{const[r,o,s]=n,l=t[r];(l==null?void 0:l.id)===o&&l.resolve(s)}),e.addEventListener("error",n=>{console.error("Search Worker error:",n)}),{suggest:(n,r,o)=>new Promise((s,l)=>{var i;(i=t.suggest)==null||i.reject(new Error(Ao));const a=Date.now();e.postMessage({type:"suggest",id:a,query:n,locale:r,options:o}),t.suggest={id:a,resolve:s,reject:l}}),search:(n,r,o)=>new Promise((s,l)=>{var i;(i=t.search)==null||i.reject(new Error(Ao));const a=Date.now();e.postMessage({type:"search",id:a,query:n,locale:r,options:o}),console.log("post"),t.search={id:a,resolve:s,reject:l}}),all:(n,r,o)=>new Promise((s,l)=>{var i;(i=t.all)==null||i.reject(new Error(Ao));const a=Date.now();e.postMessage({type:"all",id:a,query:n,locale:r,options:o}),t.all={id:a,resolve:s,reject:l}}),terminate:()=>{e.terminate(),Nh(t).forEach(n=>{n==null||n.reject(new Error("Worker has been terminated."))})}}};let Wv={};const kc=Symbol(""),Kv=()=>{const e=un(),{locales:t={},...n}=ke(kc);return S(()=>({...n,...t[e.value]||{}}))},Gv=e=>{e.provide(kc,Wv)},Yv=(e,t=!1)=>{const n=Q(0),r=S(()=>e.value[n.value]),o=()=>{n.value=n.value>0?n.value-1:e.value.length-1},s=()=>{n.value=n.value{t||(n.value=0)}),{index:n,item:r,prev:o,next:s}},Jv=e=>e instanceof Element?document.activeElement===e&&(["TEXTAREA","SELECT","INPUT"].includes(e.tagName)||e.hasAttribute("contenteditable")):!1,Qv=e=>Cc.some(t=>{const{key:n,ctrl:r=!1,shift:o=!1,alt:s=!1,meta:l=!1}=t;return n===e.key&&r===e.ctrlKey&&o===e.shiftKey&&s===e.altKey&&l===e.metaKey}),Xv='',Zv='',e0='',t0='',js=Symbol(""),n0=()=>{const e=Q(!1);an(js,e)},r0=e=>({suggestions:Q([])}),Lo=Cc[0];var o0=G({name:"SearchBox",setup(){const e=Jt(Bs),t=ke(js),n=Q(!1),r=S(()=>Lo?[(n.value?["⌃","⇧","⌥","⌘"]:["Ctrl","Shift","Alt","Win"]).filter((o,s)=>Lo[["ctrl","shift","alt","meta"][s]]),Lo.key.toUpperCase()]:null);return Ce("keydown",o=>{!t.value&&Qv(o)&&!Jv(o.target)&&(o.preventDefault(),t.value=!0)}),_e(()=>{const{userAgent:o}=navigator;n.value=fv(o)||uv(o)||cv(o)}),()=>[u("button",{type:"button",class:"search-pro-button","aria-label":e.value.search,onClick:()=>{t.value=!0}},[u(Fs),u("div",{class:"search-pro-placeholder"},e.value.search),r.value?u("div",{class:"search-pro-key-hints"},r.value.map(o=>u("kbd",{class:"search-pro-key"},o))):null])]}});const s0=Ka({loader:()=>ce(()=>import("./SearchResult-DtoDG66d.js"),[]),loadingComponent:()=>{const e=Jt(Bs);return u(Ec,{hint:e.value.loading})}});var l0=G({name:"SearchModal",setup(){const e=ke(js),t=to(),n=iv(),r=Jt(Bs),o=Kv(),s=Q(""),l=Q([]),{suggestions:a}=r0(),i=Q(!1),{index:c,prev:f,next:d}=Yv(a),p=Ne(),v=Ne(),m=(w=c.value)=>{s.value=a.value[w],i.value=!1};Ce("keydown",w=>{i.value?w.key==="ArrowUp"?f():w.key==="ArrowDown"?d():w.key==="Enter"?m():w.key==="Escape"&&(i.value=!1):w.key==="Escape"&&(e.value=!1)});const E=Ji(()=>{var w,y;(((y=(w=o.value).splitWord)==null?void 0:y.call(w,s.value))||Promise.resolve(s.value.split(" "))).then(C=>{l.value=C})},Math.min(zr.searchDelay,zr.suggestDelay));return oe(s,E,{immediate:!0}),_e(()=>{const w=Ns(document.body);oe(e,async y=>{var C;w.value=y,y&&(await Yt(),(C=p.value)==null||C.focus())}),r1(v,()=>{i.value=!1}),Sn(()=>{w.value=!1})}),()=>e.value?u("div",{class:"search-pro-modal-wrapper"},[u("div",{class:"search-pro-mask",onClick:()=>{e.value=!1,s.value=""}}),u("div",{class:"search-pro-modal"},[u("div",{class:"search-pro-box"},[u("form",[u("label",{for:"search-pro","aria-label":r.value.search},u(Fs)),u("input",{ref:p,type:"search",class:"search-pro-input",id:"search-pro",placeholder:r.value.placeholder,spellcheck:"false",autocapitalize:"off",autocomplete:"off",autocorrect:"off",name:`${t.value.title}-search`,value:s.value,"aria-controls":"search-pro-results",onKeydown:w=>{const{key:y}=w;a.value.length&&(y==="Tab"?(m(),w.preventDefault()):(y==="ArrowDown"||y==="ArrowUp"||y==="Escape")&&w.preventDefault())},onInput:({target:w})=>{s.value=w.value,i.value=!0,c.value=0}}),s.value?u("button",{type:"reset",class:"search-pro-clear-button",innerHTML:Vv,onClick:()=>{s.value=""}}):null,null]),u("button",{type:"button",class:"search-pro-close-button",onClick:()=>{e.value=!1,s.value=""}},r.value.cancel)]),u(s0,{queries:l.value,isFocusing:!i.value,onClose:()=>{e.value=!1},onUpdateQuery:w=>{s.value=w}}),n.value?null:u("div",{class:"search-pro-hints"},[u("span",{class:"search-pro-hint"},[u("kbd",{innerHTML:Xv}),r.value.select]),u("span",{class:"search-pro-hint"},[u("kbd",{innerHTML:e0}),u("kbd",{innerHTML:Zv}),r.value.navigate]),u("span",{class:"search-pro-hint"},[u("kbd",{innerHTML:t0}),r.value.exit])])])]):null}}),a0=lt({enhance({app:e}){Gv(e),e.component("SearchBox",o0)},setup(){n0()},rootComponents:[l0]});const xc=()=>{const e=Se();return S(()=>e.value.readingTime??null)},i0=(e,t)=>{const{minutes:n,words:r}=e,{less1Minute:o,word:s,time:l}=t;return{time:n<1?o:l.replace("$time",Math.round(n).toString()),words:s.replace("$word",r.toString())}},ua={words:"",time:""},Xo=typeof __READING_TIME_LOCALES__>"u"?null:__READING_TIME_LOCALES__,c0=()=>Xo?Jt(Xo):S(()=>null),u0=()=>{if(typeof Xo>"u")return S(()=>ua);const e=xc(),t=c0();return S(()=>e.value&&t.value?i0(e.value,t.value):ua)},Rn=()=>sc(),pe=()=>V1(),Ro=()=>null,f0="719px",d0="1440px",p0="false",Sc={mobileBreakPoint:f0,pcBreakPoint:d0,enableThemeColor:p0},Vs={"/":["",{text:"Introduction",prefix:"guide/",collapsible:!0,children:["","getting-started","architecture-overview","cli","state-and-deps","scheduling-tasks","dynamic-brokers","testing-taskiq","message-format"]},{text:"Framework integrations",prefix:"framework_integrations/",collapsible:!0,children:["","taskiq-with-fastapi","taskiq-with-aiohttp","faststream","taskiq-with-aiogram"]},{text:"Extending taskiq",prefix:"extending-taskiq/",collapsible:!0,children:["","broker","middleware","result-backend","cli","schedule-sources"]},{text:"Available components",prefix:"available-components/",collapsible:!0,children:["","brokers","result-backends","schedule-sources","middlewares"]},"contrib"]},Tc=e=>{const{icon:t="",color:n,size:r}=e,o=n||r?{}:null;return n&&(o.color=n),r&&(o.height=Number.isNaN(Number(r))?r:`${r}px`),cn(t)?u("img",{class:"icon",src:t,alt:"","no-view":"",style:o}):oo(t)?u("img",{class:"icon",src:Ve(t),alt:"","aria-hidden":"","no-view":"",style:o}):u(wt("FontIcon"),e)};Tc.displayName="HopeIcon";var Be=Tc;const h0="http://.",zs=()=>{const e=An(),t=Rt();return n=>{if(n)if(oo(n))t.path!==n&&e.push(n);else if(Qr(n))window&&window.open(n);else{const r=t.path.slice(0,t.path.lastIndexOf("/"));e.push(new URL(`${r}/${encodeURI(n)}`,h0).pathname)}}},Ac=()=>{const e=pe(),t=Le();return S(()=>{const{author:n}=t.value;return n?ia(n):n===!1?[]:ia(e.value.author,!1)})},v0=()=>{const e=Le();return S(()=>vv(e.value.category).map(t=>({name:t,path:""})))},g0=()=>{const e=Le();return S(()=>gv(e.value.tag).map(t=>({name:t,path:""})))},m0=()=>{const e=Le(),t=Se();return S(()=>{const n=Dh(e.value.date);if(n)return n;const{createdTime:r}=t.value.git||{};return r?new Date(r):null})},b0=()=>{const e=pe(),t=Se(),n=Le(),r=Ac(),o=v0(),s=g0(),l=m0(),a=xc(),i=u0(),c=S(()=>({author:r.value,category:o.value,date:l.value,localizedDate:t.value.localizedDate,tag:s.value,isOriginal:n.value.isOriginal||!1,readingTime:a.value,readingTimeLocale:i.value,pageview:"pageview"in n.value?n.value.pageview:!0})),f=S(()=>"pageInfo"in n.value?n.value.pageInfo:"pageInfo"in e.value?e.value.pageInfo:null);return{info:c,items:f}},br=()=>{const e=Rn();return S(()=>!!e.value.pure)},{mobileBreakPoint:y0,pcBreakPoint:w0}=Sc,fa=e=>e.endsWith("px")?Number(e.slice(0,-2)):null,so=()=>{const e=Q(!1),t=Q(!1),n=()=>{e.value=window.innerWidth<=(fa(y0)??719),t.value=window.innerWidth>=(fa(w0)??1440)};return Ce("resize",n,!1),Ce("orientationchange",n,!1),_e(()=>{n()}),{isMobile:e,isPC:t}},Lc=Symbol(""),yr=()=>{const e=ke(Lc);if(!e)throw new Error("useDarkmode() is called without provider.");return e},_0=e=>{const t=Rn(),n=f1(),r=S(()=>t.value.darkmode||"switch"),o=Ms("vuepress-theme-hope-scheme","auto"),s=S(()=>{const a=r.value;return a==="disable"?!1:a==="enable"?!0:a==="auto"?n.value:a==="toggle"?o.value==="dark":o.value==="dark"||o.value==="auto"&&n.value}),l=S(()=>{const a=r.value;return a==="switch"||a==="toggle"});e.provide(Lc,{canToggle:l,config:r,isDarkmode:s,status:o}),Object.defineProperties(e.config.globalProperties,{$isDarkmode:{get:()=>s.value}})},E0=()=>{const{config:e,isDarkmode:t,status:n}=yr();Va(()=>{e.value==="disable"?n.value="light":e.value==="enable"?n.value="dark":e.value==="toggle"&&n.value==="auto"&&(n.value="light")}),_e(()=>{oe(t,r=>document.documentElement.setAttribute("data-theme",r?"dark":"light"),{immediate:!0})})},lr=(e,t,n=!1)=>"activeMatch"in t?new RegExp(t.activeMatch,"u").test(e.path):vc(e,t.link)?!0:"children"in t&&!n?t.children.some(r=>lr(e,r)):!1,Rc=(e,t)=>t.type==="group"?t.children.some(n=>n.type==="group"?Rc(e,n):n.type==="page"&&lr(e,n,!0))||"prefix"in t&&vc(e,t.prefix):!1,Zo=e=>!Ts(e)&&!Qr(e);var yt=(e=>(e.title="t",e.shortTitle="s",e.icon="i",e.index="I",e.order="O",e.breadcrumbExclude="b",e))(yt||{}),C0=(e=>(e.type="y",e.author="a",e.date="d",e.localizedDate="l",e.category="c",e.tag="g",e.isEncrypted="n",e.isOriginal="o",e.readingTime="r",e.excerpt="e",e.sticky="u",e.cover="v",e))(C0||{}),k0=(e=>(e.article="a",e.home="h",e.slide="s",e.page="p",e))(k0||{});const qs=(e,t=!1,n)=>{const{meta:r,path:o,notFound:s}=Fh(e,n);return s?{text:o,link:o}:{text:!t&&r[yt.shortTitle]?r[yt.shortTitle]:r[yt.title]||o,link:o,...r[yt.icon]?{icon:r[yt.icon]}:{}}},rn=(e="",t="")=>oo(t)||Qr(t)?t:`${Ei(e)}${t}`,es=({config:e,prefix:t=""})=>{const n=(r,o=t)=>{const s=Ee(r)?qs(rn(o,r)):r.link?{...r,...Zo(r.link)?{link:Wt(rn(o,r.link)).path}:{}}:r;if("children"in s){const l=rn(o,s.prefix),a=s.children==="structure"?Vs[l]:s.children;return{type:"group",...s,prefix:l,children:a.map(i=>n(i,l))}}return{type:"page",...s}};return e.map(r=>n(r))},x0=({config:e,page:t,headerDepth:n})=>{const r=ro(e).sort((o,s)=>s.length-o.length);for(const o of r)if(or(decodeURI(t.path),o)){const s=e[o];return s?es({config:s==="structure"?Vs[o]:s,page:t,headerDepth:n,prefix:o}):[]}return console.warn(`${t.path} is missing sidebar config.`),[]},S0=({config:e,routeLocale:t,page:n,headerDepth:r})=>e==="structure"?es({config:Vs[t],page:n,headerDepth:r,prefix:t}):Yo(e)?es({config:e,page:n,headerDepth:r}):Xr(e)?x0({config:e,page:n,headerDepth:r}):[],Oc=Symbol(""),T0=()=>{const e=Le(),t=pe(),n=Se(),r=un(),o=S(()=>e.value.home?!1:e.value.sidebar??t.value.sidebar??"structure"),s=S(()=>e.value.headerDepth??t.value.headerDepth??2),l=Gi(()=>[o.value,s.value,n.value.path,null],()=>S0({config:o.value,routeLocale:r.value,page:n.value,headerDepth:s.value}));an(Oc,l)},Us=()=>{const e=ke(Oc);if(!e)throw new Error("useSidebarItems() is called without provider.");return e};var A0=G({name:"PageFooter",setup(){const e=Rn(),t=pe(),n=Le(),r=Ac(),o=S(()=>{const{copyright:c,footer:f}=n.value;return f!==!1&&!!(c||f||t.value.displayFooter)}),s=S(()=>{const{footer:c}=n.value;return c===!1?!1:Ee(c)?c:t.value.footer||""}),l=S(()=>r.value.map(({name:c})=>c).join(", ")),a=c=>`Copyright © ${new Date().getFullYear()} ${l.value} ${c?`${c} Licensed`:""}`,i=S(()=>{const{copyright:c,license:f=""}=n.value,{license:d}=e.value,{copyright:p}=t.value;return c??(f?a(f):Ee(p)?p:l.value||d?a(d):!1)});return()=>o.value?u("footer",{class:"vp-footer-wrapper"},[s.value?u("div",{class:"vp-footer",innerHTML:s.value}):null,i.value?u("div",{class:"vp-copyright",innerHTML:i.value}):null]):null}}),qe=G({name:"AutoLink",inheritAttrs:!1,props:{config:{type:Object,required:!0},exact:Boolean,noExternalLinkIcon:Boolean},emits:["focusout"],slots:Object,setup(e,{attrs:t,emit:n,slots:r}){const o=Rt(),s=Ni(),l=Kr(e,"config"),a=S(()=>cn(l.value.link)),i=S(()=>!a.value&&Qr(l.value.link)),c=S(()=>l.value.target||(a.value?"_blank":void 0)),f=S(()=>c.value==="_blank"),d=S(()=>!a.value&&!i.value&&!f.value),p=S(()=>l.value.rel||(f.value?"noopener noreferrer":null)),v=S(()=>l.value.ariaLabel||l.value.text),m=S(()=>{if(e.exact)return!1;const w=ro(s.value.locales);return w.length?w.every(y=>y!==l.value.link):l.value.link!=="/"}),E=S(()=>d.value?l.value.activeMatch?new RegExp(l.value.activeMatch,"u").test(o.path):m.value?or(o.path,l.value.link):o.path===l.value.link:!1);return()=>{const{before:w,after:y,default:C}=r,{text:b,icon:x,link:$}=l.value;return d.value?u(Qe,{to:$,"aria-label":v.value,...t,class:["nav-link",{active:E.value},t.class],onFocusout:()=>n("focusout")},()=>C?C():[w?w():u(Be,{icon:x}),b,y==null?void 0:y()]):u("a",{href:$,rel:p.value,target:c.value,"aria-label":v.value,...t,class:["nav-link",t.class],onFocusout:()=>n("focusout")},C?C():[w?w():u(Be,{icon:x}),b,e.noExternalLinkIcon?null:u(rc),y==null?void 0:y()])}}}),L0=G({name:"NavbarDropdownLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=Se(),r=Kr(e,"config"),o=S(()=>r.value.ariaLabel||r.value.text),s=Q(!1);oe(()=>n.value.path,()=>{s.value=!1});const l=a=>{a.detail===0&&(s.value=!s.value)};return()=>{var a;return u("div",{class:["dropdown-wrapper",{open:s.value}]},[u("button",{type:"button",class:"dropdown-title","aria-label":o.value,onClick:l},[((a=t.title)==null?void 0:a.call(t))||u("span",{class:"title"},[u(Be,{icon:r.value.icon}),e.config.text]),u("span",{class:"arrow"}),u("ul",{class:"nav-dropdown"},r.value.children.map((i,c)=>{const f=c===r.value.children.length-1;return u("li",{class:"dropdown-item"},"children"in i?[u("h4",{class:"dropdown-subtitle"},i.link?u(qe,{config:i,onFocusout:()=>{i.children.length===0&&f&&(s.value=!1)}}):u("span",i.text)),u("ul",{class:"dropdown-subitem-wrapper"},i.children.map((d,p)=>u("li",{class:"dropdown-subitem"},u(qe,{config:d,onFocusout:()=>{p===i.children.length-1&&f&&(s.value=!1)}}))))]:u(qe,{config:i,onFocusout:()=>{f&&(s.value=!1)}}))}))])])}}});const Pc=(e,t="")=>Ee(e)?qs(rn(t,e)):"children"in e?{...e,...e.link&&Zo(e.link)?{link:Wt(rn(t,e.link)).path}:{},children:e.children.map(n=>Pc(n,rn(t,e.prefix)))}:{...e,link:Zo(e.link)?Wt(rn(t,e.link)).path:e.link},Ic=()=>{const e=pe(),t=()=>(e.value.navbar||[]).map(n=>Pc(n));return Gi(()=>e.value.navbar,()=>t())},R0=()=>{const e=pe(),t=S(()=>e.value.repo||null),n=S(()=>t.value?rv(t.value):null),r=S(()=>t.value?Hs(t.value):null),o=S(()=>n.value?e.value.repoLabel??(r.value===null?"Source":r.value):null);return S(()=>!n.value||!o.value||e.value.repoDisplay===!1?null:{type:r.value||"Source",label:o.value,link:n.value})};var O0=G({name:"NavScreenDropdown",props:{config:{type:Object,required:!0}},setup(e){const t=Se(),n=Kr(e,"config"),r=S(()=>n.value.ariaLabel||n.value.text),o=Q(!1);oe(()=>t.value.path,()=>{o.value=!1});const s=(l,a)=>a[a.length-1]===l;return()=>[u("button",{type:"button",class:["nav-screen-dropdown-title",{active:o.value}],"aria-label":r.value,onClick:()=>{o.value=!o.value}},[u("span",{class:"title"},[u(Be,{icon:n.value.icon}),e.config.text]),u("span",{class:["arrow",o.value?"down":"end"]})]),u("ul",{class:["nav-screen-dropdown",{hide:!o.value}]},n.value.children.map(l=>u("li",{class:"dropdown-item"},"children"in l?[u("h4",{class:"dropdown-subtitle"},l.link?u(qe,{config:l,onFocusout:()=>{s(l,n.value.children)&&l.children.length===0&&(o.value=!1)}}):u("span",l.text)),u("ul",{class:"dropdown-subitem-wrapper"},l.children.map(a=>u("li",{class:"dropdown-subitem"},u(qe,{config:a,onFocusout:()=>{s(a,l.children)&&s(l,n.value.children)&&(o.value=!1)}}))))]:u(qe,{config:l,onFocusout:()=>{s(l,n.value.children)&&(o.value=!1)}}))))]}}),P0=G({name:"NavScreenLinks",setup(){const e=Ic();return()=>e.value.length?u("nav",{class:"nav-screen-links"},e.value.map(t=>u("div",{class:"navbar-links-item"},"children"in t?u(O0,{config:t}):u(qe,{config:t})))):null}});const Mc=()=>u(ve,{name:"dark"},()=>u("path",{d:"M524.8 938.667h-4.267a439.893 439.893 0 0 1-313.173-134.4 446.293 446.293 0 0 1-11.093-597.334A432.213 432.213 0 0 1 366.933 90.027a42.667 42.667 0 0 1 45.227 9.386 42.667 42.667 0 0 1 10.24 42.667 358.4 358.4 0 0 0 82.773 375.893 361.387 361.387 0 0 0 376.747 82.774 42.667 42.667 0 0 1 54.187 55.04 433.493 433.493 0 0 1-99.84 154.88 438.613 438.613 0 0 1-311.467 128z"}));Mc.displayName="DarkIcon";const $c=()=>u(ve,{name:"light"},()=>u("path",{d:"M952 552h-80a40 40 0 0 1 0-80h80a40 40 0 0 1 0 80zM801.88 280.08a41 41 0 0 1-57.96-57.96l57.96-58a41.04 41.04 0 0 1 58 58l-58 57.96zM512 752a240 240 0 1 1 0-480 240 240 0 0 1 0 480zm0-560a40 40 0 0 1-40-40V72a40 40 0 0 1 80 0v80a40 40 0 0 1-40 40zm-289.88 88.08-58-57.96a41.04 41.04 0 0 1 58-58l57.96 58a41 41 0 0 1-57.96 57.96zM192 512a40 40 0 0 1-40 40H72a40 40 0 0 1 0-80h80a40 40 0 0 1 40 40zm30.12 231.92a41 41 0 0 1 57.96 57.96l-57.96 58a41.04 41.04 0 0 1-58-58l58-57.96zM512 832a40 40 0 0 1 40 40v80a40 40 0 0 1-80 0v-80a40 40 0 0 1 40-40zm289.88-88.08 58 57.96a41.04 41.04 0 0 1-58 58l-57.96-58a41 41 0 0 1 57.96-57.96z"}));$c.displayName="LightIcon";const Nc=()=>u(ve,{name:"auto"},()=>u("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm0-840c-198.78 0-360 161.22-360 360 0 198.84 161.22 360 360 360s360-161.16 360-360c0-198.78-161.22-360-360-360zm0 660V212c165.72 0 300 134.34 300 300 0 165.72-134.28 300-300 300z"}));Nc.displayName="AutoIcon";const Dc=()=>u(ve,{name:"enter-fullscreen"},()=>u("path",{d:"M762.773 90.24h-497.28c-96.106 0-174.4 78.293-174.4 174.4v497.28c0 96.107 78.294 174.4 174.4 174.4h497.28c96.107 0 175.04-78.293 174.4-174.4V264.64c0-96.213-78.186-174.4-174.4-174.4zm-387.2 761.173H215.04c-21.867 0-40.427-17.92-41.067-41.066V649.92c0-22.507 17.92-40.427 40.427-40.427 11.307 0 21.227 4.694 28.48 11.947 7.253 7.253 11.947 17.92 11.947 28.48v62.293l145.28-145.28c15.893-15.893 41.813-15.893 57.706 0 15.894 15.894 15.894 41.814 0 57.707l-145.28 145.28h62.294c22.506 0 40.426 17.92 40.426 40.427s-17.173 41.066-39.68 41.066zM650.24 165.76h160.427c21.866 0 40.426 17.92 41.066 41.067v160.426c0 22.507-17.92 40.427-40.426 40.427-11.307 0-21.227-4.693-28.48-11.947-7.254-7.253-11.947-17.92-11.947-28.48v-62.186L625.6 450.347c-15.893 15.893-41.813 15.893-57.707 0-15.893-15.894-15.893-41.814 0-57.707l145.28-145.28H650.88c-22.507 0-40.427-17.92-40.427-40.427s17.174-41.173 39.787-41.173z"}));Dc.displayName="EnterFullScreenIcon";const Hc=()=>u(ve,{name:"cancel-fullscreen"},()=>u("path",{d:"M778.468 78.62H247.922c-102.514 0-186.027 83.513-186.027 186.027V795.08c0 102.514 83.513 186.027 186.027 186.027h530.432c102.514 0 186.71-83.513 186.026-186.027V264.647C964.494 162.02 880.981 78.62 778.468 78.62zM250.88 574.35h171.122c23.324 0 43.122 19.115 43.804 43.805v171.121c0 24.008-19.114 43.122-43.122 43.122-12.06 0-22.641-5.006-30.378-12.743s-12.743-19.115-12.743-30.379V722.83L224.597 877.91c-16.953 16.952-44.6 16.952-61.553 0-16.953-16.954-16.953-44.602 0-61.554L318.009 661.39h-66.446c-24.007 0-43.122-19.114-43.122-43.122 0-24.12 18.432-43.918 42.439-43.918zm521.899-98.873H601.657c-23.325 0-43.122-19.114-43.805-43.804V260.55c0-24.007 19.115-43.122 43.122-43.122 12.06 0 22.642 5.007 30.379 12.743s12.743 19.115 12.743 30.38v66.445l154.965-154.965c16.953-16.953 44.601-16.953 61.554 0 16.953 16.953 16.953 44.6 0 61.554L705.536 388.55h66.446c24.007 0 43.122 19.115 43.122 43.122.114 24.007-18.318 43.804-42.325 43.804z"}));Hc.displayName="CancelFullScreenIcon";const Fc=()=>u(ve,{name:"outlook"},()=>[u("path",{d:"M224 800c0 9.6 3.2 44.8 6.4 54.4 6.4 48-48 76.8-48 76.8s80 41.6 147.2 0 134.4-134.4 38.4-195.2c-22.4-12.8-41.6-19.2-57.6-19.2C259.2 716.8 227.2 761.6 224 800zM560 675.2l-32 51.2c-51.2 51.2-83.2 32-83.2 32 25.6 67.2 0 112-12.8 128 25.6 6.4 51.2 9.6 80 9.6 54.4 0 102.4-9.6 150.4-32l0 0c3.2 0 3.2-3.2 3.2-3.2 22.4-16 12.8-35.2 6.4-44.8-9.6-12.8-12.8-25.6-12.8-41.6 0-54.4 60.8-99.2 137.6-99.2 6.4 0 12.8 0 22.4 0 12.8 0 38.4 9.6 48-25.6 0-3.2 0-3.2 3.2-6.4 0-3.2 3.2-6.4 3.2-6.4 6.4-16 6.4-16 6.4-19.2 9.6-35.2 16-73.6 16-115.2 0-105.6-41.6-198.4-108.8-268.8C704 396.8 560 675.2 560 675.2zM224 419.2c0-28.8 22.4-51.2 51.2-51.2 28.8 0 51.2 22.4 51.2 51.2 0 28.8-22.4 51.2-51.2 51.2C246.4 470.4 224 448 224 419.2zM320 284.8c0-22.4 19.2-41.6 41.6-41.6 22.4 0 41.6 19.2 41.6 41.6 0 22.4-19.2 41.6-41.6 41.6C339.2 326.4 320 307.2 320 284.8zM457.6 208c0-12.8 12.8-25.6 25.6-25.6 12.8 0 25.6 12.8 25.6 25.6 0 12.8-12.8 25.6-25.6 25.6C470.4 233.6 457.6 220.8 457.6 208zM128 505.6C128 592 153.6 672 201.6 736c28.8-60.8 112-60.8 124.8-60.8-16-51.2 16-99.2 16-99.2l316.8-422.4c-48-19.2-99.2-32-150.4-32C297.6 118.4 128 291.2 128 505.6zM764.8 86.4c-22.4 19.2-390.4 518.4-390.4 518.4-22.4 28.8-12.8 76.8 22.4 99.2l9.6 6.4c35.2 22.4 80 12.8 99.2-25.6 0 0 6.4-12.8 9.6-19.2 54.4-105.6 275.2-524.8 288-553.6 6.4-19.2-3.2-32-19.2-32C777.6 76.8 771.2 80 764.8 86.4z"})]);Fc.displayName="OutlookIcon";var Bc=G({name:"AppearanceSwitch",setup(){const{config:e,isDarkmode:t,status:n}=yr(),r=br(),o=()=>{e.value==="switch"?n.value={light:"dark",dark:"auto",auto:"light"}[n.value]:n.value=n.value==="light"?"dark":"light"},s=async l=>{if(!(document.startViewTransition&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches&&!r.value)||!l){o();return}const a=l.clientX,i=l.clientY,c=Math.hypot(Math.max(a,innerWidth-a),Math.max(i,innerHeight-i)),f=t.value;await document.startViewTransition(async()=>{o(),await Yt()}).ready,t.value!==f&&document.documentElement.animate({clipPath:t.value?[`circle(${c}px at ${a}px ${i}px)`,`circle(0px at ${a}px ${i}px)`]:[`circle(0px at ${a}px ${i}px)`,`circle(${c}px at ${a}px ${i}px)`]},{duration:400,pseudoElement:t.value?"::view-transition-old(root)":"::view-transition-new(root)"})};return()=>u("button",{type:"button",id:"appearance-switch",onClick:s},[u(Nc,{style:{display:n.value==="auto"?"block":"none"}}),u(Mc,{style:{display:n.value==="dark"?"block":"none"}}),u($c,{style:{display:n.value==="light"?"block":"none"}})])}}),I0=G({name:"AppearanceMode",setup(){const e=pe(),{canToggle:t}=yr(),n=S(()=>e.value.outlookLocales.darkmode);return()=>t.value?u("div",{class:"appearance-wrapper"},[u("label",{class:"appearance-title",for:"appearance-switch"},n.value),u(Bc)]):null}});const Oo=Sc.enableThemeColor==="true";var jc=G({name:"ToggleFullScreenButton",setup(){const e=pe(),{isSupported:t,isFullscreen:n,toggle:r}=$s(),o=S(()=>e.value.outlookLocales.fullscreen);return()=>t?u("div",{class:"full-screen-wrapper"},[u("label",{class:"full-screen-title",for:"full-screen-switch"},o.value),u("button",{type:"button",id:"full-screen-switch",class:"full-screen",ariaPressed:n.value,onClick:()=>r()},n.value?u(Hc):u(Dc))]):null}}),Vc=G({name:"OutlookSettings",setup(){const e=Rn(),t=br(),n=S(()=>!t.value&&e.value.fullscreen);return()=>u(no,()=>[null,u(I0),n.value?u(jc):null])}}),M0=G({name:"NavScreen",props:{show:Boolean},emits:["close"],slots:Object,setup(e,{emit:t,slots:n}){const r=Se(),{isMobile:o}=so(),s=Ne(),l=Ns(s);return _e(()=>{s.value=document.body,oe(o,a=>{!a&&e.show&&(l.value=!1,t("close"))}),oe(()=>r.value.path,()=>{l.value=!1,t("close")})}),Sn(()=>{l.value=!1}),()=>u(Ut,{name:"fade",onEnter:()=>{l.value=!0},onAfterLeave:()=>{l.value=!1}},()=>{var a,i;return e.show?u("div",{id:"nav-screen"},u("div",{class:"vp-nav-screen-container"},[(a=n.before)==null?void 0:a.call(n),u(P0),u("div",{class:"vp-outlook-wrapper"},u(Vc)),(i=n.after)==null?void 0:i.call(n)])):null})}}),$0=G({name:"NavbarBrand",setup(){const e=un(),t=to(),n=pe(),r=S(()=>n.value.home||e.value),o=S(()=>t.value.title),s=S(()=>n.value.navTitle??o.value),l=S(()=>n.value.logo?Ve(n.value.logo):null),a=S(()=>n.value.logoDark?Ve(n.value.logoDark):null);return()=>u(Qe,{to:r.value,class:"vp-brand"},()=>[l.value?u("img",{class:["vp-nav-logo",{light:!!a.value}],src:l.value,alt:""}):null,a.value?u("img",{class:["vp-nav-logo dark"],src:a.value,alt:""}):null,s.value?u("span",{class:["vp-site-name",{"hide-in-pad":l.value&&n.value.hideSiteNameOnMobile!==!1}]},s.value):null])}}),N0=G({name:"NavbarLinks",setup(){const e=Ic();return()=>e.value.length?u("nav",{class:"vp-nav-links"},e.value.map(t=>u("div",{class:"vp-nav-item hide-in-mobile"},"children"in t?u(L0,{config:t}):u(qe,{config:t})))):null}}),D0=G({name:"RepoLink",setup(){const e=R0();return()=>e.value?u("div",{class:"vp-nav-item vp-action"},u("a",{class:"vp-action-link",href:e.value.link,target:"_blank",rel:"noopener noreferrer","aria-label":e.value.label},u(ov,{type:e.value.type,style:{width:"1.25rem",height:"1.25rem",verticalAlign:"middle"}}))):null}});const zc=({active:e=!1},{emit:t})=>u("button",{type:"button",class:["vp-toggle-navbar-button",{"is-active":e}],"aria-label":"Toggle Navbar","aria-expanded":e,"aria-controls":"nav-screen",onClick:()=>t("toggle")},u("span",[u("span",{class:"vp-top"}),u("span",{class:"vp-middle"}),u("span",{class:"vp-bottom"})]));zc.displayName="ToggleNavbarButton";var H0=zc;const ts=(e,{emit:t})=>u("button",{type:"button",class:"vp-toggle-sidebar-button",title:"Toggle Sidebar",onClick:()=>t("toggle")},u("span",{class:"icon"}));ts.displayName="ToggleSidebarButton",ts.emits=["toggle"];var F0=ts,B0=G({name:"OutlookButton",setup(){const{isSupported:e}=$s(),t=Rn(),n=br(),r=Se(),{canToggle:o}=yr(),s=Q(!1),l=S(()=>!n.value&&t.value.fullscreen&&e);return oe(()=>r.value.path,()=>{s.value=!1}),()=>o.value||l.value||Oo?u("div",{class:"vp-nav-item hide-in-mobile"},o.value&&!l.value&&!Oo?u(Bc):l.value&&!o.value&&!Oo?u(jc):u("button",{type:"button",class:["outlook-button",{open:s.value}],tabindex:"-1","aria-hidden":!0},[u(Fc),u("div",{class:"outlook-dropdown"},u(Vc))])):null}}),j0=G({name:"NavBar",emits:["toggleSidebar"],slots:Object,setup(e,{emit:t,slots:n}){const r=pe(),{isMobile:o}=so(),s=Q(!1),l=S(()=>{const{navbarAutoHide:f="mobile"}=r.value;return f!=="none"&&(f==="always"||o.value)}),a=S(()=>r.value.navbarLayout||{start:["Brand"],center:["Links"],end:["Language","Repo","Outlook","Search"]}),i={Brand:$0,Language:Ro,Links:N0,Repo:D0,Outlook:B0,Search:Tt("Docsearch")?wt("Docsearch"):Tt("SearchBox")?wt("SearchBox"):Ro},c=f=>i[f]??(Tt(f)?wt(f):Ro);return()=>{var f,d,p,v,m,E;return[u("header",{key:"navbar",id:"navbar",class:["vp-navbar",{"auto-hide":l.value,"hide-icon":r.value.navbarIcon===!1}]},[u("div",{class:"vp-navbar-start"},[u(F0,{onToggle:()=>{s.value&&(s.value=!1),t("toggleSidebar")}}),(f=n.startBefore)==null?void 0:f.call(n),(a.value.start||[]).map(w=>u(c(w))),(d=n.startAfter)==null?void 0:d.call(n)]),u("div",{class:"vp-navbar-center"},[(p=n.centerBefore)==null?void 0:p.call(n),(a.value.center||[]).map(w=>u(c(w))),(v=n.centerAfter)==null?void 0:v.call(n)]),u("div",{class:"vp-navbar-end"},[(m=n.endBefore)==null?void 0:m.call(n),(a.value.end||[]).map(w=>u(c(w))),(E=n.endAfter)==null?void 0:E.call(n),u(H0,{active:s.value,onToggle:()=>{s.value=!s.value}})])]),u(M0,{show:s.value,onClose:()=>{s.value=!1}},{before:()=>{var w;return(w=n.screenTop)==null?void 0:w.call(n)},after:()=>{var w;return(w=n.screenBottom)==null?void 0:w.call(n)}})]}}}),V0=G({name:"SidebarChild",props:{config:{type:Object,required:!0}},setup(e){const t=Rt();return()=>Ee(e.config.link)?u(qe,{class:["vp-sidebar-link","vp-sidebar-page",{active:lr(t,e.config,!0)}],exact:!0,config:e.config}):u("p",e,[u(Be,{icon:e.config.icon}),e.config.text])}}),z0=G({name:"SidebarGroup",props:{config:{type:Object,required:!0},open:{type:Boolean,required:!0}},emits:["toggle"],setup(e,{emit:t}){const n=Rt(),r=S(()=>lr(n,e.config)),o=S(()=>lr(n,e.config,!0));return()=>{const{collapsible:s,children:l=[],icon:a,prefix:i,link:c,text:f}=e.config;return u("section",{class:"vp-sidebar-group"},[u(s?"button":"p",{class:["vp-sidebar-header",{clickable:s||c,exact:o.value,active:r.value}],...s?{type:"button",onClick:()=>t("toggle"),onKeydown:d=>{d.key==="Enter"&&t("toggle")}}:{}},[u(Be,{icon:a}),c?u(qe,{class:"vp-sidebar-title",config:{text:f,link:c},noExternalLinkIcon:!0}):u("span",{class:"vp-sidebar-title"},f),s?u("span",{class:["vp-arrow",e.open?"down":"end"]}):null]),e.open||!s?u(qc,{key:i,config:l}):null])}}}),qc=G({name:"SidebarLinks",props:{config:{type:Array,required:!0}},setup(e){const t=Rt(),n=Q(-1),r=o=>{n.value=o===n.value?-1:o};return oe(()=>t.path,()=>{const o=e.config.findIndex(s=>Rc(t,s));n.value=o},{immediate:!0,flush:"post"}),()=>u("ul",{class:"vp-sidebar-links"},e.config.map((o,s)=>u("li",o.type==="group"?u(z0,{config:o,open:s===n.value,onToggle:()=>r(s)}):u(V0,{config:o}))))}}),q0=G({name:"SideBar",slots:Object,setup(e,{slots:t}){const n=Rt(),r=pe(),o=Us(),s=Ne();return _e(()=>{oe(()=>n.hash,l=>{const a=document.querySelector(`.vp-sidebar a.vp-sidebar-link[href="${n.path}${l}"]`);if(!a)return;const{top:i,height:c}=s.value.getBoundingClientRect(),{top:f,height:d}=a.getBoundingClientRect();fi+c&&a.scrollIntoView(!1)},{immediate:!0})}),()=>{var l,a,i;return u("aside",{ref:s,id:"sidebar",class:["vp-sidebar",{"hide-icon":r.value.sidebarIcon===!1}],key:"sidebar"},[(l=t.top)==null?void 0:l.call(t),((a=t.default)==null?void 0:a.call(t))||u(qc,{config:o.value}),(i=t.bottom)==null?void 0:i.call(t)])}}}),Uc=G({name:"CommonWrapper",props:{containerClass:{type:String,default:""},noNavbar:Boolean,noSidebar:Boolean,noToc:Boolean},slots:Object,setup(e,{slots:t}){const n=An(),r=Se(),o=Le(),s=pe(),{isMobile:l,isPC:a}=so(),[i,c]=Qo(!1),[f,d]=Qo(!1),p=Us(),v=Q(!1),m=S(()=>e.noNavbar||o.value.navbar===!1||s.value.navbar===!1?!1:!!(r.value.title||s.value.logo||s.value.repo||s.value.navbar)),E=S(()=>e.noSidebar?!1:o.value.sidebar!==!1&&p.value.length!==0&&!o.value.home),w=S(()=>e.noToc||o.value.home?!1:o.value.toc||s.value.toc!==!1&&o.value.toc!==!1),y={x:0,y:0},C=k=>{y.x=k.changedTouches[0].clientX,y.y=k.changedTouches[0].clientY},b=k=>{const q=k.changedTouches[0].clientX-y.x,N=k.changedTouches[0].clientY-y.y;Math.abs(q)>Math.abs(N)*1.5&&Math.abs(q)>40&&(q>0&&y.x<=80?c(!0):c(!1))},x=()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;let $=0;return Ce("scroll",Xh(()=>{const k=x();k<=58||k<$?v.value=!1:$+200{k||c(!1)}),_e(()=>{const k=Ns(document.body);oe(i,N=>{k.value=N});const q=n.afterEach(()=>{c(!1)});Sn(()=>{k.value=!1,q()})}),()=>u(Tt("GlobalEncrypt")?wt("GlobalEncrypt"):ic,()=>u("div",{class:["theme-container",{"no-navbar":!m.value,"no-sidebar":!E.value&&!(t.sidebar||t.sidebarTop||t.sidebarBottom),"has-toc":w.value,"hide-navbar":v.value,"sidebar-collapsed":!l.value&&!a.value&&f.value,"sidebar-open":l.value&&i.value},e.containerClass,o.value.containerClass||""],onTouchStart:C,onTouchEnd:b},[m.value?u(j0,{onToggleSidebar:()=>c()},{startBefore:()=>{var k;return(k=t.navbarStartBefore)==null?void 0:k.call(t)},startAfter:()=>{var k;return(k=t.navbarStartAfter)==null?void 0:k.call(t)},centerBefore:()=>{var k;return(k=t.navbarCenterBefore)==null?void 0:k.call(t)},centerAfter:()=>{var k;return(k=t.navbarCenterAfter)==null?void 0:k.call(t)},endBefore:()=>{var k;return(k=t.navbarEndBefore)==null?void 0:k.call(t)},endAfter:()=>{var k;return(k=t.navbarEndAfter)==null?void 0:k.call(t)},screenTop:()=>{var k;return(k=t.navScreenTop)==null?void 0:k.call(t)},screenBottom:()=>{var k;return(k=t.navScreenBottom)==null?void 0:k.call(t)}}):null,u(Ut,{name:"fade"},()=>i.value?u("div",{class:"vp-sidebar-mask",onClick:()=>c(!1)}):null),u(Ut,{name:"fade"},()=>l.value?null:u("div",{class:"toggle-sidebar-wrapper",onClick:()=>d()},u("span",{class:["arrow",f.value?"end":"start"]}))),u(q0,{},{...t.sidebar?{default:()=>t.sidebar()}:{},top:()=>{var k;return(k=t.sidebarTop)==null?void 0:k.call(t)},bottom:()=>{var k;return(k=t.sidebarBottom)==null?void 0:k.call(t)}}),t.default(),u(A0)]))}});const mn=G({name:"DropTransition",props:{type:{type:String,default:"single"},delay:{type:Number,default:0},duration:{type:Number,default:.25},appear:Boolean},slots:Object,setup(e,{slots:t}){const n=o=>{o.style.transition=`transform ${e.duration}s ease-in-out ${e.delay}s, opacity ${e.duration}s ease-in-out ${e.delay}s`,o.style.transform="translateY(-20px)",o.style.opacity="0"},r=o=>{o.style.transform="translateY(0)",o.style.opacity="1"};return()=>u(e.type==="single"?Ut:Md,{name:"drop",appear:e.appear,onAppear:n,onAfterAppear:r,onEnter:n,onAfterEnter:r,onBeforeLeave:n},()=>t.default())}}),ns=({custom:e})=>u(Hi,{class:["theme-hope-content",{custom:e}]});ns.displayName="MarkdownContent",ns.props={custom:Boolean};var Wc=ns;const Kc=()=>u(ve,{name:"author"},()=>u("path",{d:"M649.6 633.6c86.4-48 147.2-144 147.2-249.6 0-160-128-288-288-288s-288 128-288 288c0 108.8 57.6 201.6 147.2 249.6-121.6 48-214.4 153.6-240 288-3.2 9.6 0 19.2 6.4 25.6 3.2 9.6 12.8 12.8 22.4 12.8h704c9.6 0 19.2-3.2 25.6-12.8 6.4-6.4 9.6-16 6.4-25.6-25.6-134.4-121.6-240-243.2-288z"}));Kc.displayName="AuthorIcon";const Gc=()=>u(ve,{name:"calendar"},()=>u("path",{d:"M716.4 110.137c0-18.753-14.72-33.473-33.472-33.473-18.753 0-33.473 14.72-33.473 33.473v33.473h66.993v-33.473zm-334.87 0c0-18.753-14.72-33.473-33.473-33.473s-33.52 14.72-33.52 33.473v33.473h66.993v-33.473zm468.81 33.52H716.4v100.465c0 18.753-14.72 33.473-33.472 33.473a33.145 33.145 0 01-33.473-33.473V143.657H381.53v100.465c0 18.753-14.72 33.473-33.473 33.473a33.145 33.145 0 01-33.473-33.473V143.657H180.6A134.314 134.314 0 0046.66 277.595v535.756A134.314 134.314 0 00180.6 947.289h669.74a134.36 134.36 0 00133.94-133.938V277.595a134.314 134.314 0 00-133.94-133.938zm33.473 267.877H147.126a33.145 33.145 0 01-33.473-33.473c0-18.752 14.72-33.473 33.473-33.473h736.687c18.752 0 33.472 14.72 33.472 33.473a33.145 33.145 0 01-33.472 33.473z"}));Gc.displayName="CalendarIcon";const Yc=()=>u(ve,{name:"category"},()=>u("path",{d:"M148.41 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H148.41c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.311-40.31zM147.556 553.478H429.73c22.263 0 40.311 18.048 40.311 40.31v282.176c0 22.263-18.048 40.312-40.31 40.312H147.555c-22.263 0-40.311-18.049-40.311-40.312V593.79c0-22.263 18.048-40.311 40.31-40.311zM593.927 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H593.927c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.31-40.31zM730.22 920.502H623.926c-40.925 0-74.22-33.388-74.22-74.425V623.992c0-41.038 33.387-74.424 74.425-74.424h222.085c41.038 0 74.424 33.226 74.424 74.067v114.233c0 10.244-8.304 18.548-18.547 18.548s-18.548-8.304-18.548-18.548V623.635c0-20.388-16.746-36.974-37.33-36.974H624.13c-20.585 0-37.331 16.747-37.331 37.33v222.086c0 20.585 16.654 37.331 37.126 37.331H730.22c10.243 0 18.547 8.304 18.547 18.547 0 10.244-8.304 18.547-18.547 18.547z"}));Yc.displayName="CategoryIcon";const Jc=()=>u(ve,{name:"eye"},()=>u("path",{d:"M992 512.096c0-5.76-.992-10.592-1.28-11.136-.192-2.88-1.152-8.064-2.08-10.816-.256-.672-.544-1.376-.832-2.08-.48-1.568-1.024-3.104-1.6-4.32C897.664 290.112 707.104 160 512 160c-195.072 0-385.632 130.016-473.76 322.592-1.056 2.112-1.792 4.096-2.272 5.856a55.512 55.512 0 00-.64 1.6c-1.76 5.088-1.792 8.64-1.632 7.744-.832 3.744-1.568 11.168-1.568 11.168-.224 2.272-.224 4.032.032 6.304 0 0 .736 6.464 1.088 7.808.128 1.824.576 4.512 1.12 6.976h-.032c.448 2.08 1.12 4.096 1.984 6.08.48 1.536.992 2.976 1.472 4.032C126.432 733.856 316.992 864 512 864c195.136 0 385.696-130.048 473.216-321.696 1.376-2.496 2.24-4.832 2.848-6.912.256-.608.48-1.184.672-1.728 1.536-4.48 1.856-8.32 1.728-8.32l-.032.032c.608-3.104 1.568-7.744 1.568-13.28zM512 672c-88.224 0-160-71.776-160-160s71.776-160 160-160 160 71.776 160 160-71.776 160-160 160z"}));Jc.displayName="EyeIcon";const Qc=()=>u(ve,{name:"fire"},()=>u("path",{d:"M726.4 201.6c-12.8-9.6-28.8-6.4-38.4 0-9.6 9.6-16 25.6-9.6 38.4 6.4 12.8 9.6 28.8 12.8 44.8C604.8 83.2 460.8 38.4 454.4 35.2c-9.6-3.2-22.4 0-28.8 6.4-9.6 6.4-12.8 19.2-9.6 28.8 12.8 86.4-25.6 188.8-115.2 310.4-6.4-25.6-16-51.2-32-80-9.6-9.6-22.4-16-35.2-12.8-16 3.2-25.6 12.8-25.6 28.8-3.2 48-25.6 92.8-51.2 140.8C134.4 499.2 112 544 102.4 592c-32 150.4 99.2 329.6 233.6 380.8 9.6 3.2 19.2 6.4 32 9.6-25.6-19.2-41.6-51.2-48-96C294.4 691.2 505.6 640 515.2 460.8c153.6 105.6 224 336 137.6 505.6 3.2 0 6.4-3.2 9.6-3.2 0 0 3.2 0 3.2-3.2 163.2-89.6 252.8-208 259.2-345.6 16-211.2-163.2-390.4-198.4-412.8z"}));Qc.displayName="FireIcon";const Xc=()=>u(ve,{name:"print"},()=>u("path",{d:"M819.2 364.8h-44.8V128c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v236.8h-44.8C145.067 364.8 96 413.867 96 473.6v192c0 59.733 49.067 108.8 108.8 108.8h44.8V896c0 17.067 14.933 32 32 32h460.8c17.067 0 32-14.933 32-32V774.4h44.8c59.733 0 108.8-49.067 108.8-108.8v-192c0-59.733-49.067-108.8-108.8-108.8zM313.6 160h396.8v204.8H313.6V160zm396.8 704H313.6V620.8h396.8V864zM864 665.6c0 25.6-19.2 44.8-44.8 44.8h-44.8V588.8c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v121.6h-44.8c-25.6 0-44.8-19.2-44.8-44.8v-192c0-25.6 19.2-44.8 44.8-44.8h614.4c25.6 0 44.8 19.2 44.8 44.8v192z"}));Xc.displayName="PrintIcon";const Zc=()=>u(ve,{name:"tag"},()=>u("path",{d:"M939.902 458.563L910.17 144.567c-1.507-16.272-14.465-29.13-30.737-30.737L565.438 84.098h-.402c-3.215 0-5.726 1.005-7.634 2.913l-470.39 470.39a10.004 10.004 0 000 14.164l365.423 365.424c1.909 1.908 4.42 2.913 7.132 2.913s5.223-1.005 7.132-2.913l470.39-470.39c2.01-2.11 3.014-5.023 2.813-8.036zm-240.067-72.121c-35.458 0-64.286-28.828-64.286-64.286s28.828-64.285 64.286-64.285 64.286 28.828 64.286 64.285-28.829 64.286-64.286 64.286z"}));Zc.displayName="TagIcon";const eu=()=>u(ve,{name:"word"},()=>[u("path",{d:"M518.217 432.64V73.143A73.143 73.143 0 01603.43 1.097a512 512 0 01419.474 419.474 73.143 73.143 0 01-72.046 85.212H591.36a73.143 73.143 0 01-73.143-73.143z"}),u("path",{d:"M493.714 566.857h340.297a73.143 73.143 0 0173.143 85.577A457.143 457.143 0 11371.566 117.76a73.143 73.143 0 0185.577 73.143v339.383a36.571 36.571 0 0036.571 36.571z"})]);eu.displayName="WordIcon";const Qt=()=>{const e=pe();return S(()=>e.value.metaLocales)};var U0=G({name:"AuthorInfo",inheritAttrs:!1,props:{author:{type:Array,required:!0},pure:Boolean},setup(e){const t=Qt();return()=>e.author.length?u("span",{class:"page-author-info","aria-label":`${t.value.author}${e.pure?"":"🖊"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(Kc),u("span",e.author.map(n=>n.url?u("a",{class:"page-author-item",href:n.url,target:"_blank",rel:"noopener noreferrer"},n.name):u("span",{class:"page-author-item"},n.name))),u("span",{property:"author",content:e.author.map(n=>n.name).join(", ")})]):null}}),W0=G({name:"CategoryInfo",inheritAttrs:!1,props:{category:{type:Array,required:!0},pure:Boolean},setup(e){const t=Qt(),n=zs();return()=>e.category.length?u("span",{class:"page-category-info","aria-label":`${t.value.category}${e.pure?"":"🌈"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(Yc),e.category.map(({name:r,path:o})=>u("span",{class:["page-category-item",{[`category${pc(r,9)}`]:!e.pure,clickable:o}],role:o?"navigation":"",onClick:()=>{o&&n(o)}},r)),u("meta",{property:"articleSection",content:e.category.map(({name:r})=>r).join(",")})]):null}}),K0=G({name:"DateInfo",inheritAttrs:!1,props:{date:{type:Object,default:null},localizedDate:{type:String,default:""},pure:Boolean},setup(e){const t=$i(),n=Qt();return()=>e.date?u("span",{class:"page-date-info","aria-label":`${n.value.date}${e.pure?"":"📅"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(Gc),u("span",u(no,()=>e.localizedDate||e.date.toLocaleDateString(t.value))),u("meta",{property:"datePublished",content:e.date.toISOString()||""})]):null}}),G0=G({name:"OriginalInfo",inheritAttrs:!1,props:{isOriginal:Boolean},setup(e){const t=Qt();return()=>e.isOriginal?u("span",{class:"page-original-info"},t.value.origin):null}}),Y0=G({name:"PageViewInfo",inheritAttrs:!1,props:{pageview:{type:[Boolean,String],default:!1},pure:Boolean},setup(e){const t=Rt(),n=Qt(),r=Ne(),o=Q(0);return Xi(r,()=>{},{childList:!0}),()=>e.pageview?u("span",{class:"page-pageview-info","aria-label":`${n.value.views}${e.pure?"":"🔢"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(o.value<1e3?Jc:Qc),u("span",{ref:r,id:"ArtalkPV",class:"vp-pageview waline-pageview-count","data-path":Ee(e.pageview)?e.pageview:t.path,"data-page-key":Ee(e.pageview)?e.pageview:t.path},"...")]):null}}),J0=G({name:"TagInfo",inheritAttrs:!1,props:{tag:{type:Array,default:()=>[]},pure:Boolean},setup(e){const t=Qt(),n=zs();return()=>e.tag.length?u("span",{class:"page-tag-info","aria-label":`${t.value.tag}${e.pure?"":"🏷"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(Zc),e.tag.map(({name:r,path:o})=>u("span",{class:["page-tag-item",{[`tag${pc(r,9)}`]:!e.pure,clickable:o}],role:o?"navigation":"",onClick:()=>{o&&n(o)}},r)),u("meta",{property:"keywords",content:e.tag.map(({name:r})=>r).join(",")})]):null}}),Q0=G({name:"ReadTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=Qt();return()=>{var n,r,o;return(n=e.readingTimeLocale)!=null&&n.words?u("span",{class:"page-word-info","aria-label":`${t.value.words}${e.pure?"":"🔠"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(eu),u("span",(r=e.readingTimeLocale)==null?void 0:r.words),u("meta",{property:"wordCount",content:(o=e.readingTime)==null?void 0:o.words})]):null}}}),X0=G({name:"PageInfo",components:{AuthorInfo:U0,CategoryInfo:W0,DateInfo:K0,OriginalInfo:G0,PageViewInfo:Y0,ReadingTimeInfo:()=>null,TagInfo:J0,WordInfo:Q0},props:{items:{type:[Array,Boolean],default:()=>["Author","Original","Date","PageView","ReadingTime","Category","Tag"]},info:{type:Object,required:!0}},setup(e){const t=br();return()=>e.items?u("div",{class:"page-info"},e.items.map(n=>u(wt(`${n}Info`),{...e.info,pure:t.value}))):null}}),Z0=G({name:"PrintButton",setup(){const e=Rn(),t=pe();return()=>e.value.print===!1?null:u("button",{type:"button",class:"print-button",title:t.value.metaLocales.print,onClick:()=>{window.print()}},u(Xc))}}),eg=G({name:"TOC",props:{items:{type:Array,default:()=>[]},headerDepth:{type:Number,default:2}},slots:Object,setup(e,{slots:t}){const n=Rt(),r=Se(),o=Qt(),[s,l]=Qo(),a=Ne(),i=Q("-1.7rem"),c=d=>{var p;(p=a.value)==null||p.scrollTo({top:d,behavior:"smooth"})},f=()=>{if(a.value){const d=document.querySelector(".vp-toc-item.active");d?i.value=`${d.getBoundingClientRect().top-a.value.getBoundingClientRect().top+a.value.scrollTop}px`:i.value="-1.7rem"}else i.value="-1.7rem"};return _e(()=>{oe(()=>n.hash,d=>{if(a.value){const p=document.querySelector(`#toc a.toc-link[href$="${d}"]`);if(!p)return;const{top:v,height:m}=a.value.getBoundingClientRect(),{top:E,height:w}=p.getBoundingClientRect();Ev+m&&c(a.value.scrollTop+E+w-v-m)}}),oe(()=>n.fullPath,f,{flush:"post",immediate:!0})}),()=>{var m,E;const d=({title:w,level:y,slug:C})=>u(Qe,{to:`#${C}`,class:["vp-toc-link",`level${y}`],onClick:()=>{l()}},()=>w),p=(w,y)=>w.length&&y>0?u("ul",{class:"vp-toc-list"},w.map(C=>{const b=p(C.children,y-1);return[u("li",{class:["vp-toc-item",{active:n.hash===`#${C.slug}`}]},d(C)),b?u("li",b):null]})):null,v=e.items.length?p(e.items,e.headerDepth):r.value.headers?p(r.value.headers,e.headerDepth):null;return v?u("div",{class:"vp-toc-placeholder"},[u("aside",{id:"toc"},[(m=t.before)==null?void 0:m.call(t),u("div",{class:"vp-toc-header",onClick:()=>{l()}},[o.value.toc,u(Z0),u("div",{class:["arrow",s.value?"down":"end"]})]),u("div",{class:["vp-toc-wrapper",s.value?"open":""],ref:a},[v,u("div",{class:"vp-toc-marker",style:{top:i.value}})]),(E=t.after)==null?void 0:E.call(t)])]):null}}}),tu=G({name:"SkipLink",props:{content:{type:String,default:"main-content"}},setup(e){const t=Se(),n=pe(),r=Ne(),o=({target:s})=>{const l=document.querySelector(s.hash);if(l){const a=()=>{l.removeAttribute("tabindex"),l.removeEventListener("blur",a)};l.setAttribute("tabindex","-1"),l.addEventListener("blur",a),l.focus(),window.scrollTo(0,0)}};return _e(()=>{oe(()=>t.value.path,()=>r.value.focus())}),()=>[u("span",{ref:r,tabindex:"-1"}),u("a",{href:`#${e.content}`,class:"vp-skip-link sr-only",onClick:o},n.value.routeLocales.skipToContent)]}});let Po=null,Mn=null;const rs={wait:()=>Po,pending:()=>{Po=new Promise(e=>{Mn=e})},resolve:()=>{Mn==null||Mn(),Po=null,Mn=null}},nu=(e,{slots:t})=>u(Ut,{name:"fade-slide-y",mode:"out-in",onBeforeEnter:rs.resolve,onBeforeLeave:rs.pending},()=>{var n;return(n=t.default)==null?void 0:n.call(t)});nu.displayName="FadeSlideY";const tg=(e,t)=>{const n=e.replace(t,"/").split("/"),r=[];let o=As(t);return n.forEach((s,l)=>{l!==n.length-1?(o+=`${s}/`,r.push({link:o,name:s||"Home"})):s!==""&&(o+=s,r.push({link:o,name:s}))}),r},ru=(e,{slots:t})=>{var d,p;const{bgImage:n,bgImageDark:r,bgImageStyle:o,color:s,description:l,image:a,imageDark:i,header:c,features:f=[]}=e;return u("div",{class:"vp-feature-wrapper"},[n?u("div",{class:["vp-feature-bg",{light:r}],style:[{"background-image":`url(${n})`},o]}):null,r?u("div",{class:"vp-feature-bg dark",style:[{"background-image":`url(${r})`},o]}):null,u("div",{class:"vp-feature",style:s?{color:s}:{}},[((d=t.image)==null?void 0:d.call(t,e))||[a?u("img",{class:["vp-feature-image",{light:i}],src:Ve(a),alt:""}):null,i?u("img",{class:"vp-feature-image dark",src:Ve(i),alt:""}):null],((p=t.info)==null?void 0:p.call(t,e))||[c?u("h2",{class:"vp-feature-header"},c):null,l?u("p",{class:"vp-feature-description",innerHTML:l}):null],f.length?u("div",{class:"vp-features"},f.map(({icon:v,title:m,details:E,link:w})=>{const y=[u("h3",{class:"vp-feature-title"},[u(Be,{icon:v}),u("span",{innerHTML:m})]),u("p",{class:"vp-feature-details",innerHTML:E})];return w?Ts(w)?u("a",{class:"vp-feature-item link",href:w,"aria-label":m,target:"_blank"},y):u(Qe,{class:"vp-feature-item link",to:w,"aria-label":m},()=>y):u("div",{class:"vp-feature-item"},y)})):null])])};ru.displayName="FeaturePanel";var da=ru,ng=G({name:"HeroInfo",slots:Object,setup(e,{slots:t}){const n=Le(),r=to(),o=S(()=>n.value.heroFullScreen??!1),s=S(()=>{const{heroText:c,tagline:f}=n.value;return{text:c??r.value.title??"Hello",tagline:f??r.value.description??"",isFullScreen:o.value}}),l=S(()=>{const{heroText:c,heroImage:f,heroImageDark:d,heroAlt:p,heroImageStyle:v}=n.value;return{image:f?Ve(f):null,imageDark:d?Ve(d):null,style:v,alt:p||c||"",isFullScreen:o.value}}),a=S(()=>{const{bgImage:c,bgImageDark:f,bgImageStyle:d}=n.value;return{image:Ee(c)?Ve(c):null,imageDark:Ee(f)?Ve(f):null,bgStyle:d,isFullScreen:o.value}}),i=S(()=>n.value.actions??[]);return()=>{var c,f,d;return u("header",{class:["vp-hero-info-wrapper",{fullscreen:o.value}]},[((c=t.heroBg)==null?void 0:c.call(t,a.value))||[a.value.image?u("div",{class:["vp-hero-mask",{light:a.value.imageDark}],style:[{"background-image":`url(${a.value.image})`},a.value.bgStyle]}):null,a.value.imageDark?u("div",{class:"vp-hero-mask dark",style:[{"background-image":`url(${a.value.imageDark})`},a.value.bgStyle]}):null],u("div",{class:"vp-hero-info"},[((f=t.heroImage)==null?void 0:f.call(t,l.value))||u(mn,{appear:!0,type:"group"},()=>[l.value.image?u("img",{key:"light",class:["vp-hero-image",{light:l.value.imageDark}],style:l.value.style,src:l.value.image,alt:l.value.alt}):null,l.value.imageDark?u("img",{key:"dark",class:"vp-hero-image dark",style:l.value.style,src:l.value.imageDark,alt:l.value.alt}):null]),((d=t.heroInfo)==null?void 0:d.call(t,s.value))??u("div",{class:"vp-hero-infos"},[s.value.text?u(mn,{appear:!0,delay:.04},()=>u("h1",{id:"main-title"},s.value.text)):null,s.value.tagline?u(mn,{appear:!0,delay:.08},()=>u("p",{id:"main-description",innerHTML:s.value.tagline})):null,i.value.length?u(mn,{appear:!0,delay:.12},()=>u("p",{class:"vp-hero-actions"},i.value.map(p=>u(qe,{class:["vp-hero-action",p.type||"default"],config:p,noExternalLinkIcon:!0},p.icon?{before:()=>u(Be,{icon:p.icon})}:{})))):null])])])}}});const ou=(e,{slots:t})=>{var p,v,m;const{bgImage:n,bgImageDark:r,bgImageStyle:o,color:s,description:l,image:a,imageDark:i,header:c,highlights:f=[],type:d="un-order"}=e;return u("div",{class:"vp-highlight-wrapper",style:s?{color:s}:{}},[n?u("div",{class:["vp-highlight-bg",{light:r}],style:[{"background-image":`url(${n})`},o]}):null,r?u("div",{class:"vp-highlight-bg dark",style:[{"background-image":`url(${r})`},o]}):null,u("div",{class:"vp-highlight"},[((p=t.image)==null?void 0:p.call(t,e))||[a?u("img",{class:["vp-highlight-image",{light:i}],src:Ve(a),alt:""}):null,i?u("img",{class:"vp-highlight-image dark",src:Ve(i),alt:""}):null],((v=t.info)==null?void 0:v.call(t,e))||[u("div",{class:"vp-highlight-info-wrapper"},u("div",{class:"vp-highlight-info"},[c?u("h2",{class:"vp-highlight-header",innerHTML:c}):null,l?u("p",{class:"vp-highlight-description",innerHTML:l}):null,((m=t.highlights)==null?void 0:m.call(t,f))||u(d==="order"?"ol":d==="no-order"?"dl":"ul",{class:"vp-highlights"},f.map(({icon:E,title:w,details:y,link:C})=>{const b=[u(d==="no-order"?"dt":"h3",{class:"vp-highlight-title"},[E?u(Be,{class:"vp-highlight-icon",icon:E}):null,u("span",{innerHTML:w})]),y?u(d==="no-order"?"dd":"p",{class:"vp-highlight-details",innerHTML:y}):null];return u(d==="no-order"?"div":"li",{class:["vp-highlight-item-wrapper",{link:C}]},C?Ts(C)?u("a",{class:"vp-highlight-item link",href:C,"aria-label":w,target:"_blank"},b):u(Qe,{class:"vp-highlight-item link",to:C,"aria-label":w},()=>b):u("div",{class:"vp-highlight-item"},b))}))]))]])])};ou.displayName="HighlightPanel";var rg=ou,og=G({name:"HomePage",slots:Object,setup(e,{slots:t}){const n=br(),r=Le(),o=S(()=>{const{features:l}=r.value;return Yo(l)?l:null}),s=S(()=>{const{highlights:l}=r.value;return Yo(l)?l:null});return()=>{var l,a,i,c;return u("main",{id:"main-content",class:["vp-project-home ",{pure:n.value}],"aria-labelledby":r.value.heroText===null?"":"main-title"},[(l=t.top)==null?void 0:l.call(t),u(ng),((a=s.value)==null?void 0:a.map(f=>"features"in f?u(da,f):u(rg,f)))||(o.value?u(mn,{appear:!0,delay:.24},()=>u(da,{features:o.value})):null),(i=t.center)==null?void 0:i.call(t),u(mn,{appear:!0,delay:.32},()=>u(Wc)),(c=t.bottom)==null?void 0:c.call(t)])}}}),sg=G({name:"BreadCrumb",setup(){const e=Se(),t=un(),n=Le(),r=pe(),o=Ne([]),s=S(()=>(n.value.breadcrumb||n.value.breadcrumb!==!1&&r.value.breadcrumb!==!1)&&o.value.length>1),l=S(()=>n.value.breadcrumbIcon||n.value.breadcrumbIcon!==!1&&r.value.breadcrumbIcon!==!1),a=()=>{const i=tg(e.value.path,t.value).map(({link:c,name:f})=>{const{path:d,meta:p,notFound:v}=Wt(c);return v||p[yt.breadcrumbExclude]?null:{title:p[yt.shortTitle]||p[yt.title]||f,icon:p[yt.icon],path:d}}).filter(c=>c!==null);i.length>1&&(o.value=i)};return _e(()=>{oe(()=>e.value.path,a,{immediate:!0})}),()=>u("nav",{class:["vp-breadcrumb",{disable:!s.value}]},s.value?u("ol",{vocab:"https://schema.org/",typeof:"BreadcrumbList"},o.value.map((i,c)=>u("li",{class:{"is-active":o.value.length-1===c},property:"itemListElement",typeof:"ListItem"},[u(Qe,{to:i.path,property:"item",typeof:"WebPage"},()=>[l.value?u(Be,{icon:i.icon}):null,u("span",{property:"name"},i.title||"Unknown")]),u("meta",{property:"position",content:c+1})]))):[])}});const pa=(e,t)=>e===!1||Xr(e)?e:Ee(e)?qs(e,!0,t):null,os=(e,t,n)=>{const r=e.findIndex(o=>o.link===t);if(r!==-1){const o=e[r+n];return o!=null&&o.link?o:null}for(const o of e)if("children"in o){const s=os(o.children,t,n);if(s)return s}return null};var lg=G({name:"PageNav",setup(){const e=pe(),t=Le(),n=Us(),r=Se(),o=zs(),s=Rt(),l=S(()=>{const i=pa(t.value.prev,s.path);return i===!1?null:i||(e.value.prevLink===!1?null:os(n.value,r.value.path,-1))}),a=S(()=>{const i=pa(t.value.next,s.path);return i===!1?null:i||(e.value.nextLink===!1?null:os(n.value,r.value.path,1))});return Ce("keydown",i=>{i.altKey&&(i.key==="ArrowRight"?a.value&&(o(a.value.link),i.preventDefault()):i.key==="ArrowLeft"&&l.value&&(o(l.value.link),i.preventDefault()))}),()=>l.value||a.value?u("nav",{class:"vp-page-nav"},[l.value?u(qe,{class:"prev",config:l.value},()=>{var i,c;return[u("div",{class:"hint"},[u("span",{class:"arrow start"}),e.value.metaLocales.prev]),u("div",{class:"link"},[u(Be,{icon:(i=l.value)==null?void 0:i.icon}),(c=l.value)==null?void 0:c.text])]}):null,a.value?u(qe,{class:"next",config:a.value},()=>{var i,c;return[u("div",{class:"hint"},[e.value.metaLocales.next,u("span",{class:"arrow end"})]),u("div",{class:"link"},[(i=a.value)==null?void 0:i.text,u(Be,{icon:(c=a.value)==null?void 0:c.icon})])]}):null]):null}});const ag=()=>{const e=pe(),t=Se(),n=Le();return S(()=>{var r;return n.value.contributors??e.value.contributors??!0?((r=t.value.git)==null?void 0:r.contributors)??null:null})},ig={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},cg=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:r,editLinkPattern:o})=>{if(!r)return null;const s=Hs(e);let l;return o?l=o:s!==null&&(l=ig[s]),l?l.replace(/:repo/u,cn(e)?e:`https://github.com/${e}`).replace(/:branch/u,t).replace(/:path/u,Ci(`${As(n)}/${r}`)):null},ug=()=>{const e=pe(),t=Se(),n=Le();return S(()=>{const{repo:r,docsRepo:o=r,docsBranch:s="main",docsDir:l="",editLink:a,editLinkPattern:i=""}=e.value;if(!(n.value.editLink??a??!0)||!o)return null;const c=cg({docsRepo:o,docsBranch:s,docsDir:l,editLinkPattern:i,filePathRelative:t.value.filePathRelative});return c?{text:e.value.metaLocales.editLink,link:c}:null})},fg=()=>{const e=to(),t=pe(),n=Se(),r=Le();return S(()=>{var o,s;return!(r.value.lastUpdated??t.value.lastUpdated??!0)||!((o=n.value.git)!=null&&o.updatedTime)?null:new Date((s=n.value.git)==null?void 0:s.updatedTime).toLocaleString(e.value.lang)})};var dg=G({name:"PageTitle",setup(){const e=Se(),t=Le(),n=pe(),{info:r,items:o}=b0();return()=>u("div",{class:"vp-page-title"},[u("h1",[n.value.titleIcon===!1?null:u(Be,{icon:t.value.icon}),e.value.title]),u(X0,{info:r.value,...o.value===null?{}:{items:o.value}}),u("hr")])}});const su=()=>u(ve,{name:"edit"},()=>[u("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),u("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})]);su.displayName="EditIcon";var pg=G({name:"PageMeta",setup(){const e=pe(),t=ug(),n=fg(),r=ag();return()=>{const{metaLocales:o}=e.value;return u("footer",{class:"vp-page-meta"},[t.value?u("div",{class:"vp-meta-item edit-link"},u(qe,{class:"vp-meta-label",config:t.value},{before:()=>u(su)})):null,u("div",{class:"vp-meta-item git-info"},[n.value?u("div",{class:"update-time"},[u("span",{class:"vp-meta-label"},`${o.lastUpdated}: `),u(no,()=>u("span",{class:"vp-meta-info"},n.value))]):null,r.value&&r.value.length?u("div",{class:"contributors"},[u("span",{class:"vp-meta-label"},`${o.contributors}: `),r.value.map(({email:s,name:l},a)=>[u("span",{class:"vp-meta-info",title:`email: ${s}`},l),a!==r.value.length-1?",":""])]):null])])}}}),hg=G({name:"NormalPage",slots:Object,setup(e,{slots:t}){const n=Le(),{isDarkmode:r}=yr(),o=pe(),s=S(()=>n.value.toc||n.value.toc!==!1&&o.value.toc!==!1);return()=>u("main",{id:"main-content",class:"vp-page"},u(Tt("LocalEncrypt")?wt("LocalEncrypt"):ic,()=>{var l,a,i,c;return[(l=t.top)==null?void 0:l.call(t),n.value.cover?u("div",{class:"page-cover"},u("img",{src:Ve(n.value.cover),alt:"","no-view":""})):null,u(sg),u(dg),s.value?u(eg,{headerDepth:n.value.headerDepth??o.value.headerDepth??2},{before:()=>{var f;return(f=t.tocBefore)==null?void 0:f.call(t)},after:()=>{var f;return(f=t.tocAfter)==null?void 0:f.call(t)}}):null,(a=t.contentBefore)==null?void 0:a.call(t),u(Wc),(i=t.contentAfter)==null?void 0:i.call(t),u(pg),u(lg),Tt("CommentService")?u(wt("CommentService"),{darkmode:r.value}):null,(c=t.bottom)==null?void 0:c.call(t)]}))}}),vg=G({name:"Layout",slots:Object,setup(e,{slots:t}){pe();const n=Se(),r=Le(),{isMobile:o}=so(),s=S(()=>"none");return()=>[u(tu),u(Uc,{},{default:()=>{var l;return((l=t.default)==null?void 0:l.call(t))||(r.value.home?u(og):u(nu,()=>u(hg,{key:n.value.path},{top:()=>{var a;return(a=t.top)==null?void 0:a.call(t)},bottom:()=>{var a;return(a=t.bottom)==null?void 0:a.call(t)},contentBefore:()=>{var a;return(a=t.contentBefore)==null?void 0:a.call(t)},contentAfter:()=>{var a;return(a=t.contentAfter)==null?void 0:a.call(t)},tocBefore:()=>{var a;return(a=t.tocBefore)==null?void 0:a.call(t)},tocAfter:()=>{var a;return(a=t.tocAfter)==null?void 0:a.call(t)}})))},...s.value==="none"?{}:{navScreenBottom:()=>u(wt("BloggerInfo"))},...!o.value&&s.value==="always"?{sidebar:()=>u(wt("BloggerInfo"))}:{}})]}}),gg=G({name:"NotFoundHint",setup(){const e=pe(),t=()=>{const n=e.value.routeLocales.notFoundMsg;return n[Math.floor(Math.random()*n.length)]};return()=>u("div",{class:"not-found-hint"},[u("p",{class:"error-code"},"404"),u("h1",{class:"error-title"},e.value.routeLocales.notFoundTitle),u("p",{class:"error-hint"},t())])}}),mg=G({name:"NotFound",slots:Object,setup(e,{slots:t}){const n=An(),r=un(),o=pe();return()=>[u(tu),u(Uc,{noSidebar:!0},()=>{var s;return u("main",{id:"main-content",class:"vp-page not-found"},((s=t.default)==null?void 0:s.call(t))||[u(gg),u("div",{class:"actions"},[u("button",{type:"button",class:"action-button",onClick:()=>{window.history.go(-1)}},o.value.routeLocales.back),u("button",{type:"button",class:"action-button",onClick:()=>{n.push(o.value.home??r.value)}},o.value.routeLocales.home)])])})]}});C1(e=>{const t=e.t,n=e.I!==!1,r=e.i;return n?{title:t,content:r?()=>[u(Be,{icon:r}),t]:null,order:e.O,index:e.I}:null});const bg=lt({enhance:({app:e,router:t})=>{const{scrollBehavior:n}=t.options;t.options.scrollBehavior=async(...r)=>(await rs.wait(),n(...r)),_0(e),e.component("HopeIcon",Be)},setup:()=>{E0(),T0()},layouts:{Layout:vg,NotFound:mg}}),Pr=[vh,jh,E1,A1,O1,$1,F1,q1,tv,Cv,Dv,a0,bg],yg=JSON.parse('{"base":"/","lang":"en-US","title":"Taskiq","description":"Async Distributed Task Manager","head":[["meta",{"property":"og:image","content":"https://taskiq-python.github.io/logo.svg"}]],"locales":{}}');var Nn=Ne(yg),wg=Ip,_g=()=>{const e=sh({history:wg(As("/")),routes:[{name:"vuepress-route",path:"/:catchAll(.*)",components:{}}],scrollBehavior:(t,n,r)=>r||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{if(t.path!==n.path||n===xt){const r=Wt(t.path);if(r.path!==t.path)return r.path;const o=await r.loader();t.meta={...r.meta,_pageChunk:o}}else t.path===n.path&&(t.meta=n.meta)}),e},Eg=e=>{e.component("ClientOnly",no),e.component("Content",Hi),e.component("RouteLink",Qe)},Cg=(e,t,n)=>{const r=S(()=>t.currentRoute.value.path),o=ys((w,y)=>({get(){return w(),t.currentRoute.value.meta._pageChunk},set(C){t.currentRoute.value.meta._pageChunk=C,y()}})),s=S(()=>en.resolveLayouts(n)),l=S(()=>en.resolveRouteLocale(Nn.value.locales,r.value)),a=S(()=>en.resolveSiteLocaleData(Nn.value,l.value)),i=S(()=>o.value.comp),c=S(()=>o.value.data),f=S(()=>c.value.frontmatter),d=S(()=>en.resolvePageHeadTitle(c.value,a.value)),p=S(()=>en.resolvePageHead(d.value,f.value,a.value)),v=S(()=>en.resolvePageLang(c.value,a.value)),m=S(()=>en.resolvePageLayout(c.value,s.value)),E={layouts:s,pageData:c,pageComponent:i,pageFrontmatter:f,pageHead:p,pageHeadTitle:d,pageLang:v,pageLayout:m,redirects:Wo,routeLocale:l,routePath:r,routes:rr,siteData:Nn,siteLocaleData:a};return e.provide(Os,E),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>f.value},$head:{get:()=>p.value},$headTitle:{get:()=>d.value},$lang:{get:()=>v.value},$page:{get:()=>c.value},$routeLocale:{get:()=>l.value},$site:{get:()=>Nn.value},$siteLocale:{get:()=>a.value},$withBase:{get:()=>Ve}}),E},kg=()=>{const e=ih(),t=$i();let n=[];const r=()=>{e.value.forEach(l=>{const a=xg(l);a&&n.push(a)})},o=()=>{const l=[];return e.value.forEach(a=>{const i=Sg(a);i&&l.push(i)}),l},s=()=>{document.documentElement.lang=t.value;const l=o();n.forEach((a,i)=>{const c=l.findIndex(f=>a.isEqualNode(f));c===-1?(a.remove(),delete n[i]):l.splice(c,1)}),l.forEach(a=>document.head.appendChild(a)),n=[...n.filter(a=>!!a),...l]};an(fh,s),_e(()=>{r(),oe(e,s,{immediate:!1})})},xg=([e,t,n=""])=>{const r=Object.entries(t).map(([a,i])=>Ee(i)?`[${a}=${JSON.stringify(i)}]`:i===!0?`[${a}]`:"").join(""),o=`head > ${e}${r}`;return Array.from(document.querySelectorAll(o)).find(a=>a.innerText===n)||null},Sg=([e,t,n])=>{if(!Ee(e))return null;const r=document.createElement(e);return Xr(t)&&Object.entries(t).forEach(([o,s])=>{Ee(s)?r.setAttribute(o,s):s===!0&&r.setAttribute(o,"")}),Ee(n)&&r.appendChild(document.createTextNode(n)),r},Tg=jd,Ag=async()=>{var n;const e=Tg({name:"Vuepress",setup(){var s;kg();for(const l of Pr)(s=l.setup)==null||s.call(l);const r=Pr.flatMap(({rootComponents:l=[]})=>l.map(a=>u(a))),o=ch();return()=>[u(o.value),r]}}),t=_g();Eg(e),Cg(e,t,Pr);for(const r of Pr)await((n=r.enhance)==null?void 0:n.call(r,{app:e,router:t,siteData:Nn}));return e.use(t),{app:e,router:t}};Ag().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{_e as A,Mg as B,Kv as C,Sn as D,Ig as E,Xr as F,Bv as G,Vv as H,Ji as I,zr as J,Ee as K,Bs as P,Qe as R,ce as _,Og as a,fi as b,Rg as c,Ag as createVueApp,di as d,Re as e,G as f,An as g,un as h,Jt as i,ur as j,Q as k,S as l,Ce as m,oe as n,Lg as o,u as p,Ec as q,wt as r,jv as s,Kr as t,Pg as u,Hv as v,sf as w,Fv as x,Se as y,Ne as z}; + */const le={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},status:null,set:e=>{const t=le.isStarted();e=So(e,le.settings.minimum,1),le.status=e===1?null:e;const n=le.render(!t),r=n.querySelector(le.settings.barSelector),o=le.settings.speed,s=le.settings.easing;return n.offsetWidth,N1(l=>{Or(r,{transform:"translate3d("+ra(e)+"%,0,0)",transition:"all "+o+"ms "+s}),e===1?(Or(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(function(){Or(n,{transition:"all "+o+"ms linear",opacity:"0"}),setTimeout(function(){le.remove(),l()},o)},o)):setTimeout(()=>l(),o)}),le},isStarted:()=>typeof le.status=="number",start:()=>{le.status||le.set(0);const e=()=>{setTimeout(()=>{le.status&&(le.trickle(),e())},le.settings.trickleSpeed)};return le.settings.trickle&&e(),le},done:e=>!e&&!le.status?le:le.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=le.status;return t?(typeof e!="number"&&(e=(1-t)*So(Math.random()*t,.1,.95)),t=So(t+e,0,.994),le.set(t)):le.start()},trickle:()=>le.inc(Math.random()*le.settings.trickleRate),render:e=>{if(le.isRendered())return document.getElementById("nprogress");oa(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=le.settings.template;const n=t.querySelector(le.settings.barSelector),r=e?"-100":ra(le.status||0),o=document.querySelector(le.settings.parent);return Or(n,{transition:"all 0 linear",transform:"translate3d("+r+"%,0,0)"}),o!==document.body&&oa(o,"nprogress-custom-parent"),o==null||o.appendChild(t),t},remove:()=>{sa(document.documentElement,"nprogress-busy"),sa(document.querySelector(le.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&D1(e)},isRendered:()=>!!document.getElementById("nprogress")},So=(e,t,n)=>en?n:e,ra=e=>(-1+e)*100,N1=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),Or=function(){const e=["Webkit","O","Moz","ms"],t={};function n(l){return l.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(a,i){return i.toUpperCase()})}function r(l){const a=document.body.style;if(l in a)return l;let i=e.length;const c=l.charAt(0).toUpperCase()+l.slice(1);let f;for(;i--;)if(f=e[i]+c,f in a)return f;return l}function o(l){return l=n(l),t[l]??(t[l]=r(l))}function s(l,a,i){a=o(a),l.style[a]=i}return function(l,a){for(const i in a){const c=a[i];c!==void 0&&Object.prototype.hasOwnProperty.call(a,i)&&s(l,i,c)}}}(),oc=(e,t)=>(typeof e=="string"?e:Ds(e)).indexOf(" "+t+" ")>=0,oa=(e,t)=>{const n=Ds(e),r=n+t;oc(n,t)||(e.className=r.substring(1))},sa=(e,t)=>{const n=Ds(e);if(!oc(e,t))return;const r=n.replace(" "+t+" "," ");e.className=r.substring(1,r.length-1)},Ds=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),D1=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)},H1=()=>{_e(()=>{const e=An(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||le.start()}),e.afterEach(n=>{t.add(n.path),le.done()})})},F1=lt({setup(){H1()}}),B1=JSON.parse(`{"encrypt":{},"logo":"/logo.svg","repo":"taskiq-python/taskiq","docsBranch":"master","docsDir":"docs","navbarAutoHide":"none","pure":true,"locales":{"/":{"lang":"en-US","navbarLocales":{"langName":"English","selectLangAriaLabel":"Select language"},"metaLocales":{"author":"Author","date":"Writing Date","origin":"Original","views":"Page views","category":"Category","tag":"Tag","readingTime":"Reading Time","words":"Words","toc":"On This Page","prev":"Prev","next":"Next","lastUpdated":"Last update","contributors":"Contributors","editLink":"Edit this page","print":"Print"},"outlookLocales":{"themeColor":"Theme Color","darkmode":"Theme Mode","fullscreen":"Full Screen"},"routeLocales":{"skipToContent":"Skip to main content","notFoundTitle":"Page not found","notFoundMsg":["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],"back":"Go back","home":"Take me home","openInNewWindow":"Open in new window"},"sidebar":"structure"}}}`),j1=Q(B1),sc=()=>j1,lc=Symbol(""),V1=()=>{const e=ke(lc);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},z1=(e,t)=>{const{locales:n,...r}=e;return{...r,...n==null?void 0:n[t]}},q1=lt({enhance({app:e}){const t=sc(),n=e._context.provides[Os],r=S(()=>z1(t.value,n.routeLocale.value));e.provide(lc,r),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return r.value}}})}}),U1=/\b(?:Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini)/i,W1=()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator&&U1.test(navigator.userAgent),K1=({delay:e=500,duration:t=2e3,locales:n,selector:r,showInMobile:o})=>{const{copy:s,copied:l}=s1({legacy:!0,copiedDuring:t}),a=Jt(n),i=Se(),c=p=>{if(!p.hasAttribute("copy-code-registered")){const v=document.createElement("button");v.type="button",v.classList.add("vp-copy-code-button"),v.innerHTML='
',v.setAttribute("aria-label",a.value.copy),v.setAttribute("data-copied",a.value.copied),p.parentElement&&p.parentElement.insertBefore(v,p),p.setAttribute("copy-code-registered","")}},f=()=>{Yt().then(()=>Wi(e)).then(()=>{r.forEach(p=>{document.querySelectorAll(p).forEach(c)})})},d=(p,v,m)=>{let{innerText:E=""}=v;/language-(shellscript|shell|bash|sh|zsh)/.test(p.classList.toString())&&(E=E.replace(/^ *(\$|>) /gm,"")),s(E).then(()=>{m.classList.add("copied"),oe(l,()=>{m.classList.remove("copied"),m.blur()},{once:!0})})};_e(()=>{const p=!W1()||o;p&&f(),Ce("click",v=>{const m=v.target;if(m.matches('div[class*="language-"] > button.copy')){const E=m.parentElement,w=m.nextElementSibling;w&&d(E,w,m)}else if(m.matches('div[class*="language-"] div.vp-copy-icon')){const E=m.parentElement,w=E.parentElement,y=E.nextElementSibling;y&&d(w,y,E)}}),oe(()=>i.value.path,()=>{p&&f()})})};var G1={"/":{copy:"Copy code",copied:"Copied"}},Y1=['.theme-hope-content div[class*="language-"] pre'];const J1=500,Q1=2e3,X1=G1,Z1=Y1,ev=!0,tv=lt({setup:()=>{K1({selector:Z1,locales:X1,duration:Q1,delay:J1,showInMobile:ev})}}),nv=()=>{Ce("beforeprint",()=>{document.querySelectorAll("details").forEach(e=>{e.open=!0})})},ve=({name:e="",color:t="currentColor"},{slots:n})=>{var r;return u("svg",{xmlns:"http://www.w3.org/2000/svg",class:["icon",`${e}-icon`],viewBox:"0 0 1024 1024",fill:t,"aria-label":`${e} icon`},(r=n.default)==null?void 0:r.call(n))};ve.displayName="IconBase";const ac=({size:e=48,stroke:t=4,wrapper:n=!0,height:r=2*e})=>{const o=u("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,preserveAspectRatio:"xMidYMid",viewBox:"25 25 50 50"},[u("animateTransform",{attributeName:"transform",type:"rotate",dur:"2s",keyTimes:"0;1",repeatCount:"indefinite",values:"0;360"}),u("circle",{cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":t,"stroke-linecap":"round"},[u("animate",{attributeName:"stroke-dasharray",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"1,200;90,200;1,200"}),u("animate",{attributeName:"stroke-dashoffset",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"0;-35px;-125px"})])]);return n?u("div",{class:"loading-icon-wrapper",style:`display:flex;align-items:center;justify-content:center;height:${r}px`},o):o};ac.displayName="LoadingIcon";const ic=(e,{slots:t})=>{var n;return(n=t.default)==null?void 0:n.call(t)},rv=e=>cn(e)?e:`https://github.com/${e}`,Hs=(e="")=>!cn(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null,cc=()=>u(ve,{name:"github"},()=>u("path",{d:"M511.957 21.333C241.024 21.333 21.333 240.981 21.333 512c0 216.832 140.544 400.725 335.574 465.664 24.49 4.395 32.256-10.07 32.256-23.083 0-11.69.256-44.245 0-85.205-136.448 29.61-164.736-64.64-164.736-64.64-22.315-56.704-54.4-71.765-54.4-71.765-44.587-30.464 3.285-29.824 3.285-29.824 49.195 3.413 75.179 50.517 75.179 50.517 43.776 75.008 114.816 53.333 142.762 40.79 4.523-31.66 17.152-53.377 31.19-65.537-108.971-12.458-223.488-54.485-223.488-242.602 0-53.547 19.114-97.323 50.517-131.67-5.035-12.33-21.93-62.293 4.779-129.834 0 0 41.258-13.184 134.912 50.346a469.803 469.803 0 0 1 122.88-16.554c41.642.213 83.626 5.632 122.88 16.554 93.653-63.488 134.784-50.346 134.784-50.346 26.752 67.541 9.898 117.504 4.864 129.834 31.402 34.347 50.474 78.123 50.474 131.67 0 188.586-114.73 230.016-224.042 242.09 17.578 15.232 33.578 44.672 33.578 90.454v135.85c0 13.142 7.936 27.606 32.854 22.87C862.25 912.597 1002.667 728.747 1002.667 512c0-271.019-219.648-490.667-490.71-490.667z"}));cc.displayName="GitHubIcon";const uc=()=>u(ve,{name:"gitee"},()=>u("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm242.97-533.34H482.39a23.7 23.7 0 0 0-23.7 23.7l-.03 59.28c0 13.08 10.59 23.7 23.7 23.7h165.96a23.7 23.7 0 0 1 23.7 23.7v11.85a71.1 71.1 0 0 1-71.1 71.1H375.71a23.7 23.7 0 0 1-23.7-23.7V423.11a71.1 71.1 0 0 1 71.1-71.1h331.8a23.7 23.7 0 0 0 23.7-23.7l.06-59.25a23.73 23.73 0 0 0-23.7-23.73H423.11a177.78 177.78 0 0 0-177.78 177.75v331.83c0 13.08 10.62 23.7 23.7 23.7h349.62a159.99 159.99 0 0 0 159.99-159.99V482.33a23.7 23.7 0 0 0-23.7-23.7z"}));uc.displayName="GiteeIcon";const fc=()=>u(ve,{name:"bitbucket"},()=>u("path",{d:"M575.256 490.862c6.29 47.981-52.005 85.723-92.563 61.147-45.714-20.004-45.714-92.562-1.133-113.152 38.29-23.442 93.696 7.424 93.696 52.005zm63.451-11.996c-10.276-81.152-102.29-134.839-177.152-101.156-47.433 21.138-79.433 71.424-77.129 124.562 2.853 69.705 69.157 126.866 138.862 120.576S647.3 548.571 638.708 478.83zm136.558-309.723c-25.161-33.134-67.986-38.839-105.728-45.13-106.862-17.151-216.576-17.7-323.438 1.134-35.438 5.706-75.447 11.996-97.719 43.996 36.572 34.304 88.576 39.424 135.424 45.129 84.553 10.862 171.447 11.447 256 .585 47.433-5.705 99.987-10.276 135.424-45.714zm32.585 591.433c-16.018 55.99-6.839 131.438-66.304 163.986-102.29 56.576-226.304 62.867-338.87 42.862-59.43-10.862-129.135-29.696-161.72-85.723-14.3-54.858-23.442-110.848-32.585-166.84l3.438-9.142 10.276-5.157c170.277 112.567 408.576 112.567 579.438 0 26.844 8.01 6.84 40.558 6.29 60.014zm103.424-549.157c-19.42 125.148-41.728 249.71-63.415 374.272-6.29 36.572-41.728 57.162-71.424 72.558-106.862 53.724-231.424 62.866-348.562 50.286-79.433-8.558-160.585-29.696-225.134-79.433-30.28-23.443-30.28-63.415-35.986-97.134-20.005-117.138-42.862-234.277-57.161-352.585 6.839-51.42 64.585-73.728 107.447-89.71 57.16-21.138 118.272-30.866 178.87-36.571 129.134-12.58 261.157-8.01 386.304 28.562 44.581 13.13 92.563 31.415 122.844 69.705 13.714 17.7 9.143 40.01 6.29 60.014z"}));fc.displayName="BitbucketIcon";const dc=()=>u(ve,{name:"source"},()=>u("path",{d:"M601.92 475.2c0 76.428-8.91 83.754-28.512 99.594-14.652 11.88-43.956 14.058-78.012 16.434-18.81 1.386-40.392 2.97-62.172 6.534-18.612 2.97-36.432 9.306-53.064 17.424V299.772c37.818-21.978 63.36-62.766 63.36-109.692 0-69.894-56.826-126.72-126.72-126.72S190.08 120.186 190.08 190.08c0 46.926 25.542 87.714 63.36 109.692v414.216c-37.818 21.978-63.36 62.766-63.36 109.692 0 69.894 56.826 126.72 126.72 126.72s126.72-56.826 126.72-126.72c0-31.086-11.286-59.598-29.7-81.576 13.266-9.504 27.522-17.226 39.996-19.206 16.038-2.574 32.868-3.762 50.688-5.148 48.312-3.366 103.158-7.326 148.896-44.55 61.182-49.698 74.25-103.158 75.24-187.902V475.2h-126.72zM316.8 126.72c34.848 0 63.36 28.512 63.36 63.36s-28.512 63.36-63.36 63.36-63.36-28.512-63.36-63.36 28.512-63.36 63.36-63.36zm0 760.32c-34.848 0-63.36-28.512-63.36-63.36s28.512-63.36 63.36-63.36 63.36 28.512 63.36 63.36-28.512 63.36-63.36 63.36zM823.68 158.4h-95.04V63.36h-126.72v95.04h-95.04v126.72h95.04v95.04h126.72v-95.04h95.04z"}));dc.displayName="SourceIcon";const ov=({link:e,type:t=Hs(e??"")})=>{if(!t)return null;const n=t.toLowerCase();return u(n==="bitbucket"?fc:n==="github"?cc:n==="gitlab"?"GitLab":n==="gitee"?uc:dc)};function sv(){const e=Q(!1),t=Tn();return t&&_e(()=>{e.value=!0},t),e}function lv(e){return sv(),S(()=>!!e())}const av=()=>lv(()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator),iv=()=>{const e=av();return S(()=>e.value&&/\b(?:Android|iPhone)/i.test(navigator.userAgent))},cv=e=>[/\((ipad);[-\w),; ]+apple/i,/applecoremedia\/[\w.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i].some(t=>t.test(e)),uv=e=>[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i].some(t=>t.test(e)),fv=e=>[/(mac os x) ?([\w. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i].some(t=>t.test(e)),dv=(e,t=0)=>{let n=3735928559^t,r=1103547991^t;for(let o=0,s;o>>16,2246822507),n^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)},pc=(e,t)=>dv(e)%t,hc=/#.*$/u,pv=e=>{const t=hc.exec(e);return t?t[0]:""},la=e=>decodeURI(e).replace(hc,"").replace(/\/index\.html$/iu,"/").replace(/\.html$/iu,"").replace(/(README|index)?\.md$/iu,""),vc=(e,t)=>{if(!Ih(t))return!1;const n=la(e.path),r=la(t),o=pv(t);return o?o===e.hash&&(!r||n===r):n===r};var hv=e=>Object.prototype.toString.call(e)==="[object Object]",sr=e=>typeof e=="string";const gc=Array.isArray,aa=e=>hv(e)&&sr(e.name),ia=(e,t=!1)=>e?gc(e)?e.map(n=>sr(n)?{name:n}:aa(n)?n:null).filter(n=>n!==null):sr(e)?[{name:e}]:aa(e)?[e]:(console.error(`Expect "author" to be \`AuthorInfo[] | AuthorInfo | string[] | string ${t?"":"| false"} | undefined\`, but got`,e),[]):[],mc=(e,t)=>{if(e){if(gc(e)&&e.every(sr))return e;if(sr(e))return[e];console.error(`Expect ${t||"value"} to be \`string[] | string | undefined\`, but got`,e)}return[]},vv=e=>mc(e,"category"),gv=e=>mc(e,"tag");let mv={};const bc=Symbol(""),bv=()=>ke(bc),yv=e=>{e.provide(bc,mv)},ca=()=>{const e=document.documentElement;return e.classList.contains("dark")||e.getAttribute("data-theme")==="dark"},pn={useMaxWidth:!1},wv=e=>({dark:e,background:e?"#1e1e1e":"#fff",primaryColor:e?"#389d70":"#4abf8a",primaryBorderColor:e?"#389d70":"#4abf8a",primaryTextColor:e?"#fff":"#000",secondaryColor:"#ffb500",secondaryBorderColor:e?"#fff":"#000",secondaryTextColor:e?"#ddd":"#333",tertiaryColor:e?"#282828":"#efeef4",tertiaryBorderColor:e?"#bbb":"#242424",tertiaryTextColor:e?"#ddd":"#333",noteBkgColor:e?"#f6d365":"#fff5ad",noteTextColor:"#242424",noteBorderColor:e?"#f6d365":"#333",lineColor:e?"#d3d3d3":"#333",textColor:e?"#fff":"#242424",mainBkg:e?"#389d70":"#4abf8a",errorBkgColor:"#eb4d5d",errorTextColor:"#fff",nodeBorder:e?"#389d70":"#4abf8a",nodeTextColor:e?"#fff":"#242424",signalTextColor:e?"#9e9e9e":"#242424",classText:"#fff",labelColor:"#fff",attributeBackgroundColorEven:e?"#0d1117":"#fff",attributeBackgroundColorOdd:e?"#161b22":"#f8f8f8",fillType0:e?"#cf1322":"#f1636e",fillType1:"#f39c12",fillType2:"#2ecc71",fillType3:"#fa541c",fillType4:"#25a55b",fillType5:"#13c2c2",fillType6:"#096dd9",fillType7:"#aa6fe9"});var _v=G({name:"Mermaid",props:{id:{type:String,required:!0},code:{type:String,required:!0},title:{type:String,default:""}},setup(e){const{themeVariables:t,...n}=bv(),r=Ne(),o=S(()=>Ql(e.code)),s=Q(""),l=Q(!1);let a=!1;const i=async()=>{const[{default:d}]=await Promise.all([ce(()=>import("./mermaid.core-D8sVPjx9.js").then(p=>p.b8),[]),a?Promise.resolve():(a=!0,new Promise(p=>setTimeout(p,800)))]);d.initialize({theme:"base",themeVariables:{...wv(l.value),...Xd(t)?t(l.value):t},flowchart:pn,sequence:pn,journey:pn,gantt:pn,er:pn,pie:pn,...n,startOnLoad:!1}),s.value=(await d.render(e.id,o.value)).svg},c=()=>{const{body:d}=document,p=document.createElement("div");p.classList.add("mermaid-preview"),p.innerHTML=s.value,d.appendChild(p),p.addEventListener("click",()=>{d.removeChild(p)})},f=()=>{const d=`data:image/svg+xml;charset=utf8,${s.value.replace(/
/g,"
").replace(/%/g,"%25").replace(/"/g,"%22").replace(/'/g,"%27").replace(/&/g,"%26").replace(/#/g,"%23").replace(/{/g,"%7B").replace(/}/g,"%7D").replace(//g,"%3E")}`,p=document.createElement("a");p.setAttribute("href",d),p.setAttribute("download",`${e.title?Ql(e.title):e.id}.svg`),p.click()};return _e(()=>{l.value=ca(),i(),Xi(document.documentElement,()=>{l.value=ca()},{attributeFilter:["class","data-theme"],attributes:!0}),oe(l,()=>i())}),()=>[u("div",{class:"mermaid-actions"},[u("button",{class:"preview-button",onClick:()=>c(),title:"preview",innerHTML:''}),u("button",{class:"download-button",onClick:()=>f(),title:"download",innerHTML:''})]),u("div",{ref:r,class:"mermaid-wrapper"},s.value?u("div",{class:"mermaid-content",innerHTML:s.value}):u(ac,{class:"mermaid-loading",height:96}))]}});const To=Ms("VUEPRESS_TAB_STORE",{});var Ev=G({name:"Tabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=Q(e.active),r=Ne([]),o=()=>{e.tabId&&(To.value[e.tabId]=e.data[n.value].id)},s=(c=n.value)=>{n.value=c{n.value=c>0?c-1:r.value.length-1,r.value[n.value].focus()},a=(c,f)=>{c.key===" "||c.key==="Enter"?(c.preventDefault(),n.value=f):c.key==="ArrowRight"?(c.preventDefault(),s()):c.key==="ArrowLeft"&&(c.preventDefault(),l()),o()},i=()=>{if(e.tabId){const c=e.data.findIndex(({id:f})=>To.value[e.tabId]===f);if(c!==-1)return c}return e.active};return _e(()=>{n.value=i(),oe(()=>To.value[e.tabId],(c,f)=>{if(e.tabId&&c!==f){const d=e.data.findIndex(({id:p})=>p===c);d!==-1&&(n.value=d)}})}),()=>e.data.length?u("div",{class:"vp-tabs"},[u("div",{class:"vp-tabs-nav",role:"tablist"},e.data.map(({id:c},f)=>{const d=f===n.value;return u("button",{type:"button",ref:p=>{p&&(r.value[f]=p)},class:["vp-tab-nav",{active:d}],role:"tab","aria-controls":`tab-${e.id}-${f}`,"aria-selected":d,onClick:()=>{n.value=f,o()},onKeydown:p=>a(p,f)},t[`title${f}`]({value:c,isActive:d}))})),e.data.map(({id:c},f)=>{const d=f===n.value;return u("div",{class:["vp-tab",{active:d}],id:`tab-${e.id}-${f}`,role:"tabpanel","aria-expanded":d},[u("div",{class:"vp-tab-title"},t[`title${f}`]({value:c,isActive:d})),t[`tab${f}`]({value:c,isActive:d})])})]):null}});const Cv=lt({enhance:({app:e})=>{yv(e),e.component("Mermaid",_v),e.component("Tabs",Ev)},setup:()=>{nv()}});let kv={};const yc=Symbol(""),xv=()=>ke(yc),Sv=e=>{e.provide(yc,kv)},Tv='
',Av=e=>Ee(e)?Array.from(document.querySelectorAll(e)):e.map(t=>Array.from(document.querySelectorAll(t))).flat(),wc=e=>new Promise((t,n)=>{e.complete?t({type:"image",element:e,src:e.src,width:e.naturalWidth,height:e.naturalHeight,alt:e.alt,msrc:e.src}):(e.onload=()=>t(wc(e)),e.onerror=r=>n(r))}),Lv=e=>{const{isSupported:t,toggle:n}=$s();e.on("uiRegister",()=>{t.value&&e.ui.registerElement({name:"fullscreen",order:7,isButton:!0,html:'',onClick:()=>{n()}}),e.ui.registerElement({name:"download",order:8,isButton:!0,tagName:"a",html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-download"},onInit:(r,o)=>{r.setAttribute("download",""),r.setAttribute("target","_blank"),r.setAttribute("rel","noopener"),o.on("change",()=>{r.setAttribute("href",o.currSlide.data.src)})}}),e.ui.registerElement({name:"bulletsIndicator",className:"photo-swipe-bullets-indicator",appendTo:"wrapper",onInit:(r,o)=>{const s=[];let l=-1;for(let a=0;a{o.goTo(s.indexOf(c.target))},s.push(i),r.appendChild(i)}o.on("change",()=>{l>=0&&s[l].classList.remove("active"),s[o.currIndex].classList.add("active"),l=o.currIndex})}})})},Rv=(e,t,n=!0)=>ce(()=>import("./photoswipe.esm-GXRgw7eJ.js"),[]).then(({default:r})=>{let o=null;const s=e.map(l=>({html:Tv,element:l,msrc:l.src}));return e.forEach((l,a)=>{const i=()=>{o==null||o.destroy(),o=new r({preloaderDelay:0,showHideAnimationType:"zoom",...t,dataSource:s,index:a,...n?{closeOnVerticalDrag:!0,wheelToZoom:!1}:{}}),Lv(o),o.addFilter("thumbEl",()=>l),o.addFilter("placeholderSrc",()=>l.src),o.init()};l.getAttribute("photo-swipe")||(l.style.cursor="zoom-in",l.addEventListener("click",()=>{i()}),l.addEventListener("keypress",({key:c})=>{c==="Enter"&&i()}),l.setAttribute("photo-swipe","")),wc(l).then(c=>{s.splice(a,1,c),o==null||o.refreshSlideContent(a)})}),n?Ce("wheel",()=>{o==null||o.close()}):()=>{}}),Ov=({selector:e,locales:t,delay:n=500,scrollToClose:r=!0})=>{const o=xv(),s=Jt(t),l=Se(),a=Le();let i=null;const c=()=>{const{photoSwipe:f}=a.value;f!==!1&&Yt().then(()=>Wi(n)).then(async()=>{const d=Ee(f)?f:e;i=await Rv(Av(d),{...o,...s.value},r)})};_e(()=>{c(),oe(()=>l.value.path,()=>{i==null||i(),c()})}),Sn(()=>{i==null||i()})};var Pv={"/":{closeTitle:"Close",downloadTitle:"Download Image",fullscreenTitle:"Switch to full screen",zoomTitle:"Zoom in/out",arrowPrevTitle:"Prev (Arrow Left)",arrowNextTitle:"Next (Arrow Right)"}};const Iv=".theme-hope-content :not(a) > img:not([no-view])",Mv=Pv,$v=800,Nv=!0,Dv=lt({enhance:({app:e})=>{Sv(e)},setup:()=>{Ov({selector:Iv,delay:$v,locales:Mv,scrollToClose:Nv})}}),Hv=()=>u(ve,{name:"heading"},()=>u("path",{d:"M250.4 704.6H64V595.4h202.4l26.2-166.6H94V319.6h214.4L352 64h127.8l-43.6 255.4h211.2L691 64h126.2l-43.6 255.4H960v109.2H756.2l-24.6 166.6H930v109.2H717L672 960H545.8l43.6-255.4H376.6L333 960H206.8l43.6-255.4zm168.4-276L394 595.4h211.2l24.6-166.6h-211z"}));Hv.displayName="HeadingIcon";const Fv=()=>u(ve,{name:"heart"},()=>u("path",{d:"M1024 358.156C1024 195.698 892.3 64 729.844 64c-86.362 0-164.03 37.218-217.844 96.49C458.186 101.218 380.518 64 294.156 64 131.698 64 0 195.698 0 358.156 0 444.518 37.218 522.186 96.49 576H96l320 320c32 32 64 64 96 64s64-32 96-64l320-320h-.49c59.272-53.814 96.49-131.482 96.49-217.844zM841.468 481.232 517.49 805.49a2981.962 2981.962 0 0 1-5.49 5.48c-1.96-1.95-3.814-3.802-5.49-5.48L182.532 481.234C147.366 449.306 128 405.596 128 358.156 128 266.538 202.538 192 294.156 192c47.44 0 91.15 19.366 123.076 54.532L512 350.912l94.768-104.378C638.696 211.366 682.404 192 729.844 192 821.462 192 896 266.538 896 358.156c0 47.44-19.368 91.15-54.532 123.076z"}));Fv.displayName="HeartIcon";const Bv=()=>u(ve,{name:"history"},()=>u("path",{d:"M512 1024a512 512 0 1 1 512-512 512 512 0 0 1-512 512zm0-896a384 384 0 1 0 384 384 384 384 0 0 0-384-384zm192 448H512a64 64 0 0 1-64-64V320a64 64 0 0 1 128 0v128h128a64 64 0 0 1 0 128z"}));Bv.displayName="HistoryIcon";const jv=()=>u(ve,{name:"title"},()=>u("path",{d:"M512 256c70.656 0 134.656 28.672 180.992 75.008A254.933 254.933 0 0 1 768 512c0 83.968-41.024 157.888-103.488 204.48C688.96 748.736 704 788.48 704 832c0 105.984-86.016 192-192 192-106.048 0-192-86.016-192-192h128a64 64 0 1 0 128 0 64 64 0 0 0-64-64 255.19 255.19 0 0 1-181.056-75.008A255.403 255.403 0 0 1 256 512c0-83.968 41.024-157.824 103.488-204.544C335.04 275.264 320 235.584 320 192A192 192 0 0 1 512 0c105.984 0 192 85.952 192 192H576a64.021 64.021 0 0 0-128 0c0 35.328 28.672 64 64 64zM384 512c0 70.656 57.344 128 128 128s128-57.344 128-128-57.344-128-128-128-128 57.344-128 128z"}));jv.displayName="TitleIcon";const Fs=()=>u(ve,{name:"search"},()=>u("path",{d:"M192 480a256 256 0 1 1 512 0 256 256 0 0 1-512 0m631.776 362.496-143.2-143.168A318.464 318.464 0 0 0 768 480c0-176.736-143.264-320-320-320S128 303.264 128 480s143.264 320 320 320a318.016 318.016 0 0 0 184.16-58.592l146.336 146.368c12.512 12.48 32.768 12.48 45.28 0 12.48-12.512 12.48-32.768 0-45.28"}));Fs.displayName="SearchIcon";const _c=()=>u("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",preserveAspectRatio:"xMidYMid",viewBox:"0 0 100 100"},[u("circle",{cx:"28",cy:"75",r:"11",fill:"currentColor"},u("animate",{attributeName:"fill-opacity",begin:"0s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"})),u("path",{fill:"none",stroke:"#88baf0","stroke-width":"10",d:"M28 47a28 28 0 0 1 28 28"},u("animate",{attributeName:"stroke-opacity",begin:"0.1s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"})),u("path",{fill:"none",stroke:"#88baf0","stroke-width":"10",d:"M28 25a50 50 0 0 1 50 50"},u("animate",{attributeName:"stroke-opacity",begin:"0.2s",dur:"1s",keyTimes:"0;0.2;1",repeatCount:"indefinite",values:"0;1;1"}))]);_c.displayName="LoadingIcon";const Ec=({hint:e})=>u("div",{class:"search-pro-result-wrapper loading"},[u(_c),e]);Ec.displayName="SearchLoading";const Vv='';var zv={0:{"/":{0:"C",1:"a",2:"t",3:"e",4:"g",5:"o",6:"r",7:"y",8:":",9:" ",10:"$",11:"c",12:"o",13:"n",14:"t",15:"e",16:"n",17:"t"}},1:{"/":{0:"T",1:"a",2:"g",3:":",4:" ",5:"$",6:"c",7:"o",8:"n",9:"t",10:"e",11:"n",12:"t"}}},qv={"/":{cancel:"Cancel",placeholder:"Search",search:"Search",searching:"Searching",defaultTitle:"Documentation",select:"to select",navigate:"to navigate",autocomplete:"to autocomplete",exit:"to exit",queryHistory:"Search History",resultHistory:"Result History",emptyHistory:"Empty Search History",emptyResult:"No results found",loading:"Loading search indexes..."}},Uv={searchDelay:150,suggestDelay:0,queryHistoryCount:5,resultHistoryCount:5,hotKeys:[{key:"k",ctrl:!0},{key:"/",ctrl:!0}],worker:"search-pro.worker.js"};const zr=Uv,Ig=zv,Cc=zr.hotKeys,Bs=qv,Ao="Canceled because of new search request.",Mg=()=>{const e=new Worker(`/${zr.worker}`,{}),t={suggest:null,search:null,all:null};return e.addEventListener("message",({data:n})=>{const[r,o,s]=n,l=t[r];(l==null?void 0:l.id)===o&&l.resolve(s)}),e.addEventListener("error",n=>{console.error("Search Worker error:",n)}),{suggest:(n,r,o)=>new Promise((s,l)=>{var i;(i=t.suggest)==null||i.reject(new Error(Ao));const a=Date.now();e.postMessage({type:"suggest",id:a,query:n,locale:r,options:o}),t.suggest={id:a,resolve:s,reject:l}}),search:(n,r,o)=>new Promise((s,l)=>{var i;(i=t.search)==null||i.reject(new Error(Ao));const a=Date.now();e.postMessage({type:"search",id:a,query:n,locale:r,options:o}),console.log("post"),t.search={id:a,resolve:s,reject:l}}),all:(n,r,o)=>new Promise((s,l)=>{var i;(i=t.all)==null||i.reject(new Error(Ao));const a=Date.now();e.postMessage({type:"all",id:a,query:n,locale:r,options:o}),t.all={id:a,resolve:s,reject:l}}),terminate:()=>{e.terminate(),Nh(t).forEach(n=>{n==null||n.reject(new Error("Worker has been terminated."))})}}};let Wv={};const kc=Symbol(""),Kv=()=>{const e=un(),{locales:t={},...n}=ke(kc);return S(()=>({...n,...t[e.value]||{}}))},Gv=e=>{e.provide(kc,Wv)},Yv=(e,t=!1)=>{const n=Q(0),r=S(()=>e.value[n.value]),o=()=>{n.value=n.value>0?n.value-1:e.value.length-1},s=()=>{n.value=n.value{t||(n.value=0)}),{index:n,item:r,prev:o,next:s}},Jv=e=>e instanceof Element?document.activeElement===e&&(["TEXTAREA","SELECT","INPUT"].includes(e.tagName)||e.hasAttribute("contenteditable")):!1,Qv=e=>Cc.some(t=>{const{key:n,ctrl:r=!1,shift:o=!1,alt:s=!1,meta:l=!1}=t;return n===e.key&&r===e.ctrlKey&&o===e.shiftKey&&s===e.altKey&&l===e.metaKey}),Xv='',Zv='',e0='',t0='',js=Symbol(""),n0=()=>{const e=Q(!1);an(js,e)},r0=e=>({suggestions:Q([])}),Lo=Cc[0];var o0=G({name:"SearchBox",setup(){const e=Jt(Bs),t=ke(js),n=Q(!1),r=S(()=>Lo?[(n.value?["⌃","⇧","⌥","⌘"]:["Ctrl","Shift","Alt","Win"]).filter((o,s)=>Lo[["ctrl","shift","alt","meta"][s]]),Lo.key.toUpperCase()]:null);return Ce("keydown",o=>{!t.value&&Qv(o)&&!Jv(o.target)&&(o.preventDefault(),t.value=!0)}),_e(()=>{const{userAgent:o}=navigator;n.value=fv(o)||uv(o)||cv(o)}),()=>[u("button",{type:"button",class:"search-pro-button","aria-label":e.value.search,onClick:()=>{t.value=!0}},[u(Fs),u("div",{class:"search-pro-placeholder"},e.value.search),r.value?u("div",{class:"search-pro-key-hints"},r.value.map(o=>u("kbd",{class:"search-pro-key"},o))):null])]}});const s0=Ka({loader:()=>ce(()=>import("./SearchResult-nRRabPVu.js"),[]),loadingComponent:()=>{const e=Jt(Bs);return u(Ec,{hint:e.value.loading})}});var l0=G({name:"SearchModal",setup(){const e=ke(js),t=to(),n=iv(),r=Jt(Bs),o=Kv(),s=Q(""),l=Q([]),{suggestions:a}=r0(),i=Q(!1),{index:c,prev:f,next:d}=Yv(a),p=Ne(),v=Ne(),m=(w=c.value)=>{s.value=a.value[w],i.value=!1};Ce("keydown",w=>{i.value?w.key==="ArrowUp"?f():w.key==="ArrowDown"?d():w.key==="Enter"?m():w.key==="Escape"&&(i.value=!1):w.key==="Escape"&&(e.value=!1)});const E=Ji(()=>{var w,y;(((y=(w=o.value).splitWord)==null?void 0:y.call(w,s.value))||Promise.resolve(s.value.split(" "))).then(C=>{l.value=C})},Math.min(zr.searchDelay,zr.suggestDelay));return oe(s,E,{immediate:!0}),_e(()=>{const w=Ns(document.body);oe(e,async y=>{var C;w.value=y,y&&(await Yt(),(C=p.value)==null||C.focus())}),r1(v,()=>{i.value=!1}),Sn(()=>{w.value=!1})}),()=>e.value?u("div",{class:"search-pro-modal-wrapper"},[u("div",{class:"search-pro-mask",onClick:()=>{e.value=!1,s.value=""}}),u("div",{class:"search-pro-modal"},[u("div",{class:"search-pro-box"},[u("form",[u("label",{for:"search-pro","aria-label":r.value.search},u(Fs)),u("input",{ref:p,type:"search",class:"search-pro-input",id:"search-pro",placeholder:r.value.placeholder,spellcheck:"false",autocapitalize:"off",autocomplete:"off",autocorrect:"off",name:`${t.value.title}-search`,value:s.value,"aria-controls":"search-pro-results",onKeydown:w=>{const{key:y}=w;a.value.length&&(y==="Tab"?(m(),w.preventDefault()):(y==="ArrowDown"||y==="ArrowUp"||y==="Escape")&&w.preventDefault())},onInput:({target:w})=>{s.value=w.value,i.value=!0,c.value=0}}),s.value?u("button",{type:"reset",class:"search-pro-clear-button",innerHTML:Vv,onClick:()=>{s.value=""}}):null,null]),u("button",{type:"button",class:"search-pro-close-button",onClick:()=>{e.value=!1,s.value=""}},r.value.cancel)]),u(s0,{queries:l.value,isFocusing:!i.value,onClose:()=>{e.value=!1},onUpdateQuery:w=>{s.value=w}}),n.value?null:u("div",{class:"search-pro-hints"},[u("span",{class:"search-pro-hint"},[u("kbd",{innerHTML:Xv}),r.value.select]),u("span",{class:"search-pro-hint"},[u("kbd",{innerHTML:e0}),u("kbd",{innerHTML:Zv}),r.value.navigate]),u("span",{class:"search-pro-hint"},[u("kbd",{innerHTML:t0}),r.value.exit])])])]):null}}),a0=lt({enhance({app:e}){Gv(e),e.component("SearchBox",o0)},setup(){n0()},rootComponents:[l0]});const xc=()=>{const e=Se();return S(()=>e.value.readingTime??null)},i0=(e,t)=>{const{minutes:n,words:r}=e,{less1Minute:o,word:s,time:l}=t;return{time:n<1?o:l.replace("$time",Math.round(n).toString()),words:s.replace("$word",r.toString())}},ua={words:"",time:""},Xo=typeof __READING_TIME_LOCALES__>"u"?null:__READING_TIME_LOCALES__,c0=()=>Xo?Jt(Xo):S(()=>null),u0=()=>{if(typeof Xo>"u")return S(()=>ua);const e=xc(),t=c0();return S(()=>e.value&&t.value?i0(e.value,t.value):ua)},Rn=()=>sc(),pe=()=>V1(),Ro=()=>null,f0="719px",d0="1440px",p0="false",Sc={mobileBreakPoint:f0,pcBreakPoint:d0,enableThemeColor:p0},Vs={"/":["",{text:"Introduction",prefix:"guide/",collapsible:!0,children:["","getting-started","architecture-overview","cli","state-and-deps","scheduling-tasks","dynamic-brokers","testing-taskiq","message-format"]},{text:"Framework integrations",prefix:"framework_integrations/",collapsible:!0,children:["","taskiq-with-fastapi","taskiq-with-aiohttp","faststream","taskiq-with-aiogram"]},{text:"Extending taskiq",prefix:"extending-taskiq/",collapsible:!0,children:["","broker","middleware","result-backend","cli","schedule-sources"]},{text:"Available components",prefix:"available-components/",collapsible:!0,children:["","brokers","result-backends","schedule-sources","middlewares"]},"contrib"]},Tc=e=>{const{icon:t="",color:n,size:r}=e,o=n||r?{}:null;return n&&(o.color=n),r&&(o.height=Number.isNaN(Number(r))?r:`${r}px`),cn(t)?u("img",{class:"icon",src:t,alt:"","no-view":"",style:o}):oo(t)?u("img",{class:"icon",src:Ve(t),alt:"","aria-hidden":"","no-view":"",style:o}):u(wt("FontIcon"),e)};Tc.displayName="HopeIcon";var Be=Tc;const h0="http://.",zs=()=>{const e=An(),t=Rt();return n=>{if(n)if(oo(n))t.path!==n&&e.push(n);else if(Qr(n))window&&window.open(n);else{const r=t.path.slice(0,t.path.lastIndexOf("/"));e.push(new URL(`${r}/${encodeURI(n)}`,h0).pathname)}}},Ac=()=>{const e=pe(),t=Le();return S(()=>{const{author:n}=t.value;return n?ia(n):n===!1?[]:ia(e.value.author,!1)})},v0=()=>{const e=Le();return S(()=>vv(e.value.category).map(t=>({name:t,path:""})))},g0=()=>{const e=Le();return S(()=>gv(e.value.tag).map(t=>({name:t,path:""})))},m0=()=>{const e=Le(),t=Se();return S(()=>{const n=Dh(e.value.date);if(n)return n;const{createdTime:r}=t.value.git||{};return r?new Date(r):null})},b0=()=>{const e=pe(),t=Se(),n=Le(),r=Ac(),o=v0(),s=g0(),l=m0(),a=xc(),i=u0(),c=S(()=>({author:r.value,category:o.value,date:l.value,localizedDate:t.value.localizedDate,tag:s.value,isOriginal:n.value.isOriginal||!1,readingTime:a.value,readingTimeLocale:i.value,pageview:"pageview"in n.value?n.value.pageview:!0})),f=S(()=>"pageInfo"in n.value?n.value.pageInfo:"pageInfo"in e.value?e.value.pageInfo:null);return{info:c,items:f}},br=()=>{const e=Rn();return S(()=>!!e.value.pure)},{mobileBreakPoint:y0,pcBreakPoint:w0}=Sc,fa=e=>e.endsWith("px")?Number(e.slice(0,-2)):null,so=()=>{const e=Q(!1),t=Q(!1),n=()=>{e.value=window.innerWidth<=(fa(y0)??719),t.value=window.innerWidth>=(fa(w0)??1440)};return Ce("resize",n,!1),Ce("orientationchange",n,!1),_e(()=>{n()}),{isMobile:e,isPC:t}},Lc=Symbol(""),yr=()=>{const e=ke(Lc);if(!e)throw new Error("useDarkmode() is called without provider.");return e},_0=e=>{const t=Rn(),n=f1(),r=S(()=>t.value.darkmode||"switch"),o=Ms("vuepress-theme-hope-scheme","auto"),s=S(()=>{const a=r.value;return a==="disable"?!1:a==="enable"?!0:a==="auto"?n.value:a==="toggle"?o.value==="dark":o.value==="dark"||o.value==="auto"&&n.value}),l=S(()=>{const a=r.value;return a==="switch"||a==="toggle"});e.provide(Lc,{canToggle:l,config:r,isDarkmode:s,status:o}),Object.defineProperties(e.config.globalProperties,{$isDarkmode:{get:()=>s.value}})},E0=()=>{const{config:e,isDarkmode:t,status:n}=yr();Va(()=>{e.value==="disable"?n.value="light":e.value==="enable"?n.value="dark":e.value==="toggle"&&n.value==="auto"&&(n.value="light")}),_e(()=>{oe(t,r=>document.documentElement.setAttribute("data-theme",r?"dark":"light"),{immediate:!0})})},lr=(e,t,n=!1)=>"activeMatch"in t?new RegExp(t.activeMatch,"u").test(e.path):vc(e,t.link)?!0:"children"in t&&!n?t.children.some(r=>lr(e,r)):!1,Rc=(e,t)=>t.type==="group"?t.children.some(n=>n.type==="group"?Rc(e,n):n.type==="page"&&lr(e,n,!0))||"prefix"in t&&vc(e,t.prefix):!1,Zo=e=>!Ts(e)&&!Qr(e);var yt=(e=>(e.title="t",e.shortTitle="s",e.icon="i",e.index="I",e.order="O",e.breadcrumbExclude="b",e))(yt||{}),C0=(e=>(e.type="y",e.author="a",e.date="d",e.localizedDate="l",e.category="c",e.tag="g",e.isEncrypted="n",e.isOriginal="o",e.readingTime="r",e.excerpt="e",e.sticky="u",e.cover="v",e))(C0||{}),k0=(e=>(e.article="a",e.home="h",e.slide="s",e.page="p",e))(k0||{});const qs=(e,t=!1,n)=>{const{meta:r,path:o,notFound:s}=Fh(e,n);return s?{text:o,link:o}:{text:!t&&r[yt.shortTitle]?r[yt.shortTitle]:r[yt.title]||o,link:o,...r[yt.icon]?{icon:r[yt.icon]}:{}}},rn=(e="",t="")=>oo(t)||Qr(t)?t:`${Ei(e)}${t}`,es=({config:e,prefix:t=""})=>{const n=(r,o=t)=>{const s=Ee(r)?qs(rn(o,r)):r.link?{...r,...Zo(r.link)?{link:Wt(rn(o,r.link)).path}:{}}:r;if("children"in s){const l=rn(o,s.prefix),a=s.children==="structure"?Vs[l]:s.children;return{type:"group",...s,prefix:l,children:a.map(i=>n(i,l))}}return{type:"page",...s}};return e.map(r=>n(r))},x0=({config:e,page:t,headerDepth:n})=>{const r=ro(e).sort((o,s)=>s.length-o.length);for(const o of r)if(or(decodeURI(t.path),o)){const s=e[o];return s?es({config:s==="structure"?Vs[o]:s,page:t,headerDepth:n,prefix:o}):[]}return console.warn(`${t.path} is missing sidebar config.`),[]},S0=({config:e,routeLocale:t,page:n,headerDepth:r})=>e==="structure"?es({config:Vs[t],page:n,headerDepth:r,prefix:t}):Yo(e)?es({config:e,page:n,headerDepth:r}):Xr(e)?x0({config:e,page:n,headerDepth:r}):[],Oc=Symbol(""),T0=()=>{const e=Le(),t=pe(),n=Se(),r=un(),o=S(()=>e.value.home?!1:e.value.sidebar??t.value.sidebar??"structure"),s=S(()=>e.value.headerDepth??t.value.headerDepth??2),l=Gi(()=>[o.value,s.value,n.value.path,null],()=>S0({config:o.value,routeLocale:r.value,page:n.value,headerDepth:s.value}));an(Oc,l)},Us=()=>{const e=ke(Oc);if(!e)throw new Error("useSidebarItems() is called without provider.");return e};var A0=G({name:"PageFooter",setup(){const e=Rn(),t=pe(),n=Le(),r=Ac(),o=S(()=>{const{copyright:c,footer:f}=n.value;return f!==!1&&!!(c||f||t.value.displayFooter)}),s=S(()=>{const{footer:c}=n.value;return c===!1?!1:Ee(c)?c:t.value.footer||""}),l=S(()=>r.value.map(({name:c})=>c).join(", ")),a=c=>`Copyright © ${new Date().getFullYear()} ${l.value} ${c?`${c} Licensed`:""}`,i=S(()=>{const{copyright:c,license:f=""}=n.value,{license:d}=e.value,{copyright:p}=t.value;return c??(f?a(f):Ee(p)?p:l.value||d?a(d):!1)});return()=>o.value?u("footer",{class:"vp-footer-wrapper"},[s.value?u("div",{class:"vp-footer",innerHTML:s.value}):null,i.value?u("div",{class:"vp-copyright",innerHTML:i.value}):null]):null}}),qe=G({name:"AutoLink",inheritAttrs:!1,props:{config:{type:Object,required:!0},exact:Boolean,noExternalLinkIcon:Boolean},emits:["focusout"],slots:Object,setup(e,{attrs:t,emit:n,slots:r}){const o=Rt(),s=Ni(),l=Kr(e,"config"),a=S(()=>cn(l.value.link)),i=S(()=>!a.value&&Qr(l.value.link)),c=S(()=>l.value.target||(a.value?"_blank":void 0)),f=S(()=>c.value==="_blank"),d=S(()=>!a.value&&!i.value&&!f.value),p=S(()=>l.value.rel||(f.value?"noopener noreferrer":null)),v=S(()=>l.value.ariaLabel||l.value.text),m=S(()=>{if(e.exact)return!1;const w=ro(s.value.locales);return w.length?w.every(y=>y!==l.value.link):l.value.link!=="/"}),E=S(()=>d.value?l.value.activeMatch?new RegExp(l.value.activeMatch,"u").test(o.path):m.value?or(o.path,l.value.link):o.path===l.value.link:!1);return()=>{const{before:w,after:y,default:C}=r,{text:b,icon:x,link:$}=l.value;return d.value?u(Qe,{to:$,"aria-label":v.value,...t,class:["nav-link",{active:E.value},t.class],onFocusout:()=>n("focusout")},()=>C?C():[w?w():u(Be,{icon:x}),b,y==null?void 0:y()]):u("a",{href:$,rel:p.value,target:c.value,"aria-label":v.value,...t,class:["nav-link",t.class],onFocusout:()=>n("focusout")},C?C():[w?w():u(Be,{icon:x}),b,e.noExternalLinkIcon?null:u(rc),y==null?void 0:y()])}}}),L0=G({name:"NavbarDropdownLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=Se(),r=Kr(e,"config"),o=S(()=>r.value.ariaLabel||r.value.text),s=Q(!1);oe(()=>n.value.path,()=>{s.value=!1});const l=a=>{a.detail===0&&(s.value=!s.value)};return()=>{var a;return u("div",{class:["dropdown-wrapper",{open:s.value}]},[u("button",{type:"button",class:"dropdown-title","aria-label":o.value,onClick:l},[((a=t.title)==null?void 0:a.call(t))||u("span",{class:"title"},[u(Be,{icon:r.value.icon}),e.config.text]),u("span",{class:"arrow"}),u("ul",{class:"nav-dropdown"},r.value.children.map((i,c)=>{const f=c===r.value.children.length-1;return u("li",{class:"dropdown-item"},"children"in i?[u("h4",{class:"dropdown-subtitle"},i.link?u(qe,{config:i,onFocusout:()=>{i.children.length===0&&f&&(s.value=!1)}}):u("span",i.text)),u("ul",{class:"dropdown-subitem-wrapper"},i.children.map((d,p)=>u("li",{class:"dropdown-subitem"},u(qe,{config:d,onFocusout:()=>{p===i.children.length-1&&f&&(s.value=!1)}}))))]:u(qe,{config:i,onFocusout:()=>{f&&(s.value=!1)}}))}))])])}}});const Pc=(e,t="")=>Ee(e)?qs(rn(t,e)):"children"in e?{...e,...e.link&&Zo(e.link)?{link:Wt(rn(t,e.link)).path}:{},children:e.children.map(n=>Pc(n,rn(t,e.prefix)))}:{...e,link:Zo(e.link)?Wt(rn(t,e.link)).path:e.link},Ic=()=>{const e=pe(),t=()=>(e.value.navbar||[]).map(n=>Pc(n));return Gi(()=>e.value.navbar,()=>t())},R0=()=>{const e=pe(),t=S(()=>e.value.repo||null),n=S(()=>t.value?rv(t.value):null),r=S(()=>t.value?Hs(t.value):null),o=S(()=>n.value?e.value.repoLabel??(r.value===null?"Source":r.value):null);return S(()=>!n.value||!o.value||e.value.repoDisplay===!1?null:{type:r.value||"Source",label:o.value,link:n.value})};var O0=G({name:"NavScreenDropdown",props:{config:{type:Object,required:!0}},setup(e){const t=Se(),n=Kr(e,"config"),r=S(()=>n.value.ariaLabel||n.value.text),o=Q(!1);oe(()=>t.value.path,()=>{o.value=!1});const s=(l,a)=>a[a.length-1]===l;return()=>[u("button",{type:"button",class:["nav-screen-dropdown-title",{active:o.value}],"aria-label":r.value,onClick:()=>{o.value=!o.value}},[u("span",{class:"title"},[u(Be,{icon:n.value.icon}),e.config.text]),u("span",{class:["arrow",o.value?"down":"end"]})]),u("ul",{class:["nav-screen-dropdown",{hide:!o.value}]},n.value.children.map(l=>u("li",{class:"dropdown-item"},"children"in l?[u("h4",{class:"dropdown-subtitle"},l.link?u(qe,{config:l,onFocusout:()=>{s(l,n.value.children)&&l.children.length===0&&(o.value=!1)}}):u("span",l.text)),u("ul",{class:"dropdown-subitem-wrapper"},l.children.map(a=>u("li",{class:"dropdown-subitem"},u(qe,{config:a,onFocusout:()=>{s(a,l.children)&&s(l,n.value.children)&&(o.value=!1)}}))))]:u(qe,{config:l,onFocusout:()=>{s(l,n.value.children)&&(o.value=!1)}}))))]}}),P0=G({name:"NavScreenLinks",setup(){const e=Ic();return()=>e.value.length?u("nav",{class:"nav-screen-links"},e.value.map(t=>u("div",{class:"navbar-links-item"},"children"in t?u(O0,{config:t}):u(qe,{config:t})))):null}});const Mc=()=>u(ve,{name:"dark"},()=>u("path",{d:"M524.8 938.667h-4.267a439.893 439.893 0 0 1-313.173-134.4 446.293 446.293 0 0 1-11.093-597.334A432.213 432.213 0 0 1 366.933 90.027a42.667 42.667 0 0 1 45.227 9.386 42.667 42.667 0 0 1 10.24 42.667 358.4 358.4 0 0 0 82.773 375.893 361.387 361.387 0 0 0 376.747 82.774 42.667 42.667 0 0 1 54.187 55.04 433.493 433.493 0 0 1-99.84 154.88 438.613 438.613 0 0 1-311.467 128z"}));Mc.displayName="DarkIcon";const $c=()=>u(ve,{name:"light"},()=>u("path",{d:"M952 552h-80a40 40 0 0 1 0-80h80a40 40 0 0 1 0 80zM801.88 280.08a41 41 0 0 1-57.96-57.96l57.96-58a41.04 41.04 0 0 1 58 58l-58 57.96zM512 752a240 240 0 1 1 0-480 240 240 0 0 1 0 480zm0-560a40 40 0 0 1-40-40V72a40 40 0 0 1 80 0v80a40 40 0 0 1-40 40zm-289.88 88.08-58-57.96a41.04 41.04 0 0 1 58-58l57.96 58a41 41 0 0 1-57.96 57.96zM192 512a40 40 0 0 1-40 40H72a40 40 0 0 1 0-80h80a40 40 0 0 1 40 40zm30.12 231.92a41 41 0 0 1 57.96 57.96l-57.96 58a41.04 41.04 0 0 1-58-58l58-57.96zM512 832a40 40 0 0 1 40 40v80a40 40 0 0 1-80 0v-80a40 40 0 0 1 40-40zm289.88-88.08 58 57.96a41.04 41.04 0 0 1-58 58l-57.96-58a41 41 0 0 1 57.96-57.96z"}));$c.displayName="LightIcon";const Nc=()=>u(ve,{name:"auto"},()=>u("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm0-840c-198.78 0-360 161.22-360 360 0 198.84 161.22 360 360 360s360-161.16 360-360c0-198.78-161.22-360-360-360zm0 660V212c165.72 0 300 134.34 300 300 0 165.72-134.28 300-300 300z"}));Nc.displayName="AutoIcon";const Dc=()=>u(ve,{name:"enter-fullscreen"},()=>u("path",{d:"M762.773 90.24h-497.28c-96.106 0-174.4 78.293-174.4 174.4v497.28c0 96.107 78.294 174.4 174.4 174.4h497.28c96.107 0 175.04-78.293 174.4-174.4V264.64c0-96.213-78.186-174.4-174.4-174.4zm-387.2 761.173H215.04c-21.867 0-40.427-17.92-41.067-41.066V649.92c0-22.507 17.92-40.427 40.427-40.427 11.307 0 21.227 4.694 28.48 11.947 7.253 7.253 11.947 17.92 11.947 28.48v62.293l145.28-145.28c15.893-15.893 41.813-15.893 57.706 0 15.894 15.894 15.894 41.814 0 57.707l-145.28 145.28h62.294c22.506 0 40.426 17.92 40.426 40.427s-17.173 41.066-39.68 41.066zM650.24 165.76h160.427c21.866 0 40.426 17.92 41.066 41.067v160.426c0 22.507-17.92 40.427-40.426 40.427-11.307 0-21.227-4.693-28.48-11.947-7.254-7.253-11.947-17.92-11.947-28.48v-62.186L625.6 450.347c-15.893 15.893-41.813 15.893-57.707 0-15.893-15.894-15.893-41.814 0-57.707l145.28-145.28H650.88c-22.507 0-40.427-17.92-40.427-40.427s17.174-41.173 39.787-41.173z"}));Dc.displayName="EnterFullScreenIcon";const Hc=()=>u(ve,{name:"cancel-fullscreen"},()=>u("path",{d:"M778.468 78.62H247.922c-102.514 0-186.027 83.513-186.027 186.027V795.08c0 102.514 83.513 186.027 186.027 186.027h530.432c102.514 0 186.71-83.513 186.026-186.027V264.647C964.494 162.02 880.981 78.62 778.468 78.62zM250.88 574.35h171.122c23.324 0 43.122 19.115 43.804 43.805v171.121c0 24.008-19.114 43.122-43.122 43.122-12.06 0-22.641-5.006-30.378-12.743s-12.743-19.115-12.743-30.379V722.83L224.597 877.91c-16.953 16.952-44.6 16.952-61.553 0-16.953-16.954-16.953-44.602 0-61.554L318.009 661.39h-66.446c-24.007 0-43.122-19.114-43.122-43.122 0-24.12 18.432-43.918 42.439-43.918zm521.899-98.873H601.657c-23.325 0-43.122-19.114-43.805-43.804V260.55c0-24.007 19.115-43.122 43.122-43.122 12.06 0 22.642 5.007 30.379 12.743s12.743 19.115 12.743 30.38v66.445l154.965-154.965c16.953-16.953 44.601-16.953 61.554 0 16.953 16.953 16.953 44.6 0 61.554L705.536 388.55h66.446c24.007 0 43.122 19.115 43.122 43.122.114 24.007-18.318 43.804-42.325 43.804z"}));Hc.displayName="CancelFullScreenIcon";const Fc=()=>u(ve,{name:"outlook"},()=>[u("path",{d:"M224 800c0 9.6 3.2 44.8 6.4 54.4 6.4 48-48 76.8-48 76.8s80 41.6 147.2 0 134.4-134.4 38.4-195.2c-22.4-12.8-41.6-19.2-57.6-19.2C259.2 716.8 227.2 761.6 224 800zM560 675.2l-32 51.2c-51.2 51.2-83.2 32-83.2 32 25.6 67.2 0 112-12.8 128 25.6 6.4 51.2 9.6 80 9.6 54.4 0 102.4-9.6 150.4-32l0 0c3.2 0 3.2-3.2 3.2-3.2 22.4-16 12.8-35.2 6.4-44.8-9.6-12.8-12.8-25.6-12.8-41.6 0-54.4 60.8-99.2 137.6-99.2 6.4 0 12.8 0 22.4 0 12.8 0 38.4 9.6 48-25.6 0-3.2 0-3.2 3.2-6.4 0-3.2 3.2-6.4 3.2-6.4 6.4-16 6.4-16 6.4-19.2 9.6-35.2 16-73.6 16-115.2 0-105.6-41.6-198.4-108.8-268.8C704 396.8 560 675.2 560 675.2zM224 419.2c0-28.8 22.4-51.2 51.2-51.2 28.8 0 51.2 22.4 51.2 51.2 0 28.8-22.4 51.2-51.2 51.2C246.4 470.4 224 448 224 419.2zM320 284.8c0-22.4 19.2-41.6 41.6-41.6 22.4 0 41.6 19.2 41.6 41.6 0 22.4-19.2 41.6-41.6 41.6C339.2 326.4 320 307.2 320 284.8zM457.6 208c0-12.8 12.8-25.6 25.6-25.6 12.8 0 25.6 12.8 25.6 25.6 0 12.8-12.8 25.6-25.6 25.6C470.4 233.6 457.6 220.8 457.6 208zM128 505.6C128 592 153.6 672 201.6 736c28.8-60.8 112-60.8 124.8-60.8-16-51.2 16-99.2 16-99.2l316.8-422.4c-48-19.2-99.2-32-150.4-32C297.6 118.4 128 291.2 128 505.6zM764.8 86.4c-22.4 19.2-390.4 518.4-390.4 518.4-22.4 28.8-12.8 76.8 22.4 99.2l9.6 6.4c35.2 22.4 80 12.8 99.2-25.6 0 0 6.4-12.8 9.6-19.2 54.4-105.6 275.2-524.8 288-553.6 6.4-19.2-3.2-32-19.2-32C777.6 76.8 771.2 80 764.8 86.4z"})]);Fc.displayName="OutlookIcon";var Bc=G({name:"AppearanceSwitch",setup(){const{config:e,isDarkmode:t,status:n}=yr(),r=br(),o=()=>{e.value==="switch"?n.value={light:"dark",dark:"auto",auto:"light"}[n.value]:n.value=n.value==="light"?"dark":"light"},s=async l=>{if(!(document.startViewTransition&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches&&!r.value)||!l){o();return}const a=l.clientX,i=l.clientY,c=Math.hypot(Math.max(a,innerWidth-a),Math.max(i,innerHeight-i)),f=t.value;await document.startViewTransition(async()=>{o(),await Yt()}).ready,t.value!==f&&document.documentElement.animate({clipPath:t.value?[`circle(${c}px at ${a}px ${i}px)`,`circle(0px at ${a}px ${i}px)`]:[`circle(0px at ${a}px ${i}px)`,`circle(${c}px at ${a}px ${i}px)`]},{duration:400,pseudoElement:t.value?"::view-transition-old(root)":"::view-transition-new(root)"})};return()=>u("button",{type:"button",id:"appearance-switch",onClick:s},[u(Nc,{style:{display:n.value==="auto"?"block":"none"}}),u(Mc,{style:{display:n.value==="dark"?"block":"none"}}),u($c,{style:{display:n.value==="light"?"block":"none"}})])}}),I0=G({name:"AppearanceMode",setup(){const e=pe(),{canToggle:t}=yr(),n=S(()=>e.value.outlookLocales.darkmode);return()=>t.value?u("div",{class:"appearance-wrapper"},[u("label",{class:"appearance-title",for:"appearance-switch"},n.value),u(Bc)]):null}});const Oo=Sc.enableThemeColor==="true";var jc=G({name:"ToggleFullScreenButton",setup(){const e=pe(),{isSupported:t,isFullscreen:n,toggle:r}=$s(),o=S(()=>e.value.outlookLocales.fullscreen);return()=>t?u("div",{class:"full-screen-wrapper"},[u("label",{class:"full-screen-title",for:"full-screen-switch"},o.value),u("button",{type:"button",id:"full-screen-switch",class:"full-screen",ariaPressed:n.value,onClick:()=>r()},n.value?u(Hc):u(Dc))]):null}}),Vc=G({name:"OutlookSettings",setup(){const e=Rn(),t=br(),n=S(()=>!t.value&&e.value.fullscreen);return()=>u(no,()=>[null,u(I0),n.value?u(jc):null])}}),M0=G({name:"NavScreen",props:{show:Boolean},emits:["close"],slots:Object,setup(e,{emit:t,slots:n}){const r=Se(),{isMobile:o}=so(),s=Ne(),l=Ns(s);return _e(()=>{s.value=document.body,oe(o,a=>{!a&&e.show&&(l.value=!1,t("close"))}),oe(()=>r.value.path,()=>{l.value=!1,t("close")})}),Sn(()=>{l.value=!1}),()=>u(Ut,{name:"fade",onEnter:()=>{l.value=!0},onAfterLeave:()=>{l.value=!1}},()=>{var a,i;return e.show?u("div",{id:"nav-screen"},u("div",{class:"vp-nav-screen-container"},[(a=n.before)==null?void 0:a.call(n),u(P0),u("div",{class:"vp-outlook-wrapper"},u(Vc)),(i=n.after)==null?void 0:i.call(n)])):null})}}),$0=G({name:"NavbarBrand",setup(){const e=un(),t=to(),n=pe(),r=S(()=>n.value.home||e.value),o=S(()=>t.value.title),s=S(()=>n.value.navTitle??o.value),l=S(()=>n.value.logo?Ve(n.value.logo):null),a=S(()=>n.value.logoDark?Ve(n.value.logoDark):null);return()=>u(Qe,{to:r.value,class:"vp-brand"},()=>[l.value?u("img",{class:["vp-nav-logo",{light:!!a.value}],src:l.value,alt:""}):null,a.value?u("img",{class:["vp-nav-logo dark"],src:a.value,alt:""}):null,s.value?u("span",{class:["vp-site-name",{"hide-in-pad":l.value&&n.value.hideSiteNameOnMobile!==!1}]},s.value):null])}}),N0=G({name:"NavbarLinks",setup(){const e=Ic();return()=>e.value.length?u("nav",{class:"vp-nav-links"},e.value.map(t=>u("div",{class:"vp-nav-item hide-in-mobile"},"children"in t?u(L0,{config:t}):u(qe,{config:t})))):null}}),D0=G({name:"RepoLink",setup(){const e=R0();return()=>e.value?u("div",{class:"vp-nav-item vp-action"},u("a",{class:"vp-action-link",href:e.value.link,target:"_blank",rel:"noopener noreferrer","aria-label":e.value.label},u(ov,{type:e.value.type,style:{width:"1.25rem",height:"1.25rem",verticalAlign:"middle"}}))):null}});const zc=({active:e=!1},{emit:t})=>u("button",{type:"button",class:["vp-toggle-navbar-button",{"is-active":e}],"aria-label":"Toggle Navbar","aria-expanded":e,"aria-controls":"nav-screen",onClick:()=>t("toggle")},u("span",[u("span",{class:"vp-top"}),u("span",{class:"vp-middle"}),u("span",{class:"vp-bottom"})]));zc.displayName="ToggleNavbarButton";var H0=zc;const ts=(e,{emit:t})=>u("button",{type:"button",class:"vp-toggle-sidebar-button",title:"Toggle Sidebar",onClick:()=>t("toggle")},u("span",{class:"icon"}));ts.displayName="ToggleSidebarButton",ts.emits=["toggle"];var F0=ts,B0=G({name:"OutlookButton",setup(){const{isSupported:e}=$s(),t=Rn(),n=br(),r=Se(),{canToggle:o}=yr(),s=Q(!1),l=S(()=>!n.value&&t.value.fullscreen&&e);return oe(()=>r.value.path,()=>{s.value=!1}),()=>o.value||l.value||Oo?u("div",{class:"vp-nav-item hide-in-mobile"},o.value&&!l.value&&!Oo?u(Bc):l.value&&!o.value&&!Oo?u(jc):u("button",{type:"button",class:["outlook-button",{open:s.value}],tabindex:"-1","aria-hidden":!0},[u(Fc),u("div",{class:"outlook-dropdown"},u(Vc))])):null}}),j0=G({name:"NavBar",emits:["toggleSidebar"],slots:Object,setup(e,{emit:t,slots:n}){const r=pe(),{isMobile:o}=so(),s=Q(!1),l=S(()=>{const{navbarAutoHide:f="mobile"}=r.value;return f!=="none"&&(f==="always"||o.value)}),a=S(()=>r.value.navbarLayout||{start:["Brand"],center:["Links"],end:["Language","Repo","Outlook","Search"]}),i={Brand:$0,Language:Ro,Links:N0,Repo:D0,Outlook:B0,Search:Tt("Docsearch")?wt("Docsearch"):Tt("SearchBox")?wt("SearchBox"):Ro},c=f=>i[f]??(Tt(f)?wt(f):Ro);return()=>{var f,d,p,v,m,E;return[u("header",{key:"navbar",id:"navbar",class:["vp-navbar",{"auto-hide":l.value,"hide-icon":r.value.navbarIcon===!1}]},[u("div",{class:"vp-navbar-start"},[u(F0,{onToggle:()=>{s.value&&(s.value=!1),t("toggleSidebar")}}),(f=n.startBefore)==null?void 0:f.call(n),(a.value.start||[]).map(w=>u(c(w))),(d=n.startAfter)==null?void 0:d.call(n)]),u("div",{class:"vp-navbar-center"},[(p=n.centerBefore)==null?void 0:p.call(n),(a.value.center||[]).map(w=>u(c(w))),(v=n.centerAfter)==null?void 0:v.call(n)]),u("div",{class:"vp-navbar-end"},[(m=n.endBefore)==null?void 0:m.call(n),(a.value.end||[]).map(w=>u(c(w))),(E=n.endAfter)==null?void 0:E.call(n),u(H0,{active:s.value,onToggle:()=>{s.value=!s.value}})])]),u(M0,{show:s.value,onClose:()=>{s.value=!1}},{before:()=>{var w;return(w=n.screenTop)==null?void 0:w.call(n)},after:()=>{var w;return(w=n.screenBottom)==null?void 0:w.call(n)}})]}}}),V0=G({name:"SidebarChild",props:{config:{type:Object,required:!0}},setup(e){const t=Rt();return()=>Ee(e.config.link)?u(qe,{class:["vp-sidebar-link","vp-sidebar-page",{active:lr(t,e.config,!0)}],exact:!0,config:e.config}):u("p",e,[u(Be,{icon:e.config.icon}),e.config.text])}}),z0=G({name:"SidebarGroup",props:{config:{type:Object,required:!0},open:{type:Boolean,required:!0}},emits:["toggle"],setup(e,{emit:t}){const n=Rt(),r=S(()=>lr(n,e.config)),o=S(()=>lr(n,e.config,!0));return()=>{const{collapsible:s,children:l=[],icon:a,prefix:i,link:c,text:f}=e.config;return u("section",{class:"vp-sidebar-group"},[u(s?"button":"p",{class:["vp-sidebar-header",{clickable:s||c,exact:o.value,active:r.value}],...s?{type:"button",onClick:()=>t("toggle"),onKeydown:d=>{d.key==="Enter"&&t("toggle")}}:{}},[u(Be,{icon:a}),c?u(qe,{class:"vp-sidebar-title",config:{text:f,link:c},noExternalLinkIcon:!0}):u("span",{class:"vp-sidebar-title"},f),s?u("span",{class:["vp-arrow",e.open?"down":"end"]}):null]),e.open||!s?u(qc,{key:i,config:l}):null])}}}),qc=G({name:"SidebarLinks",props:{config:{type:Array,required:!0}},setup(e){const t=Rt(),n=Q(-1),r=o=>{n.value=o===n.value?-1:o};return oe(()=>t.path,()=>{const o=e.config.findIndex(s=>Rc(t,s));n.value=o},{immediate:!0,flush:"post"}),()=>u("ul",{class:"vp-sidebar-links"},e.config.map((o,s)=>u("li",o.type==="group"?u(z0,{config:o,open:s===n.value,onToggle:()=>r(s)}):u(V0,{config:o}))))}}),q0=G({name:"SideBar",slots:Object,setup(e,{slots:t}){const n=Rt(),r=pe(),o=Us(),s=Ne();return _e(()=>{oe(()=>n.hash,l=>{const a=document.querySelector(`.vp-sidebar a.vp-sidebar-link[href="${n.path}${l}"]`);if(!a)return;const{top:i,height:c}=s.value.getBoundingClientRect(),{top:f,height:d}=a.getBoundingClientRect();fi+c&&a.scrollIntoView(!1)},{immediate:!0})}),()=>{var l,a,i;return u("aside",{ref:s,id:"sidebar",class:["vp-sidebar",{"hide-icon":r.value.sidebarIcon===!1}],key:"sidebar"},[(l=t.top)==null?void 0:l.call(t),((a=t.default)==null?void 0:a.call(t))||u(qc,{config:o.value}),(i=t.bottom)==null?void 0:i.call(t)])}}}),Uc=G({name:"CommonWrapper",props:{containerClass:{type:String,default:""},noNavbar:Boolean,noSidebar:Boolean,noToc:Boolean},slots:Object,setup(e,{slots:t}){const n=An(),r=Se(),o=Le(),s=pe(),{isMobile:l,isPC:a}=so(),[i,c]=Qo(!1),[f,d]=Qo(!1),p=Us(),v=Q(!1),m=S(()=>e.noNavbar||o.value.navbar===!1||s.value.navbar===!1?!1:!!(r.value.title||s.value.logo||s.value.repo||s.value.navbar)),E=S(()=>e.noSidebar?!1:o.value.sidebar!==!1&&p.value.length!==0&&!o.value.home),w=S(()=>e.noToc||o.value.home?!1:o.value.toc||s.value.toc!==!1&&o.value.toc!==!1),y={x:0,y:0},C=k=>{y.x=k.changedTouches[0].clientX,y.y=k.changedTouches[0].clientY},b=k=>{const q=k.changedTouches[0].clientX-y.x,N=k.changedTouches[0].clientY-y.y;Math.abs(q)>Math.abs(N)*1.5&&Math.abs(q)>40&&(q>0&&y.x<=80?c(!0):c(!1))},x=()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;let $=0;return Ce("scroll",Xh(()=>{const k=x();k<=58||k<$?v.value=!1:$+200{k||c(!1)}),_e(()=>{const k=Ns(document.body);oe(i,N=>{k.value=N});const q=n.afterEach(()=>{c(!1)});Sn(()=>{k.value=!1,q()})}),()=>u(Tt("GlobalEncrypt")?wt("GlobalEncrypt"):ic,()=>u("div",{class:["theme-container",{"no-navbar":!m.value,"no-sidebar":!E.value&&!(t.sidebar||t.sidebarTop||t.sidebarBottom),"has-toc":w.value,"hide-navbar":v.value,"sidebar-collapsed":!l.value&&!a.value&&f.value,"sidebar-open":l.value&&i.value},e.containerClass,o.value.containerClass||""],onTouchStart:C,onTouchEnd:b},[m.value?u(j0,{onToggleSidebar:()=>c()},{startBefore:()=>{var k;return(k=t.navbarStartBefore)==null?void 0:k.call(t)},startAfter:()=>{var k;return(k=t.navbarStartAfter)==null?void 0:k.call(t)},centerBefore:()=>{var k;return(k=t.navbarCenterBefore)==null?void 0:k.call(t)},centerAfter:()=>{var k;return(k=t.navbarCenterAfter)==null?void 0:k.call(t)},endBefore:()=>{var k;return(k=t.navbarEndBefore)==null?void 0:k.call(t)},endAfter:()=>{var k;return(k=t.navbarEndAfter)==null?void 0:k.call(t)},screenTop:()=>{var k;return(k=t.navScreenTop)==null?void 0:k.call(t)},screenBottom:()=>{var k;return(k=t.navScreenBottom)==null?void 0:k.call(t)}}):null,u(Ut,{name:"fade"},()=>i.value?u("div",{class:"vp-sidebar-mask",onClick:()=>c(!1)}):null),u(Ut,{name:"fade"},()=>l.value?null:u("div",{class:"toggle-sidebar-wrapper",onClick:()=>d()},u("span",{class:["arrow",f.value?"end":"start"]}))),u(q0,{},{...t.sidebar?{default:()=>t.sidebar()}:{},top:()=>{var k;return(k=t.sidebarTop)==null?void 0:k.call(t)},bottom:()=>{var k;return(k=t.sidebarBottom)==null?void 0:k.call(t)}}),t.default(),u(A0)]))}});const mn=G({name:"DropTransition",props:{type:{type:String,default:"single"},delay:{type:Number,default:0},duration:{type:Number,default:.25},appear:Boolean},slots:Object,setup(e,{slots:t}){const n=o=>{o.style.transition=`transform ${e.duration}s ease-in-out ${e.delay}s, opacity ${e.duration}s ease-in-out ${e.delay}s`,o.style.transform="translateY(-20px)",o.style.opacity="0"},r=o=>{o.style.transform="translateY(0)",o.style.opacity="1"};return()=>u(e.type==="single"?Ut:Md,{name:"drop",appear:e.appear,onAppear:n,onAfterAppear:r,onEnter:n,onAfterEnter:r,onBeforeLeave:n},()=>t.default())}}),ns=({custom:e})=>u(Hi,{class:["theme-hope-content",{custom:e}]});ns.displayName="MarkdownContent",ns.props={custom:Boolean};var Wc=ns;const Kc=()=>u(ve,{name:"author"},()=>u("path",{d:"M649.6 633.6c86.4-48 147.2-144 147.2-249.6 0-160-128-288-288-288s-288 128-288 288c0 108.8 57.6 201.6 147.2 249.6-121.6 48-214.4 153.6-240 288-3.2 9.6 0 19.2 6.4 25.6 3.2 9.6 12.8 12.8 22.4 12.8h704c9.6 0 19.2-3.2 25.6-12.8 6.4-6.4 9.6-16 6.4-25.6-25.6-134.4-121.6-240-243.2-288z"}));Kc.displayName="AuthorIcon";const Gc=()=>u(ve,{name:"calendar"},()=>u("path",{d:"M716.4 110.137c0-18.753-14.72-33.473-33.472-33.473-18.753 0-33.473 14.72-33.473 33.473v33.473h66.993v-33.473zm-334.87 0c0-18.753-14.72-33.473-33.473-33.473s-33.52 14.72-33.52 33.473v33.473h66.993v-33.473zm468.81 33.52H716.4v100.465c0 18.753-14.72 33.473-33.472 33.473a33.145 33.145 0 01-33.473-33.473V143.657H381.53v100.465c0 18.753-14.72 33.473-33.473 33.473a33.145 33.145 0 01-33.473-33.473V143.657H180.6A134.314 134.314 0 0046.66 277.595v535.756A134.314 134.314 0 00180.6 947.289h669.74a134.36 134.36 0 00133.94-133.938V277.595a134.314 134.314 0 00-133.94-133.938zm33.473 267.877H147.126a33.145 33.145 0 01-33.473-33.473c0-18.752 14.72-33.473 33.473-33.473h736.687c18.752 0 33.472 14.72 33.472 33.473a33.145 33.145 0 01-33.472 33.473z"}));Gc.displayName="CalendarIcon";const Yc=()=>u(ve,{name:"category"},()=>u("path",{d:"M148.41 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H148.41c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.311-40.31zM147.556 553.478H429.73c22.263 0 40.311 18.048 40.311 40.31v282.176c0 22.263-18.048 40.312-40.31 40.312H147.555c-22.263 0-40.311-18.049-40.311-40.312V593.79c0-22.263 18.048-40.311 40.31-40.311zM593.927 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H593.927c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.31-40.31zM730.22 920.502H623.926c-40.925 0-74.22-33.388-74.22-74.425V623.992c0-41.038 33.387-74.424 74.425-74.424h222.085c41.038 0 74.424 33.226 74.424 74.067v114.233c0 10.244-8.304 18.548-18.547 18.548s-18.548-8.304-18.548-18.548V623.635c0-20.388-16.746-36.974-37.33-36.974H624.13c-20.585 0-37.331 16.747-37.331 37.33v222.086c0 20.585 16.654 37.331 37.126 37.331H730.22c10.243 0 18.547 8.304 18.547 18.547 0 10.244-8.304 18.547-18.547 18.547z"}));Yc.displayName="CategoryIcon";const Jc=()=>u(ve,{name:"eye"},()=>u("path",{d:"M992 512.096c0-5.76-.992-10.592-1.28-11.136-.192-2.88-1.152-8.064-2.08-10.816-.256-.672-.544-1.376-.832-2.08-.48-1.568-1.024-3.104-1.6-4.32C897.664 290.112 707.104 160 512 160c-195.072 0-385.632 130.016-473.76 322.592-1.056 2.112-1.792 4.096-2.272 5.856a55.512 55.512 0 00-.64 1.6c-1.76 5.088-1.792 8.64-1.632 7.744-.832 3.744-1.568 11.168-1.568 11.168-.224 2.272-.224 4.032.032 6.304 0 0 .736 6.464 1.088 7.808.128 1.824.576 4.512 1.12 6.976h-.032c.448 2.08 1.12 4.096 1.984 6.08.48 1.536.992 2.976 1.472 4.032C126.432 733.856 316.992 864 512 864c195.136 0 385.696-130.048 473.216-321.696 1.376-2.496 2.24-4.832 2.848-6.912.256-.608.48-1.184.672-1.728 1.536-4.48 1.856-8.32 1.728-8.32l-.032.032c.608-3.104 1.568-7.744 1.568-13.28zM512 672c-88.224 0-160-71.776-160-160s71.776-160 160-160 160 71.776 160 160-71.776 160-160 160z"}));Jc.displayName="EyeIcon";const Qc=()=>u(ve,{name:"fire"},()=>u("path",{d:"M726.4 201.6c-12.8-9.6-28.8-6.4-38.4 0-9.6 9.6-16 25.6-9.6 38.4 6.4 12.8 9.6 28.8 12.8 44.8C604.8 83.2 460.8 38.4 454.4 35.2c-9.6-3.2-22.4 0-28.8 6.4-9.6 6.4-12.8 19.2-9.6 28.8 12.8 86.4-25.6 188.8-115.2 310.4-6.4-25.6-16-51.2-32-80-9.6-9.6-22.4-16-35.2-12.8-16 3.2-25.6 12.8-25.6 28.8-3.2 48-25.6 92.8-51.2 140.8C134.4 499.2 112 544 102.4 592c-32 150.4 99.2 329.6 233.6 380.8 9.6 3.2 19.2 6.4 32 9.6-25.6-19.2-41.6-51.2-48-96C294.4 691.2 505.6 640 515.2 460.8c153.6 105.6 224 336 137.6 505.6 3.2 0 6.4-3.2 9.6-3.2 0 0 3.2 0 3.2-3.2 163.2-89.6 252.8-208 259.2-345.6 16-211.2-163.2-390.4-198.4-412.8z"}));Qc.displayName="FireIcon";const Xc=()=>u(ve,{name:"print"},()=>u("path",{d:"M819.2 364.8h-44.8V128c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v236.8h-44.8C145.067 364.8 96 413.867 96 473.6v192c0 59.733 49.067 108.8 108.8 108.8h44.8V896c0 17.067 14.933 32 32 32h460.8c17.067 0 32-14.933 32-32V774.4h44.8c59.733 0 108.8-49.067 108.8-108.8v-192c0-59.733-49.067-108.8-108.8-108.8zM313.6 160h396.8v204.8H313.6V160zm396.8 704H313.6V620.8h396.8V864zM864 665.6c0 25.6-19.2 44.8-44.8 44.8h-44.8V588.8c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v121.6h-44.8c-25.6 0-44.8-19.2-44.8-44.8v-192c0-25.6 19.2-44.8 44.8-44.8h614.4c25.6 0 44.8 19.2 44.8 44.8v192z"}));Xc.displayName="PrintIcon";const Zc=()=>u(ve,{name:"tag"},()=>u("path",{d:"M939.902 458.563L910.17 144.567c-1.507-16.272-14.465-29.13-30.737-30.737L565.438 84.098h-.402c-3.215 0-5.726 1.005-7.634 2.913l-470.39 470.39a10.004 10.004 0 000 14.164l365.423 365.424c1.909 1.908 4.42 2.913 7.132 2.913s5.223-1.005 7.132-2.913l470.39-470.39c2.01-2.11 3.014-5.023 2.813-8.036zm-240.067-72.121c-35.458 0-64.286-28.828-64.286-64.286s28.828-64.285 64.286-64.285 64.286 28.828 64.286 64.285-28.829 64.286-64.286 64.286z"}));Zc.displayName="TagIcon";const eu=()=>u(ve,{name:"word"},()=>[u("path",{d:"M518.217 432.64V73.143A73.143 73.143 0 01603.43 1.097a512 512 0 01419.474 419.474 73.143 73.143 0 01-72.046 85.212H591.36a73.143 73.143 0 01-73.143-73.143z"}),u("path",{d:"M493.714 566.857h340.297a73.143 73.143 0 0173.143 85.577A457.143 457.143 0 11371.566 117.76a73.143 73.143 0 0185.577 73.143v339.383a36.571 36.571 0 0036.571 36.571z"})]);eu.displayName="WordIcon";const Qt=()=>{const e=pe();return S(()=>e.value.metaLocales)};var U0=G({name:"AuthorInfo",inheritAttrs:!1,props:{author:{type:Array,required:!0},pure:Boolean},setup(e){const t=Qt();return()=>e.author.length?u("span",{class:"page-author-info","aria-label":`${t.value.author}${e.pure?"":"🖊"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(Kc),u("span",e.author.map(n=>n.url?u("a",{class:"page-author-item",href:n.url,target:"_blank",rel:"noopener noreferrer"},n.name):u("span",{class:"page-author-item"},n.name))),u("span",{property:"author",content:e.author.map(n=>n.name).join(", ")})]):null}}),W0=G({name:"CategoryInfo",inheritAttrs:!1,props:{category:{type:Array,required:!0},pure:Boolean},setup(e){const t=Qt(),n=zs();return()=>e.category.length?u("span",{class:"page-category-info","aria-label":`${t.value.category}${e.pure?"":"🌈"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(Yc),e.category.map(({name:r,path:o})=>u("span",{class:["page-category-item",{[`category${pc(r,9)}`]:!e.pure,clickable:o}],role:o?"navigation":"",onClick:()=>{o&&n(o)}},r)),u("meta",{property:"articleSection",content:e.category.map(({name:r})=>r).join(",")})]):null}}),K0=G({name:"DateInfo",inheritAttrs:!1,props:{date:{type:Object,default:null},localizedDate:{type:String,default:""},pure:Boolean},setup(e){const t=$i(),n=Qt();return()=>e.date?u("span",{class:"page-date-info","aria-label":`${n.value.date}${e.pure?"":"📅"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(Gc),u("span",u(no,()=>e.localizedDate||e.date.toLocaleDateString(t.value))),u("meta",{property:"datePublished",content:e.date.toISOString()||""})]):null}}),G0=G({name:"OriginalInfo",inheritAttrs:!1,props:{isOriginal:Boolean},setup(e){const t=Qt();return()=>e.isOriginal?u("span",{class:"page-original-info"},t.value.origin):null}}),Y0=G({name:"PageViewInfo",inheritAttrs:!1,props:{pageview:{type:[Boolean,String],default:!1},pure:Boolean},setup(e){const t=Rt(),n=Qt(),r=Ne(),o=Q(0);return Xi(r,()=>{},{childList:!0}),()=>e.pageview?u("span",{class:"page-pageview-info","aria-label":`${n.value.views}${e.pure?"":"🔢"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(o.value<1e3?Jc:Qc),u("span",{ref:r,id:"ArtalkPV",class:"vp-pageview waline-pageview-count","data-path":Ee(e.pageview)?e.pageview:t.path,"data-page-key":Ee(e.pageview)?e.pageview:t.path},"...")]):null}}),J0=G({name:"TagInfo",inheritAttrs:!1,props:{tag:{type:Array,default:()=>[]},pure:Boolean},setup(e){const t=Qt(),n=zs();return()=>e.tag.length?u("span",{class:"page-tag-info","aria-label":`${t.value.tag}${e.pure?"":"🏷"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(Zc),e.tag.map(({name:r,path:o})=>u("span",{class:["page-tag-item",{[`tag${pc(r,9)}`]:!e.pure,clickable:o}],role:o?"navigation":"",onClick:()=>{o&&n(o)}},r)),u("meta",{property:"keywords",content:e.tag.map(({name:r})=>r).join(",")})]):null}}),Q0=G({name:"ReadTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=Qt();return()=>{var n,r,o;return(n=e.readingTimeLocale)!=null&&n.words?u("span",{class:"page-word-info","aria-label":`${t.value.words}${e.pure?"":"🔠"}`,...e.pure?{}:{"data-balloon-pos":"up"}},[u(eu),u("span",(r=e.readingTimeLocale)==null?void 0:r.words),u("meta",{property:"wordCount",content:(o=e.readingTime)==null?void 0:o.words})]):null}}}),X0=G({name:"PageInfo",components:{AuthorInfo:U0,CategoryInfo:W0,DateInfo:K0,OriginalInfo:G0,PageViewInfo:Y0,ReadingTimeInfo:()=>null,TagInfo:J0,WordInfo:Q0},props:{items:{type:[Array,Boolean],default:()=>["Author","Original","Date","PageView","ReadingTime","Category","Tag"]},info:{type:Object,required:!0}},setup(e){const t=br();return()=>e.items?u("div",{class:"page-info"},e.items.map(n=>u(wt(`${n}Info`),{...e.info,pure:t.value}))):null}}),Z0=G({name:"PrintButton",setup(){const e=Rn(),t=pe();return()=>e.value.print===!1?null:u("button",{type:"button",class:"print-button",title:t.value.metaLocales.print,onClick:()=>{window.print()}},u(Xc))}}),eg=G({name:"TOC",props:{items:{type:Array,default:()=>[]},headerDepth:{type:Number,default:2}},slots:Object,setup(e,{slots:t}){const n=Rt(),r=Se(),o=Qt(),[s,l]=Qo(),a=Ne(),i=Q("-1.7rem"),c=d=>{var p;(p=a.value)==null||p.scrollTo({top:d,behavior:"smooth"})},f=()=>{if(a.value){const d=document.querySelector(".vp-toc-item.active");d?i.value=`${d.getBoundingClientRect().top-a.value.getBoundingClientRect().top+a.value.scrollTop}px`:i.value="-1.7rem"}else i.value="-1.7rem"};return _e(()=>{oe(()=>n.hash,d=>{if(a.value){const p=document.querySelector(`#toc a.toc-link[href$="${d}"]`);if(!p)return;const{top:v,height:m}=a.value.getBoundingClientRect(),{top:E,height:w}=p.getBoundingClientRect();Ev+m&&c(a.value.scrollTop+E+w-v-m)}}),oe(()=>n.fullPath,f,{flush:"post",immediate:!0})}),()=>{var m,E;const d=({title:w,level:y,slug:C})=>u(Qe,{to:`#${C}`,class:["vp-toc-link",`level${y}`],onClick:()=>{l()}},()=>w),p=(w,y)=>w.length&&y>0?u("ul",{class:"vp-toc-list"},w.map(C=>{const b=p(C.children,y-1);return[u("li",{class:["vp-toc-item",{active:n.hash===`#${C.slug}`}]},d(C)),b?u("li",b):null]})):null,v=e.items.length?p(e.items,e.headerDepth):r.value.headers?p(r.value.headers,e.headerDepth):null;return v?u("div",{class:"vp-toc-placeholder"},[u("aside",{id:"toc"},[(m=t.before)==null?void 0:m.call(t),u("div",{class:"vp-toc-header",onClick:()=>{l()}},[o.value.toc,u(Z0),u("div",{class:["arrow",s.value?"down":"end"]})]),u("div",{class:["vp-toc-wrapper",s.value?"open":""],ref:a},[v,u("div",{class:"vp-toc-marker",style:{top:i.value}})]),(E=t.after)==null?void 0:E.call(t)])]):null}}}),tu=G({name:"SkipLink",props:{content:{type:String,default:"main-content"}},setup(e){const t=Se(),n=pe(),r=Ne(),o=({target:s})=>{const l=document.querySelector(s.hash);if(l){const a=()=>{l.removeAttribute("tabindex"),l.removeEventListener("blur",a)};l.setAttribute("tabindex","-1"),l.addEventListener("blur",a),l.focus(),window.scrollTo(0,0)}};return _e(()=>{oe(()=>t.value.path,()=>r.value.focus())}),()=>[u("span",{ref:r,tabindex:"-1"}),u("a",{href:`#${e.content}`,class:"vp-skip-link sr-only",onClick:o},n.value.routeLocales.skipToContent)]}});let Po=null,Mn=null;const rs={wait:()=>Po,pending:()=>{Po=new Promise(e=>{Mn=e})},resolve:()=>{Mn==null||Mn(),Po=null,Mn=null}},nu=(e,{slots:t})=>u(Ut,{name:"fade-slide-y",mode:"out-in",onBeforeEnter:rs.resolve,onBeforeLeave:rs.pending},()=>{var n;return(n=t.default)==null?void 0:n.call(t)});nu.displayName="FadeSlideY";const tg=(e,t)=>{const n=e.replace(t,"/").split("/"),r=[];let o=As(t);return n.forEach((s,l)=>{l!==n.length-1?(o+=`${s}/`,r.push({link:o,name:s||"Home"})):s!==""&&(o+=s,r.push({link:o,name:s}))}),r},ru=(e,{slots:t})=>{var d,p;const{bgImage:n,bgImageDark:r,bgImageStyle:o,color:s,description:l,image:a,imageDark:i,header:c,features:f=[]}=e;return u("div",{class:"vp-feature-wrapper"},[n?u("div",{class:["vp-feature-bg",{light:r}],style:[{"background-image":`url(${n})`},o]}):null,r?u("div",{class:"vp-feature-bg dark",style:[{"background-image":`url(${r})`},o]}):null,u("div",{class:"vp-feature",style:s?{color:s}:{}},[((d=t.image)==null?void 0:d.call(t,e))||[a?u("img",{class:["vp-feature-image",{light:i}],src:Ve(a),alt:""}):null,i?u("img",{class:"vp-feature-image dark",src:Ve(i),alt:""}):null],((p=t.info)==null?void 0:p.call(t,e))||[c?u("h2",{class:"vp-feature-header"},c):null,l?u("p",{class:"vp-feature-description",innerHTML:l}):null],f.length?u("div",{class:"vp-features"},f.map(({icon:v,title:m,details:E,link:w})=>{const y=[u("h3",{class:"vp-feature-title"},[u(Be,{icon:v}),u("span",{innerHTML:m})]),u("p",{class:"vp-feature-details",innerHTML:E})];return w?Ts(w)?u("a",{class:"vp-feature-item link",href:w,"aria-label":m,target:"_blank"},y):u(Qe,{class:"vp-feature-item link",to:w,"aria-label":m},()=>y):u("div",{class:"vp-feature-item"},y)})):null])])};ru.displayName="FeaturePanel";var da=ru,ng=G({name:"HeroInfo",slots:Object,setup(e,{slots:t}){const n=Le(),r=to(),o=S(()=>n.value.heroFullScreen??!1),s=S(()=>{const{heroText:c,tagline:f}=n.value;return{text:c??r.value.title??"Hello",tagline:f??r.value.description??"",isFullScreen:o.value}}),l=S(()=>{const{heroText:c,heroImage:f,heroImageDark:d,heroAlt:p,heroImageStyle:v}=n.value;return{image:f?Ve(f):null,imageDark:d?Ve(d):null,style:v,alt:p||c||"",isFullScreen:o.value}}),a=S(()=>{const{bgImage:c,bgImageDark:f,bgImageStyle:d}=n.value;return{image:Ee(c)?Ve(c):null,imageDark:Ee(f)?Ve(f):null,bgStyle:d,isFullScreen:o.value}}),i=S(()=>n.value.actions??[]);return()=>{var c,f,d;return u("header",{class:["vp-hero-info-wrapper",{fullscreen:o.value}]},[((c=t.heroBg)==null?void 0:c.call(t,a.value))||[a.value.image?u("div",{class:["vp-hero-mask",{light:a.value.imageDark}],style:[{"background-image":`url(${a.value.image})`},a.value.bgStyle]}):null,a.value.imageDark?u("div",{class:"vp-hero-mask dark",style:[{"background-image":`url(${a.value.imageDark})`},a.value.bgStyle]}):null],u("div",{class:"vp-hero-info"},[((f=t.heroImage)==null?void 0:f.call(t,l.value))||u(mn,{appear:!0,type:"group"},()=>[l.value.image?u("img",{key:"light",class:["vp-hero-image",{light:l.value.imageDark}],style:l.value.style,src:l.value.image,alt:l.value.alt}):null,l.value.imageDark?u("img",{key:"dark",class:"vp-hero-image dark",style:l.value.style,src:l.value.imageDark,alt:l.value.alt}):null]),((d=t.heroInfo)==null?void 0:d.call(t,s.value))??u("div",{class:"vp-hero-infos"},[s.value.text?u(mn,{appear:!0,delay:.04},()=>u("h1",{id:"main-title"},s.value.text)):null,s.value.tagline?u(mn,{appear:!0,delay:.08},()=>u("p",{id:"main-description",innerHTML:s.value.tagline})):null,i.value.length?u(mn,{appear:!0,delay:.12},()=>u("p",{class:"vp-hero-actions"},i.value.map(p=>u(qe,{class:["vp-hero-action",p.type||"default"],config:p,noExternalLinkIcon:!0},p.icon?{before:()=>u(Be,{icon:p.icon})}:{})))):null])])])}}});const ou=(e,{slots:t})=>{var p,v,m;const{bgImage:n,bgImageDark:r,bgImageStyle:o,color:s,description:l,image:a,imageDark:i,header:c,highlights:f=[],type:d="un-order"}=e;return u("div",{class:"vp-highlight-wrapper",style:s?{color:s}:{}},[n?u("div",{class:["vp-highlight-bg",{light:r}],style:[{"background-image":`url(${n})`},o]}):null,r?u("div",{class:"vp-highlight-bg dark",style:[{"background-image":`url(${r})`},o]}):null,u("div",{class:"vp-highlight"},[((p=t.image)==null?void 0:p.call(t,e))||[a?u("img",{class:["vp-highlight-image",{light:i}],src:Ve(a),alt:""}):null,i?u("img",{class:"vp-highlight-image dark",src:Ve(i),alt:""}):null],((v=t.info)==null?void 0:v.call(t,e))||[u("div",{class:"vp-highlight-info-wrapper"},u("div",{class:"vp-highlight-info"},[c?u("h2",{class:"vp-highlight-header",innerHTML:c}):null,l?u("p",{class:"vp-highlight-description",innerHTML:l}):null,((m=t.highlights)==null?void 0:m.call(t,f))||u(d==="order"?"ol":d==="no-order"?"dl":"ul",{class:"vp-highlights"},f.map(({icon:E,title:w,details:y,link:C})=>{const b=[u(d==="no-order"?"dt":"h3",{class:"vp-highlight-title"},[E?u(Be,{class:"vp-highlight-icon",icon:E}):null,u("span",{innerHTML:w})]),y?u(d==="no-order"?"dd":"p",{class:"vp-highlight-details",innerHTML:y}):null];return u(d==="no-order"?"div":"li",{class:["vp-highlight-item-wrapper",{link:C}]},C?Ts(C)?u("a",{class:"vp-highlight-item link",href:C,"aria-label":w,target:"_blank"},b):u(Qe,{class:"vp-highlight-item link",to:C,"aria-label":w},()=>b):u("div",{class:"vp-highlight-item"},b))}))]))]])])};ou.displayName="HighlightPanel";var rg=ou,og=G({name:"HomePage",slots:Object,setup(e,{slots:t}){const n=br(),r=Le(),o=S(()=>{const{features:l}=r.value;return Yo(l)?l:null}),s=S(()=>{const{highlights:l}=r.value;return Yo(l)?l:null});return()=>{var l,a,i,c;return u("main",{id:"main-content",class:["vp-project-home ",{pure:n.value}],"aria-labelledby":r.value.heroText===null?"":"main-title"},[(l=t.top)==null?void 0:l.call(t),u(ng),((a=s.value)==null?void 0:a.map(f=>"features"in f?u(da,f):u(rg,f)))||(o.value?u(mn,{appear:!0,delay:.24},()=>u(da,{features:o.value})):null),(i=t.center)==null?void 0:i.call(t),u(mn,{appear:!0,delay:.32},()=>u(Wc)),(c=t.bottom)==null?void 0:c.call(t)])}}}),sg=G({name:"BreadCrumb",setup(){const e=Se(),t=un(),n=Le(),r=pe(),o=Ne([]),s=S(()=>(n.value.breadcrumb||n.value.breadcrumb!==!1&&r.value.breadcrumb!==!1)&&o.value.length>1),l=S(()=>n.value.breadcrumbIcon||n.value.breadcrumbIcon!==!1&&r.value.breadcrumbIcon!==!1),a=()=>{const i=tg(e.value.path,t.value).map(({link:c,name:f})=>{const{path:d,meta:p,notFound:v}=Wt(c);return v||p[yt.breadcrumbExclude]?null:{title:p[yt.shortTitle]||p[yt.title]||f,icon:p[yt.icon],path:d}}).filter(c=>c!==null);i.length>1&&(o.value=i)};return _e(()=>{oe(()=>e.value.path,a,{immediate:!0})}),()=>u("nav",{class:["vp-breadcrumb",{disable:!s.value}]},s.value?u("ol",{vocab:"https://schema.org/",typeof:"BreadcrumbList"},o.value.map((i,c)=>u("li",{class:{"is-active":o.value.length-1===c},property:"itemListElement",typeof:"ListItem"},[u(Qe,{to:i.path,property:"item",typeof:"WebPage"},()=>[l.value?u(Be,{icon:i.icon}):null,u("span",{property:"name"},i.title||"Unknown")]),u("meta",{property:"position",content:c+1})]))):[])}});const pa=(e,t)=>e===!1||Xr(e)?e:Ee(e)?qs(e,!0,t):null,os=(e,t,n)=>{const r=e.findIndex(o=>o.link===t);if(r!==-1){const o=e[r+n];return o!=null&&o.link?o:null}for(const o of e)if("children"in o){const s=os(o.children,t,n);if(s)return s}return null};var lg=G({name:"PageNav",setup(){const e=pe(),t=Le(),n=Us(),r=Se(),o=zs(),s=Rt(),l=S(()=>{const i=pa(t.value.prev,s.path);return i===!1?null:i||(e.value.prevLink===!1?null:os(n.value,r.value.path,-1))}),a=S(()=>{const i=pa(t.value.next,s.path);return i===!1?null:i||(e.value.nextLink===!1?null:os(n.value,r.value.path,1))});return Ce("keydown",i=>{i.altKey&&(i.key==="ArrowRight"?a.value&&(o(a.value.link),i.preventDefault()):i.key==="ArrowLeft"&&l.value&&(o(l.value.link),i.preventDefault()))}),()=>l.value||a.value?u("nav",{class:"vp-page-nav"},[l.value?u(qe,{class:"prev",config:l.value},()=>{var i,c;return[u("div",{class:"hint"},[u("span",{class:"arrow start"}),e.value.metaLocales.prev]),u("div",{class:"link"},[u(Be,{icon:(i=l.value)==null?void 0:i.icon}),(c=l.value)==null?void 0:c.text])]}):null,a.value?u(qe,{class:"next",config:a.value},()=>{var i,c;return[u("div",{class:"hint"},[e.value.metaLocales.next,u("span",{class:"arrow end"})]),u("div",{class:"link"},[(i=a.value)==null?void 0:i.text,u(Be,{icon:(c=a.value)==null?void 0:c.icon})])]}):null]):null}});const ag=()=>{const e=pe(),t=Se(),n=Le();return S(()=>{var r;return n.value.contributors??e.value.contributors??!0?((r=t.value.git)==null?void 0:r.contributors)??null:null})},ig={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},cg=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:r,editLinkPattern:o})=>{if(!r)return null;const s=Hs(e);let l;return o?l=o:s!==null&&(l=ig[s]),l?l.replace(/:repo/u,cn(e)?e:`https://github.com/${e}`).replace(/:branch/u,t).replace(/:path/u,Ci(`${As(n)}/${r}`)):null},ug=()=>{const e=pe(),t=Se(),n=Le();return S(()=>{const{repo:r,docsRepo:o=r,docsBranch:s="main",docsDir:l="",editLink:a,editLinkPattern:i=""}=e.value;if(!(n.value.editLink??a??!0)||!o)return null;const c=cg({docsRepo:o,docsBranch:s,docsDir:l,editLinkPattern:i,filePathRelative:t.value.filePathRelative});return c?{text:e.value.metaLocales.editLink,link:c}:null})},fg=()=>{const e=to(),t=pe(),n=Se(),r=Le();return S(()=>{var o,s;return!(r.value.lastUpdated??t.value.lastUpdated??!0)||!((o=n.value.git)!=null&&o.updatedTime)?null:new Date((s=n.value.git)==null?void 0:s.updatedTime).toLocaleString(e.value.lang)})};var dg=G({name:"PageTitle",setup(){const e=Se(),t=Le(),n=pe(),{info:r,items:o}=b0();return()=>u("div",{class:"vp-page-title"},[u("h1",[n.value.titleIcon===!1?null:u(Be,{icon:t.value.icon}),e.value.title]),u(X0,{info:r.value,...o.value===null?{}:{items:o.value}}),u("hr")])}});const su=()=>u(ve,{name:"edit"},()=>[u("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),u("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})]);su.displayName="EditIcon";var pg=G({name:"PageMeta",setup(){const e=pe(),t=ug(),n=fg(),r=ag();return()=>{const{metaLocales:o}=e.value;return u("footer",{class:"vp-page-meta"},[t.value?u("div",{class:"vp-meta-item edit-link"},u(qe,{class:"vp-meta-label",config:t.value},{before:()=>u(su)})):null,u("div",{class:"vp-meta-item git-info"},[n.value?u("div",{class:"update-time"},[u("span",{class:"vp-meta-label"},`${o.lastUpdated}: `),u(no,()=>u("span",{class:"vp-meta-info"},n.value))]):null,r.value&&r.value.length?u("div",{class:"contributors"},[u("span",{class:"vp-meta-label"},`${o.contributors}: `),r.value.map(({email:s,name:l},a)=>[u("span",{class:"vp-meta-info",title:`email: ${s}`},l),a!==r.value.length-1?",":""])]):null])])}}}),hg=G({name:"NormalPage",slots:Object,setup(e,{slots:t}){const n=Le(),{isDarkmode:r}=yr(),o=pe(),s=S(()=>n.value.toc||n.value.toc!==!1&&o.value.toc!==!1);return()=>u("main",{id:"main-content",class:"vp-page"},u(Tt("LocalEncrypt")?wt("LocalEncrypt"):ic,()=>{var l,a,i,c;return[(l=t.top)==null?void 0:l.call(t),n.value.cover?u("div",{class:"page-cover"},u("img",{src:Ve(n.value.cover),alt:"","no-view":""})):null,u(sg),u(dg),s.value?u(eg,{headerDepth:n.value.headerDepth??o.value.headerDepth??2},{before:()=>{var f;return(f=t.tocBefore)==null?void 0:f.call(t)},after:()=>{var f;return(f=t.tocAfter)==null?void 0:f.call(t)}}):null,(a=t.contentBefore)==null?void 0:a.call(t),u(Wc),(i=t.contentAfter)==null?void 0:i.call(t),u(pg),u(lg),Tt("CommentService")?u(wt("CommentService"),{darkmode:r.value}):null,(c=t.bottom)==null?void 0:c.call(t)]}))}}),vg=G({name:"Layout",slots:Object,setup(e,{slots:t}){pe();const n=Se(),r=Le(),{isMobile:o}=so(),s=S(()=>"none");return()=>[u(tu),u(Uc,{},{default:()=>{var l;return((l=t.default)==null?void 0:l.call(t))||(r.value.home?u(og):u(nu,()=>u(hg,{key:n.value.path},{top:()=>{var a;return(a=t.top)==null?void 0:a.call(t)},bottom:()=>{var a;return(a=t.bottom)==null?void 0:a.call(t)},contentBefore:()=>{var a;return(a=t.contentBefore)==null?void 0:a.call(t)},contentAfter:()=>{var a;return(a=t.contentAfter)==null?void 0:a.call(t)},tocBefore:()=>{var a;return(a=t.tocBefore)==null?void 0:a.call(t)},tocAfter:()=>{var a;return(a=t.tocAfter)==null?void 0:a.call(t)}})))},...s.value==="none"?{}:{navScreenBottom:()=>u(wt("BloggerInfo"))},...!o.value&&s.value==="always"?{sidebar:()=>u(wt("BloggerInfo"))}:{}})]}}),gg=G({name:"NotFoundHint",setup(){const e=pe(),t=()=>{const n=e.value.routeLocales.notFoundMsg;return n[Math.floor(Math.random()*n.length)]};return()=>u("div",{class:"not-found-hint"},[u("p",{class:"error-code"},"404"),u("h1",{class:"error-title"},e.value.routeLocales.notFoundTitle),u("p",{class:"error-hint"},t())])}}),mg=G({name:"NotFound",slots:Object,setup(e,{slots:t}){const n=An(),r=un(),o=pe();return()=>[u(tu),u(Uc,{noSidebar:!0},()=>{var s;return u("main",{id:"main-content",class:"vp-page not-found"},((s=t.default)==null?void 0:s.call(t))||[u(gg),u("div",{class:"actions"},[u("button",{type:"button",class:"action-button",onClick:()=>{window.history.go(-1)}},o.value.routeLocales.back),u("button",{type:"button",class:"action-button",onClick:()=>{n.push(o.value.home??r.value)}},o.value.routeLocales.home)])])})]}});C1(e=>{const t=e.t,n=e.I!==!1,r=e.i;return n?{title:t,content:r?()=>[u(Be,{icon:r}),t]:null,order:e.O,index:e.I}:null});const bg=lt({enhance:({app:e,router:t})=>{const{scrollBehavior:n}=t.options;t.options.scrollBehavior=async(...r)=>(await rs.wait(),n(...r)),_0(e),e.component("HopeIcon",Be)},setup:()=>{E0(),T0()},layouts:{Layout:vg,NotFound:mg}}),Pr=[vh,jh,E1,A1,O1,$1,F1,q1,tv,Cv,Dv,a0,bg],yg=JSON.parse('{"base":"/","lang":"en-US","title":"Taskiq","description":"Async Distributed Task Manager","head":[["meta",{"property":"og:image","content":"https://taskiq-python.github.io/logo.svg"}]],"locales":{}}');var Nn=Ne(yg),wg=Ip,_g=()=>{const e=sh({history:wg(As("/")),routes:[{name:"vuepress-route",path:"/:catchAll(.*)",components:{}}],scrollBehavior:(t,n,r)=>r||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{if(t.path!==n.path||n===xt){const r=Wt(t.path);if(r.path!==t.path)return r.path;const o=await r.loader();t.meta={...r.meta,_pageChunk:o}}else t.path===n.path&&(t.meta=n.meta)}),e},Eg=e=>{e.component("ClientOnly",no),e.component("Content",Hi),e.component("RouteLink",Qe)},Cg=(e,t,n)=>{const r=S(()=>t.currentRoute.value.path),o=ys((w,y)=>({get(){return w(),t.currentRoute.value.meta._pageChunk},set(C){t.currentRoute.value.meta._pageChunk=C,y()}})),s=S(()=>en.resolveLayouts(n)),l=S(()=>en.resolveRouteLocale(Nn.value.locales,r.value)),a=S(()=>en.resolveSiteLocaleData(Nn.value,l.value)),i=S(()=>o.value.comp),c=S(()=>o.value.data),f=S(()=>c.value.frontmatter),d=S(()=>en.resolvePageHeadTitle(c.value,a.value)),p=S(()=>en.resolvePageHead(d.value,f.value,a.value)),v=S(()=>en.resolvePageLang(c.value,a.value)),m=S(()=>en.resolvePageLayout(c.value,s.value)),E={layouts:s,pageData:c,pageComponent:i,pageFrontmatter:f,pageHead:p,pageHeadTitle:d,pageLang:v,pageLayout:m,redirects:Wo,routeLocale:l,routePath:r,routes:rr,siteData:Nn,siteLocaleData:a};return e.provide(Os,E),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>f.value},$head:{get:()=>p.value},$headTitle:{get:()=>d.value},$lang:{get:()=>v.value},$page:{get:()=>c.value},$routeLocale:{get:()=>l.value},$site:{get:()=>Nn.value},$siteLocale:{get:()=>a.value},$withBase:{get:()=>Ve}}),E},kg=()=>{const e=ih(),t=$i();let n=[];const r=()=>{e.value.forEach(l=>{const a=xg(l);a&&n.push(a)})},o=()=>{const l=[];return e.value.forEach(a=>{const i=Sg(a);i&&l.push(i)}),l},s=()=>{document.documentElement.lang=t.value;const l=o();n.forEach((a,i)=>{const c=l.findIndex(f=>a.isEqualNode(f));c===-1?(a.remove(),delete n[i]):l.splice(c,1)}),l.forEach(a=>document.head.appendChild(a)),n=[...n.filter(a=>!!a),...l]};an(fh,s),_e(()=>{r(),oe(e,s,{immediate:!1})})},xg=([e,t,n=""])=>{const r=Object.entries(t).map(([a,i])=>Ee(i)?`[${a}=${JSON.stringify(i)}]`:i===!0?`[${a}]`:"").join(""),o=`head > ${e}${r}`;return Array.from(document.querySelectorAll(o)).find(a=>a.innerText===n)||null},Sg=([e,t,n])=>{if(!Ee(e))return null;const r=document.createElement(e);return Xr(t)&&Object.entries(t).forEach(([o,s])=>{Ee(s)?r.setAttribute(o,s):s===!0&&r.setAttribute(o,"")}),Ee(n)&&r.appendChild(document.createTextNode(n)),r},Tg=jd,Ag=async()=>{var n;const e=Tg({name:"Vuepress",setup(){var s;kg();for(const l of Pr)(s=l.setup)==null||s.call(l);const r=Pr.flatMap(({rootComponents:l=[]})=>l.map(a=>u(a))),o=ch();return()=>[u(o.value),r]}}),t=_g();Eg(e),Cg(e,t,Pr);for(const r of Pr)await((n=r.enhance)==null?void 0:n.call(r,{app:e,router:t,siteData:Nn}));return e.use(t),{app:e,router:t}};Ag().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{_e as A,Mg as B,Kv as C,Sn as D,Ig as E,Xr as F,Bv as G,Vv as H,Ji as I,zr as J,Ee as K,Bs as P,Qe as R,ce as _,Og as a,fi as b,Rg as c,Ag as createVueApp,di as d,Re as e,G as f,An as g,un as h,Jt as i,ur as j,Q as k,S as l,Ce as m,oe as n,Lg as o,u as p,Ec as q,wt as r,jv as s,Kr as t,Pg as u,Hv as v,sf as w,Fv as x,Se as y,Ne as z}; diff --git a/assets/arc-Dfq8ddjc.js b/assets/arc-DKl72la8.js similarity index 96% rename from assets/arc-Dfq8ddjc.js rename to assets/arc-DKl72la8.js index 54ffa23..fd52ef1 100644 --- a/assets/arc-Dfq8ddjc.js +++ b/assets/arc-DKl72la8.js @@ -1 +1 @@ -import{w as ln,c as U}from"./path-CbwjOpE9.js";import{aO as an,aP as Y,aQ as O,aR as rn,aS as y,aK as on,aT as z,aU as _,aV as un,aW as t,aX as sn,aY as tn,aZ as fn}from"./mermaid.core-Cio1iadR.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,D,S,v,R,V,a){var E=D-l,i=S-h,n=V-v,m=a-R,r=m*E-n*i;if(!(r*ru*u+X*X&&(K=w,Q=d),{cx:K,cy:Q,x01:-n,y01:-m,x11:K*(v/T-1),y11:Q*(v/T-1)}}function vn(){var l=cn,h=yn,D=U(0),S=null,v=gn,R=mn,V=pn,a=null,E=ln(i);function i(){var n,m,r=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-rn,c=R.apply(this,arguments)-rn,W=un(c-f),o=c>f;if(a||(a=n=E()),sy))a.moveTo(0,0);else if(W>on-y)a.moveTo(s*Y(f),s*O(f)),a.arc(0,0,s,f,c,!o),r>y&&(a.moveTo(r*Y(c),r*O(c)),a.arc(0,0,r,c,f,o));else{var p=f,g=c,A=f,T=c,P=W,I=W,K=V.apply(this,arguments)/2,Q=K>y&&(S?+S.apply(this,arguments):z(r*r+s*s)),w=_(un(s-r)/2,+D.apply(this,arguments)),d=w,x=w,e,u;if(Q>y){var X=sn(Q/r*O(K)),B=sn(Q/s*O(K));(P-=X*2)>y?(X*=o?1:-1,A+=X,T-=X):(P=0,A=T=(f+c)/2),(I-=B*2)>y?(B*=o?1:-1,p+=B,g-=B):(I=0,p=g=(f+c)/2)}var Z=s*Y(p),j=s*O(p),C=r*Y(T),F=r*O(T);if(w>y){var G=s*Y(g),H=s*O(g),L=r*Y(A),M=r*O(A),q;if(Wy?x>y?(e=J(L,M,Z,j,s,x,o),u=J(G,H,C,F,s,x,o),a.moveTo(e.cx+e.x01,e.cy+e.y01),xy)||!(P>y)?a.lineTo(C,F):d>y?(e=J(C,F,G,H,r,-d,o),u=J(Z,j,L,M,r,-d,o),a.lineTo(e.cx+e.x01,e.cy+e.y01),du*u+X*X&&(K=w,Q=d),{cx:K,cy:Q,x01:-n,y01:-m,x11:K*(v/T-1),y11:Q*(v/T-1)}}function vn(){var l=cn,h=yn,D=U(0),S=null,v=gn,R=mn,V=pn,a=null,E=ln(i);function i(){var n,m,r=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-rn,c=R.apply(this,arguments)-rn,W=un(c-f),o=c>f;if(a||(a=n=E()),sy))a.moveTo(0,0);else if(W>on-y)a.moveTo(s*Y(f),s*O(f)),a.arc(0,0,s,f,c,!o),r>y&&(a.moveTo(r*Y(c),r*O(c)),a.arc(0,0,r,c,f,o));else{var p=f,g=c,A=f,T=c,P=W,I=W,K=V.apply(this,arguments)/2,Q=K>y&&(S?+S.apply(this,arguments):z(r*r+s*s)),w=_(un(s-r)/2,+D.apply(this,arguments)),d=w,x=w,e,u;if(Q>y){var X=sn(Q/r*O(K)),B=sn(Q/s*O(K));(P-=X*2)>y?(X*=o?1:-1,A+=X,T-=X):(P=0,A=T=(f+c)/2),(I-=B*2)>y?(B*=o?1:-1,p+=B,g-=B):(I=0,p=g=(f+c)/2)}var Z=s*Y(p),j=s*O(p),C=r*Y(T),F=r*O(T);if(w>y){var G=s*Y(g),H=s*O(g),L=r*Y(A),M=r*O(A),q;if(Wy?x>y?(e=J(L,M,Z,j,s,x,o),u=J(G,H,C,F,s,x,o),a.moveTo(e.cx+e.x01,e.cy+e.y01),xy)||!(P>y)?a.lineTo(C,F):d>y?(e=J(C,F,G,H,r,-d,o),u=J(Z,j,L,M,r,-d,o),a.lineTo(e.cx+e.x01,e.cy+e.y01),dArchitecture overview

Taskiq has very simple structure. On the client side all messages are sent by kickers using brokers. On the worker side all messages received by the broker and results are stored in result backends.

On the sequence diagram it looks like this:

Cool tip!

If you use dark theme and cannot see words on diagram, try switching to light theme and back to dark.

',4),h=n("p",null,"Let's discuss every component.",-1),y=n("h2",{id:"broker",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#broker"},[n("span",null,"Broker")])],-1),g=n("strong",null,"must",-1),w=n("code",null,"AsyncBroker",-1),f={href:"https://github.com/taskiq-python/taskiq/blob/master/taskiq/abc/broker.py",target:"_blank",rel:"noopener noreferrer"},_=c(`

AsyncBroker class has two main methods to implement:

  • kick
  • listen

The kick method puts the message in the external system. For example, it may call the PUB command in Redis.

The listen is a method with an infinite loop that reads messages from the external system and creates a task for processing messages. For example, it subscribes to the Redis channel and waits for new messages.

Kicker

Kicker is an object that used to form a message for broker. This class isn't extendable. To form a message kicker uses labels, task name and arguments.

When you call the task.kiq on a task, it generates a Kicker instance and is a shortening for the task.kicker().kiq(...). You can use kicker to change broker, add labels, or even change task_id.

import asyncio
+import{_ as d}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as k,c as m,e as o,b as n,d as s,w as e,a as c}from"./app-B7rxM88G.js";const v={},b=c('

Architecture overview

Taskiq has very simple structure. On the client side all messages are sent by kickers using brokers. On the worker side all messages received by the broker and results are stored in result backends.

On the sequence diagram it looks like this:

Cool tip!

If you use dark theme and cannot see words on diagram, try switching to light theme and back to dark.

',4),h=n("p",null,"Let's discuss every component.",-1),y=n("h2",{id:"broker",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#broker"},[n("span",null,"Broker")])],-1),g=n("strong",null,"must",-1),w=n("code",null,"AsyncBroker",-1),f={href:"https://github.com/taskiq-python/taskiq/blob/master/taskiq/abc/broker.py",target:"_blank",rel:"noopener noreferrer"},_=c(`

AsyncBroker class has two main methods to implement:

  • kick
  • listen

The kick method puts the message in the external system. For example, it may call the PUB command in Redis.

The listen is a method with an infinite loop that reads messages from the external system and creates a task for processing messages. For example, it subscribes to the Redis channel and waits for new messages.

Kicker

Kicker is an object that used to form a message for broker. This class isn't extendable. To form a message kicker uses labels, task name and arguments.

When you call the task.kiq on a task, it generates a Kicker instance and is a shortening for the task.kicker().kiq(...). You can use kicker to change broker, add labels, or even change task_id.

import asyncio
 
 from taskiq.brokers.inmemory_broker import InMemoryBroker
 
@@ -98,4 +98,4 @@ broker `),n("span",{class:"token operator"},"="),s(" ZeroMQBroker"),n("span",{cl
 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),H=n("div",{class:"language-python line-numbers-mode","data-ext":"py","data-title":"py"},[n("pre",{class:"language-python"},[n("code",null,[n("span",{class:"token decorator annotation punctuation"},[s("@broker"),n("span",{class:"token punctuation"},"."),s("task")]),s(`
 `),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token keyword"},"def"),s(),n("span",{class:"token function"},"my_task"),n("span",{class:"token punctuation"},"("),s("context"),n("span",{class:"token punctuation"},":"),s(" Context "),n("span",{class:"token operator"},"="),s(" TaskiqDepends"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},":"),s(`
    `),n("span",{class:"token keyword"},"await"),s(" context"),n("span",{class:"token punctuation"},"."),s("requeue"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(`
-`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),L=n("p",null,[s("Calling "),n("code",null,"requeue"),s(" or "),n("code",null,"reject"),s(" stops task execution and either drops the message, or puts it back to the queue.")],-1),U=n("p",null,"Also, with context you'll be able to get current message that was received by the broker or even instance of a broker who received a message. This may be useful for lib developers.",-1);function D(E,P){const r=i("Mermaid"),l=i("ExternalLinkIcon"),u=i("RouteLink"),p=i("Tabs");return k(),m("div",null,[b,o(r,{id:"mermaid-14",code:"eJyVkL0OwjAMhHeewiNIgASIAQYGfiYmYECMaXqUiDYRToJ4fEygqGVjiZTc57tzPG4RVmNtVMGq6hAxdCAusu5oNurTeDyRYzrtiWJdALEpLoHcmU4uMmmXY06r0sAG8ibHULivQoPFgrZGX8FzUt6jykpQBe9VAQHfUqKW7BJ1gM0bhNz+qFSbHB2/fOs+7+cUs3kEsFUl7SKiNP+Ja8utYntomPsLatjV4uYBHaVJUP7aJvbwsQyUKdnU5hKo7oJdpHQSviu2uTTa+OBPeHPwCc7mjN4="}),h,y,n("p",null,[s("Brokers are the most critical element of the taskiq. Every broker "),g,s(" implement the "),w,s(" abstract class from "),n("a",f,[s("taskiq.abc.broker"),o(l)]),s(" to make things work.")]),_,n("p",null,[s("Result backend is used to store and get results of the execution. Results have type "),q,s(" from "),n("a",x,[s("taskiq.result"),o(l)]),s(".")]),n("p",null,[s("Every ResultBackend must implement "),T,s(" from "),n("a",A,[s("taskiq.abc.result_backend"),o(l)]),s(". By default, brokers use "),M,s(". It doesn't do anything and cannot be used in real-world scenarios. But some brokers can override it. For example "),B,s(" by default uses "),C,s(" and returns correct results.")]),I,n("p",null,[s("If you have uvloop installed, taskiq will automatically install new policies to event loop. You can get more info about the CLI in the "),o(u,{to:"/guide/cli.html"},{default:e(()=>[s("CLI")]),_:1}),s(" section.")]),R,o(p,{id:"189",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:e(({value:a,isActive:t})=>[s("Annotated 3.10+")]),title1:e(({value:a,isActive:t})=>[s("default values")]),tab0:e(({value:a,isActive:t})=>[j]),tab1:e(({value:a,isActive:t})=>[O]),_:1}),N,o(p,{id:"200",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:e(({value:a,isActive:t})=>[s("Annotated 3.10+")]),title1:e(({value:a,isActive:t})=>[s("default values")]),tab0:e(({value:a,isActive:t})=>[Y]),tab1:e(({value:a,isActive:t})=>[H]),_:1}),L,U])}const J=d(v,[["render",D],["__file","architecture-overview.html.vue"]]),Q=JSON.parse('{"path":"/guide/architecture-overview.html","title":"Architecture overview","lang":"en-US","frontmatter":{"order":3,"description":"Architecture overview Taskiq has very simple structure. On the client side all messages are sent by kickers using brokers. On the worker side all messages received by the broker...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/architecture-overview.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Architecture overview"}],["meta",{"property":"og:description","content":"Architecture overview Taskiq has very simple structure. On the client side all messages are sent by kickers using brokers. On the worker side all messages received by the broker..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Architecture overview\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Broker","slug":"broker","link":"#broker","children":[]},{"level":2,"title":"Kicker","slug":"kicker","link":"#kicker","children":[]},{"level":2,"title":"Messages","slug":"messages","link":"#messages","children":[]},{"level":2,"title":"Result backend","slug":"result-backend","link":"#result-backend","children":[]},{"level":2,"title":"Workers","slug":"workers","link":"#workers","children":[]},{"level":2,"title":"Middlewares","slug":"middlewares","link":"#middlewares","children":[]},{"level":2,"title":"Context","slug":"context","link":"#context","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/architecture-overview.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Taskiq has very simple structure.\\nOn the client side all messages are sent by kickers using brokers.\\nOn the worker side all messages received by the broker and results are stored in result backends.

\\n

On the sequence diagram it looks like this:

\\n
\\n

Cool tip!

\\n

If you use dark theme and cannot see words on diagram,\\ntry switching to light theme and back to dark.

\\n
"}');export{J as comp,Q as data}; +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),L=n("p",null,[s("Calling "),n("code",null,"requeue"),s(" or "),n("code",null,"reject"),s(" stops task execution and either drops the message, or puts it back to the queue.")],-1),U=n("p",null,"Also, with context you'll be able to get current message that was received by the broker or even instance of a broker who received a message. This may be useful for lib developers.",-1);function D(E,P){const r=i("Mermaid"),l=i("ExternalLinkIcon"),u=i("RouteLink"),p=i("Tabs");return k(),m("div",null,[b,o(r,{id:"mermaid-14",code:"eJyVkL0OwjAMhHeewiNIgASIAQYGfiYmYECMaXqUiDYRToJ4fEygqGVjiZTc57tzPG4RVmNtVMGq6hAxdCAusu5oNurTeDyRYzrtiWJdALEpLoHcmU4uMmmXY06r0sAG8ibHULivQoPFgrZGX8FzUt6jykpQBe9VAQHfUqKW7BJ1gM0bhNz+qFSbHB2/fOs+7+cUs3kEsFUl7SKiNP+Ja8utYntomPsLatjV4uYBHaVJUP7aJvbwsQyUKdnU5hKo7oJdpHQSviu2uTTa+OBPeHPwCc7mjN4="}),h,y,n("p",null,[s("Brokers are the most critical element of the taskiq. Every broker "),g,s(" implement the "),w,s(" abstract class from "),n("a",f,[s("taskiq.abc.broker"),o(l)]),s(" to make things work.")]),_,n("p",null,[s("Result backend is used to store and get results of the execution. Results have type "),q,s(" from "),n("a",x,[s("taskiq.result"),o(l)]),s(".")]),n("p",null,[s("Every ResultBackend must implement "),T,s(" from "),n("a",A,[s("taskiq.abc.result_backend"),o(l)]),s(". By default, brokers use "),M,s(". It doesn't do anything and cannot be used in real-world scenarios. But some brokers can override it. For example "),B,s(" by default uses "),C,s(" and returns correct results.")]),I,n("p",null,[s("If you have uvloop installed, taskiq will automatically install new policies to event loop. You can get more info about the CLI in the "),o(u,{to:"/guide/cli.html"},{default:e(()=>[s("CLI")]),_:1}),s(" section.")]),R,o(p,{id:"189",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:e(({value:a,isActive:t})=>[s("Annotated 3.10+")]),title1:e(({value:a,isActive:t})=>[s("default values")]),tab0:e(({value:a,isActive:t})=>[j]),tab1:e(({value:a,isActive:t})=>[O]),_:1}),N,o(p,{id:"200",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:e(({value:a,isActive:t})=>[s("Annotated 3.10+")]),title1:e(({value:a,isActive:t})=>[s("default values")]),tab0:e(({value:a,isActive:t})=>[Y]),tab1:e(({value:a,isActive:t})=>[H]),_:1}),L,U])}const J=d(v,[["render",D],["__file","architecture-overview.html.vue"]]),Q=JSON.parse('{"path":"/guide/architecture-overview.html","title":"Architecture overview","lang":"en-US","frontmatter":{"order":3,"description":"Architecture overview Taskiq has very simple structure. On the client side all messages are sent by kickers using brokers. On the worker side all messages received by the broker...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/architecture-overview.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Architecture overview"}],["meta",{"property":"og:description","content":"Architecture overview Taskiq has very simple structure. On the client side all messages are sent by kickers using brokers. On the worker side all messages received by the broker..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Architecture overview\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Broker","slug":"broker","link":"#broker","children":[]},{"level":2,"title":"Kicker","slug":"kicker","link":"#kicker","children":[]},{"level":2,"title":"Messages","slug":"messages","link":"#messages","children":[]},{"level":2,"title":"Result backend","slug":"result-backend","link":"#result-backend","children":[]},{"level":2,"title":"Workers","slug":"workers","link":"#workers","children":[]},{"level":2,"title":"Middlewares","slug":"middlewares","link":"#middlewares","children":[]},{"level":2,"title":"Context","slug":"context","link":"#context","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/architecture-overview.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Taskiq has very simple structure.\\nOn the client side all messages are sent by kickers using brokers.\\nOn the worker side all messages received by the broker and results are stored in result backends.

\\n

On the sequence diagram it looks like this:

\\n
\\n

Cool tip!

\\n

If you use dark theme and cannot see words on diagram,\\ntry switching to light theme and back to dark.

\\n
"}');export{J as comp,Q as data}; diff --git a/assets/blockDiagram-9f4a6865-Lac1f6ab.js b/assets/blockDiagram-9f4a6865-Zpc-eQGX.js similarity index 98% rename from assets/blockDiagram-9f4a6865-Lac1f6ab.js rename to assets/blockDiagram-9f4a6865-Zpc-eQGX.js index 7d853aa..f5013fd 100644 --- a/assets/blockDiagram-9f4a6865-Lac1f6ab.js +++ b/assets/blockDiagram-9f4a6865-Zpc-eQGX.js @@ -1,4 +1,4 @@ -import{c as he,a$ as se,h as H,i as ye,l as S,A as Ee,af as we,j as De,p as ve}from"./mermaid.core-Cio1iadR.js";import{c as Ne}from"./clone-B4YCsPuJ.js";import{i as ke,c as Ie,b as Oe,d as Te,a as ge,p as ze}from"./edges-066a5561-31kAkIJ0.js";import{G as Ce}from"./graph-k1ojK0f-.js";import{o as Ae}from"./ordinal-Cboi1Yqb.js";import{c as Re}from"./channel-It_pefhc.js";import{s as Be}from"./Tableau10-B-NsZVaP.js";import"./app-BQ_RvZRm.js";import"./createText-ca0c5216-BYApgeQh.js";import"./line-DOPC82El.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./init-Gi6I4Gst.js";var le,oe,ee=function(){var e=function(D,o,s,i){for(s=s||{},i=D.length;i--;s[D[i]]=o);return s},a=[1,7],d=[1,13],c=[1,14],n=[1,15],g=[1,19],l=[1,16],f=[1,17],b=[1,18],p=[8,30],x=[8,21,28,29,30,31,32,40,44,47],y=[1,23],T=[1,24],v=[8,15,16,21,28,29,30,31,32,40,44,47],N=[8,15,16,21,27,28,29,30,31,32,40,44,47],E=[1,49],L={trace:function(){},yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:function(o,s,i,u,h,t,m){var r=t.length-1;switch(h){case 4:u.getLogger().debug("Rule: separator (NL) ");break;case 5:u.getLogger().debug("Rule: separator (Space) ");break;case 6:u.getLogger().debug("Rule: separator (EOF) ");break;case 7:u.getLogger().debug("Rule: hierarchy: ",t[r-1]),u.setHierarchy(t[r-1]);break;case 8:u.getLogger().debug("Stop NL ");break;case 9:u.getLogger().debug("Stop EOF ");break;case 10:u.getLogger().debug("Stop NL2 ");break;case 11:u.getLogger().debug("Stop EOF2 ");break;case 12:u.getLogger().debug("Rule: statement: ",t[r]),typeof t[r].length=="number"?this.$=t[r]:this.$=[t[r]];break;case 13:u.getLogger().debug("Rule: statement #2: ",t[r-1]),this.$=[t[r-1]].concat(t[r]);break;case 14:u.getLogger().debug("Rule: link: ",t[r],o),this.$={edgeTypeStr:t[r],label:""};break;case 15:u.getLogger().debug("Rule: LABEL link: ",t[r-3],t[r-1],t[r]),this.$={edgeTypeStr:t[r],label:t[r-1]};break;case 18:const R=parseInt(t[r]),Y=u.generateId();this.$={id:Y,type:"space",label:"",width:R,children:[]};break;case 23:u.getLogger().debug("Rule: (nodeStatement link node) ",t[r-2],t[r-1],t[r]," typestr: ",t[r-1].edgeTypeStr);const F=u.edgeStrToEdgeData(t[r-1].edgeTypeStr);this.$=[{id:t[r-2].id,label:t[r-2].label,type:t[r-2].type,directions:t[r-2].directions},{id:t[r-2].id+"-"+t[r].id,start:t[r-2].id,end:t[r].id,label:t[r-1].label,type:"edge",directions:t[r].directions,arrowTypeEnd:F,arrowTypeStart:"arrow_open"},{id:t[r].id,label:t[r].label,type:u.typeStr2Type(t[r].typeStr),directions:t[r].directions}];break;case 24:u.getLogger().debug("Rule: nodeStatement (abc88 node size) ",t[r-1],t[r]),this.$={id:t[r-1].id,label:t[r-1].label,type:u.typeStr2Type(t[r-1].typeStr),directions:t[r-1].directions,widthInColumns:parseInt(t[r],10)};break;case 25:u.getLogger().debug("Rule: nodeStatement (node) ",t[r]),this.$={id:t[r].id,label:t[r].label,type:u.typeStr2Type(t[r].typeStr),directions:t[r].directions,widthInColumns:1};break;case 26:u.getLogger().debug("APA123",this?this:"na"),u.getLogger().debug("COLUMNS: ",t[r]),this.$={type:"column-setting",columns:t[r]==="auto"?-1:parseInt(t[r])};break;case 27:u.getLogger().debug("Rule: id-block statement : ",t[r-2],t[r-1]),u.generateId(),this.$={...t[r-2],type:"composite",children:t[r-1]};break;case 28:u.getLogger().debug("Rule: blockStatement : ",t[r-2],t[r-1],t[r]);const C=u.generateId();this.$={id:C,type:"composite",label:"",children:t[r-1]};break;case 29:u.getLogger().debug("Rule: node (NODE_ID separator): ",t[r]),this.$={id:t[r]};break;case 30:u.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",t[r-1],t[r]),this.$={id:t[r-1],label:t[r].label,typeStr:t[r].typeStr,directions:t[r].directions};break;case 31:u.getLogger().debug("Rule: dirList: ",t[r]),this.$=[t[r]];break;case 32:u.getLogger().debug("Rule: dirList: ",t[r-1],t[r]),this.$=[t[r-1]].concat(t[r]);break;case 33:u.getLogger().debug("Rule: nodeShapeNLabel: ",t[r-2],t[r-1],t[r]),this.$={typeStr:t[r-2]+t[r],label:t[r-1]};break;case 34:u.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",t[r-3],t[r-2]," #3:",t[r-1],t[r]),this.$={typeStr:t[r-3]+t[r],label:t[r-2],directions:t[r-1]};break;case 35:case 36:this.$={type:"classDef",id:t[r-1].trim(),css:t[r].trim()};break;case 37:this.$={type:"applyClass",id:t[r-1].trim(),styleClass:t[r].trim()};break;case 38:this.$={type:"applyStyles",id:t[r-1].trim(),stylesStr:t[r].trim()};break}},table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:d,29:c,31:n,32:g,40:l,44:f,47:b},{8:[1,20]},e(p,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:a,28:d,29:c,31:n,32:g,40:l,44:f,47:b}),e(x,[2,16],{14:22,15:y,16:T}),e(x,[2,17]),e(x,[2,18]),e(x,[2,19]),e(x,[2,20]),e(x,[2,21]),e(x,[2,22]),e(v,[2,25],{27:[1,25]}),e(x,[2,26]),{19:26,26:12,32:g},{11:27,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:d,29:c,31:n,32:g,40:l,44:f,47:b},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},e(N,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},e(p,[2,13]),{26:35,32:g},{32:[2,14]},{17:[1,36]},e(v,[2,24]),{11:37,13:4,14:22,15:y,16:T,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:d,29:c,31:n,32:g,40:l,44:f,47:b},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},e(N,[2,30]),{18:[1,43]},{18:[1,44]},e(v,[2,23]),{18:[1,45]},{30:[1,46]},e(x,[2,28]),e(x,[2,35]),e(x,[2,36]),e(x,[2,37]),e(x,[2,38]),{37:[1,47]},{34:48,35:E},{15:[1,50]},e(x,[2,27]),e(N,[2,33]),{39:[1,51]},{34:52,35:E,39:[2,31]},{32:[2,15]},e(N,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:function(o,s){if(s.recoverable)this.trace(o);else{var i=new Error(o);throw i.hash=s,i}},parse:function(o){var s=this,i=[0],u=[],h=[null],t=[],m=this.table,r="",R=0,Y=0,F=2,C=1,Le=t.slice.call(arguments,1),w=Object.create(this.lexer),K={yy:{}};for(var Z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Z)&&(K.yy[Z]=this.yy[Z]);w.setInput(o,K.yy),K.yy.lexer=w,K.yy.parser=this,typeof w.yylloc>"u"&&(w.yylloc={});var J=w.yylloc;t.push(J);var me=w.options&&w.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _e(){var P;return P=u.pop()||w.lex()||C,typeof P!="number"&&(P instanceof Array&&(u=P,P=u.pop()),P=s.symbols_[P]||P),P}for(var I,M,z,Q,W={},X,B,ae,G;;){if(M=i[i.length-1],this.defaultActions[M]?z=this.defaultActions[M]:((I===null||typeof I>"u")&&(I=_e()),z=m[M]&&m[M][I]),typeof z>"u"||!z.length||!z[0]){var $="";G=[];for(X in m[M])this.terminals_[X]&&X>F&&G.push("'"+this.terminals_[X]+"'");w.showPosition?$="Parse error on line "+(R+1)+`: +import{c as he,a$ as se,h as H,i as ye,l as S,A as Ee,af as we,j as De,p as ve}from"./mermaid.core-D8sVPjx9.js";import{c as Ne}from"./clone-SNQTcLae.js";import{i as ke,c as Ie,b as Oe,d as Te,a as ge,p as ze}from"./edges-066a5561-Cesv2_yT.js";import{G as Ce}from"./graph-BKQChTdx.js";import{o as Ae}from"./ordinal-Cboi1Yqb.js";import{c as Re}from"./channel-tiY1AyWJ.js";import{s as Be}from"./Tableau10-B-NsZVaP.js";import"./app-B7rxM88G.js";import"./createText-ca0c5216-zqCXB1ps.js";import"./line-Dh5t0evl.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./init-Gi6I4Gst.js";var le,oe,ee=function(){var e=function(D,o,s,i){for(s=s||{},i=D.length;i--;s[D[i]]=o);return s},a=[1,7],d=[1,13],c=[1,14],n=[1,15],g=[1,19],l=[1,16],f=[1,17],b=[1,18],p=[8,30],x=[8,21,28,29,30,31,32,40,44,47],y=[1,23],T=[1,24],v=[8,15,16,21,28,29,30,31,32,40,44,47],N=[8,15,16,21,27,28,29,30,31,32,40,44,47],E=[1,49],L={trace:function(){},yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:function(o,s,i,u,h,t,m){var r=t.length-1;switch(h){case 4:u.getLogger().debug("Rule: separator (NL) ");break;case 5:u.getLogger().debug("Rule: separator (Space) ");break;case 6:u.getLogger().debug("Rule: separator (EOF) ");break;case 7:u.getLogger().debug("Rule: hierarchy: ",t[r-1]),u.setHierarchy(t[r-1]);break;case 8:u.getLogger().debug("Stop NL ");break;case 9:u.getLogger().debug("Stop EOF ");break;case 10:u.getLogger().debug("Stop NL2 ");break;case 11:u.getLogger().debug("Stop EOF2 ");break;case 12:u.getLogger().debug("Rule: statement: ",t[r]),typeof t[r].length=="number"?this.$=t[r]:this.$=[t[r]];break;case 13:u.getLogger().debug("Rule: statement #2: ",t[r-1]),this.$=[t[r-1]].concat(t[r]);break;case 14:u.getLogger().debug("Rule: link: ",t[r],o),this.$={edgeTypeStr:t[r],label:""};break;case 15:u.getLogger().debug("Rule: LABEL link: ",t[r-3],t[r-1],t[r]),this.$={edgeTypeStr:t[r],label:t[r-1]};break;case 18:const R=parseInt(t[r]),Y=u.generateId();this.$={id:Y,type:"space",label:"",width:R,children:[]};break;case 23:u.getLogger().debug("Rule: (nodeStatement link node) ",t[r-2],t[r-1],t[r]," typestr: ",t[r-1].edgeTypeStr);const F=u.edgeStrToEdgeData(t[r-1].edgeTypeStr);this.$=[{id:t[r-2].id,label:t[r-2].label,type:t[r-2].type,directions:t[r-2].directions},{id:t[r-2].id+"-"+t[r].id,start:t[r-2].id,end:t[r].id,label:t[r-1].label,type:"edge",directions:t[r].directions,arrowTypeEnd:F,arrowTypeStart:"arrow_open"},{id:t[r].id,label:t[r].label,type:u.typeStr2Type(t[r].typeStr),directions:t[r].directions}];break;case 24:u.getLogger().debug("Rule: nodeStatement (abc88 node size) ",t[r-1],t[r]),this.$={id:t[r-1].id,label:t[r-1].label,type:u.typeStr2Type(t[r-1].typeStr),directions:t[r-1].directions,widthInColumns:parseInt(t[r],10)};break;case 25:u.getLogger().debug("Rule: nodeStatement (node) ",t[r]),this.$={id:t[r].id,label:t[r].label,type:u.typeStr2Type(t[r].typeStr),directions:t[r].directions,widthInColumns:1};break;case 26:u.getLogger().debug("APA123",this?this:"na"),u.getLogger().debug("COLUMNS: ",t[r]),this.$={type:"column-setting",columns:t[r]==="auto"?-1:parseInt(t[r])};break;case 27:u.getLogger().debug("Rule: id-block statement : ",t[r-2],t[r-1]),u.generateId(),this.$={...t[r-2],type:"composite",children:t[r-1]};break;case 28:u.getLogger().debug("Rule: blockStatement : ",t[r-2],t[r-1],t[r]);const C=u.generateId();this.$={id:C,type:"composite",label:"",children:t[r-1]};break;case 29:u.getLogger().debug("Rule: node (NODE_ID separator): ",t[r]),this.$={id:t[r]};break;case 30:u.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",t[r-1],t[r]),this.$={id:t[r-1],label:t[r].label,typeStr:t[r].typeStr,directions:t[r].directions};break;case 31:u.getLogger().debug("Rule: dirList: ",t[r]),this.$=[t[r]];break;case 32:u.getLogger().debug("Rule: dirList: ",t[r-1],t[r]),this.$=[t[r-1]].concat(t[r]);break;case 33:u.getLogger().debug("Rule: nodeShapeNLabel: ",t[r-2],t[r-1],t[r]),this.$={typeStr:t[r-2]+t[r],label:t[r-1]};break;case 34:u.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",t[r-3],t[r-2]," #3:",t[r-1],t[r]),this.$={typeStr:t[r-3]+t[r],label:t[r-2],directions:t[r-1]};break;case 35:case 36:this.$={type:"classDef",id:t[r-1].trim(),css:t[r].trim()};break;case 37:this.$={type:"applyClass",id:t[r-1].trim(),styleClass:t[r].trim()};break;case 38:this.$={type:"applyStyles",id:t[r-1].trim(),stylesStr:t[r].trim()};break}},table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:d,29:c,31:n,32:g,40:l,44:f,47:b},{8:[1,20]},e(p,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:a,28:d,29:c,31:n,32:g,40:l,44:f,47:b}),e(x,[2,16],{14:22,15:y,16:T}),e(x,[2,17]),e(x,[2,18]),e(x,[2,19]),e(x,[2,20]),e(x,[2,21]),e(x,[2,22]),e(v,[2,25],{27:[1,25]}),e(x,[2,26]),{19:26,26:12,32:g},{11:27,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:d,29:c,31:n,32:g,40:l,44:f,47:b},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},e(N,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},e(p,[2,13]),{26:35,32:g},{32:[2,14]},{17:[1,36]},e(v,[2,24]),{11:37,13:4,14:22,15:y,16:T,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:d,29:c,31:n,32:g,40:l,44:f,47:b},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},e(N,[2,30]),{18:[1,43]},{18:[1,44]},e(v,[2,23]),{18:[1,45]},{30:[1,46]},e(x,[2,28]),e(x,[2,35]),e(x,[2,36]),e(x,[2,37]),e(x,[2,38]),{37:[1,47]},{34:48,35:E},{15:[1,50]},e(x,[2,27]),e(N,[2,33]),{39:[1,51]},{34:52,35:E,39:[2,31]},{32:[2,15]},e(N,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:function(o,s){if(s.recoverable)this.trace(o);else{var i=new Error(o);throw i.hash=s,i}},parse:function(o){var s=this,i=[0],u=[],h=[null],t=[],m=this.table,r="",R=0,Y=0,F=2,C=1,Le=t.slice.call(arguments,1),w=Object.create(this.lexer),K={yy:{}};for(var Z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Z)&&(K.yy[Z]=this.yy[Z]);w.setInput(o,K.yy),K.yy.lexer=w,K.yy.parser=this,typeof w.yylloc>"u"&&(w.yylloc={});var J=w.yylloc;t.push(J);var me=w.options&&w.options.ranges;typeof K.yy.parseError=="function"?this.parseError=K.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _e(){var P;return P=u.pop()||w.lex()||C,typeof P!="number"&&(P instanceof Array&&(u=P,P=u.pop()),P=s.symbols_[P]||P),P}for(var I,M,z,Q,W={},X,B,ae,G;;){if(M=i[i.length-1],this.defaultActions[M]?z=this.defaultActions[M]:((I===null||typeof I>"u")&&(I=_e()),z=m[M]&&m[M][I]),typeof z>"u"||!z.length||!z[0]){var $="";G=[];for(X in m[M])this.terminals_[X]&&X>F&&G.push("'"+this.terminals_[X]+"'");w.showPosition?$="Parse error on line "+(R+1)+`: `+w.showPosition()+` Expecting `+G.join(", ")+", got '"+(this.terminals_[I]||I)+"'":$="Parse error on line "+(R+1)+": Unexpected "+(I==C?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError($,{text:w.match,token:this.terminals_[I]||I,line:w.yylineno,loc:J,expected:G})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+M+", token: "+I);switch(z[0]){case 1:i.push(I),h.push(w.yytext),t.push(w.yylloc),i.push(z[1]),I=null,Y=w.yyleng,r=w.yytext,R=w.yylineno,J=w.yylloc;break;case 2:if(B=this.productions_[z[1]][1],W.$=h[h.length-B],W._$={first_line:t[t.length-(B||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(B||1)].first_column,last_column:t[t.length-1].last_column},me&&(W._$.range=[t[t.length-(B||1)].range[0],t[t.length-1].range[1]]),Q=this.performAction.apply(W,[r,Y,R,K.yy,z[1],h,t].concat(Le)),typeof Q<"u")return Q;B&&(i=i.slice(0,-1*B*2),h=h.slice(0,-1*B),t=t.slice(0,-1*B)),i.push(this.productions_[z[1]][0]),h.push(W.$),t.push(W._$),ae=m[i[i.length-2]][i[i.length-1]],i.push(ae);break;case 3:return!0}}return!0}},A=function(){var D={EOF:1,parseError:function(s,i){if(this.yy.parser)this.yy.parser.parseError(s,i);else throw new Error(s)},setInput:function(o,s){return this.yy=s||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var s=o.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var s=o.length,i=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var h=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===u.length?this.yylloc.first_column:0)+u[u.length-i.length].length-i[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[h[0],h[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),s=new Array(o.length+1).join("-");return o+this.upcomingInput()+` diff --git a/assets/broker.html-DqusxivQ.js b/assets/broker.html-BoSB0Wjf.js similarity index 97% rename from assets/broker.html-DqusxivQ.js rename to assets/broker.html-BoSB0Wjf.js index 7b074e8..0112a44 100644 --- a/assets/broker.html-DqusxivQ.js +++ b/assets/broker.html-BoSB0Wjf.js @@ -1,4 +1,4 @@ -import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as a,a as e}from"./app-BQ_RvZRm.js";const t={},o=e(`

Brokers

To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class. But along with them we have helper methods. Such as shutdown and startup.

Here is a template for new brokers:

from typing import AsyncGenerator, Union
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as a,a as e}from"./app-B7rxM88G.js";const t={},o=e(`

Brokers

To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class. But along with them we have helper methods. Such as shutdown and startup.

Here is a template for new brokers:

from typing import AsyncGenerator, Union
 
 from taskiq import AckableMessage, AsyncBroker, BrokerMessage
 
@@ -41,4 +41,4 @@ import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as a,
          # Can be set to None if broker doesn't support it.
          reject=message.reject
       )
-

Conventions

For brokers, we have several conventions. It's good if your broker implements them. These rules are optional, and it's ok if your broker doesn't implement them.

  1. If the message has the delay label with int or float number, this task's execution must be delayed with the same number of seconds as in the delay label.
  2. If the message has the priority label, this message must be sent with priority. Tasks with higher priorities are executed sooner.
`,14),p=[o];function c(l,i){return s(),a("div",null,p)}const u=n(t,[["render",c],["__file","broker.html.vue"]]),d=JSON.parse('{"path":"/extending-taskiq/broker.html","title":"Brokers","lang":"en-US","frontmatter":{"order":1,"description":"Brokers To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class. But along with them we have helper methods. Su...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/broker.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Brokers"}],["meta",{"property":"og:description","content":"Brokers To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class. But along with them we have helper methods. Su..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Brokers\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Acknowledgement","slug":"acknowledgement","link":"#acknowledgement","children":[]},{"level":2,"title":"Conventions","slug":"conventions","link":"#conventions","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/broker.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class.\\nBut along with them we have helper methods. Such as shutdown and startup.

\\n

Here is a template for new brokers:

\\n
from typing import AsyncGenerator, Union\\n\\nfrom taskiq import AckableMessage, AsyncBroker, BrokerMessage\\n\\n\\nclass MyBroker(AsyncBroker):\\n    def __init__(self) -> None:\\n        # Please call this super method to set default values to\\n        # many different fields.\\n        super().__init__()\\n\\n    async def startup(self) -> None:\\n        # Here you can do some startup magic.\\n        # Like opening a connection.\\n        return await super().startup()\\n\\n    async def shutdown(self) -> None:\\n        # Here you can perform shutdown operations.\\n        # Like closing connections.\\n        return await super().shutdown()\\n\\n    async def kick(self, message: BrokerMessage) -> None:\\n        # Send a message.message.\\n        pass\\n\\n    async def listen(self) -> AsyncGenerator[Union[bytes, AckableMessage], None]:\\n        while True:\\n            # Get new message.\\n            new_message: bytes = ...  # type: ignore\\n            # Yield it!\\n            yield new_message\\n
"}');export{u as comp,d as data}; +

Conventions

For brokers, we have several conventions. It's good if your broker implements them. These rules are optional, and it's ok if your broker doesn't implement them.

  1. If the message has the delay label with int or float number, this task's execution must be delayed with the same number of seconds as in the delay label.
  2. If the message has the priority label, this message must be sent with priority. Tasks with higher priorities are executed sooner.
`,14),p=[o];function c(l,i){return s(),a("div",null,p)}const u=n(t,[["render",c],["__file","broker.html.vue"]]),d=JSON.parse('{"path":"/extending-taskiq/broker.html","title":"Brokers","lang":"en-US","frontmatter":{"order":1,"description":"Brokers To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class. But along with them we have helper methods. Su...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/broker.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Brokers"}],["meta",{"property":"og:description","content":"Brokers To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class. But along with them we have helper methods. Su..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Brokers\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Acknowledgement","slug":"acknowledgement","link":"#acknowledgement","children":[]},{"level":2,"title":"Conventions","slug":"conventions","link":"#conventions","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/broker.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class.\\nBut along with them we have helper methods. Such as shutdown and startup.

\\n

Here is a template for new brokers:

\\n
from typing import AsyncGenerator, Union\\n\\nfrom taskiq import AckableMessage, AsyncBroker, BrokerMessage\\n\\n\\nclass MyBroker(AsyncBroker):\\n    def __init__(self) -> None:\\n        # Please call this super method to set default values to\\n        # many different fields.\\n        super().__init__()\\n\\n    async def startup(self) -> None:\\n        # Here you can do some startup magic.\\n        # Like opening a connection.\\n        return await super().startup()\\n\\n    async def shutdown(self) -> None:\\n        # Here you can perform shutdown operations.\\n        # Like closing connections.\\n        return await super().shutdown()\\n\\n    async def kick(self, message: BrokerMessage) -> None:\\n        # Send a message.message.\\n        pass\\n\\n    async def listen(self) -> AsyncGenerator[Union[bytes, AckableMessage], None]:\\n        while True:\\n            # Get new message.\\n            new_message: bytes = ...  # type: ignore\\n            # Yield it!\\n            yield new_message\\n
"}');export{u as comp,d as data}; diff --git a/assets/brokers.html-aejrugY5.js b/assets/brokers.html-CaIcSGbA.js similarity index 96% rename from assets/brokers.html-aejrugY5.js rename to assets/brokers.html-CaIcSGbA.js index 4e02054..f8df427 100644 --- a/assets/brokers.html-aejrugY5.js +++ b/assets/brokers.html-CaIcSGbA.js @@ -1,4 +1,4 @@ -import{_ as d}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as c,o as p,c as u,b as e,d as s,e as r,w as a,a as i}from"./app-BQ_RvZRm.js";const k={},h=i('

Available brokers

In this section we'll list officially supported brokers.

InMemoryBroker

This is a special broker for local development. It uses the same functions to execute tasks, but all tasks are executed locally in the current thread. By default it uses InMemoryResultBackend but this can be overridden.

ZeroMQBroker

',5),b={href:"https://zeromq.org/",target:"_blank",rel:"noopener noreferrer"},m=e("p",null,[s("It publishes messages on the local port. All worker processes are reading messages from this port. If you run many worker processes, all tasks will be executed "),e("code",null,"N"),s(" times, where "),e("code",null,"N"),s(" is the total number of worker processes.")],-1),v=e("div",{class:"hint-container caution"},[e("p",{class:"hint-container-title"},"Be careful!"),e("p",null,[s("If you choose this type of broker, please run taskiq with "),e("code",null,"-w 1"),s(" parameter, otherwise you may encounter undefined behavior.")])],-1),f={href:"https://pypi.org/project/pyzmq/",target:"_blank",rel:"noopener noreferrer"},y=e("code",null,"zmq",-1),_=e("div",{class:"language-bash line-numbers-mode","data-ext":"sh","data-title":"sh"},[e("pre",{class:"language-bash"},[e("code",null,[s("pip "),e("span",{class:"token function"},"install"),s(` pyzmq +import{_ as d}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as c,o as p,c as u,b as e,d as s,e as r,w as a,a as i}from"./app-B7rxM88G.js";const k={},h=i('

Available brokers

In this section we'll list officially supported brokers.

InMemoryBroker

This is a special broker for local development. It uses the same functions to execute tasks, but all tasks are executed locally in the current thread. By default it uses InMemoryResultBackend but this can be overridden.

ZeroMQBroker

',5),b={href:"https://zeromq.org/",target:"_blank",rel:"noopener noreferrer"},m=e("p",null,[s("It publishes messages on the local port. All worker processes are reading messages from this port. If you run many worker processes, all tasks will be executed "),e("code",null,"N"),s(" times, where "),e("code",null,"N"),s(" is the total number of worker processes.")],-1),v=e("div",{class:"hint-container caution"},[e("p",{class:"hint-container-title"},"Be careful!"),e("p",null,[s("If you choose this type of broker, please run taskiq with "),e("code",null,"-w 1"),s(" parameter, otherwise you may encounter undefined behavior.")])],-1),f={href:"https://pypi.org/project/pyzmq/",target:"_blank",rel:"noopener noreferrer"},y=e("code",null,"zmq",-1),_=e("div",{class:"language-bash line-numbers-mode","data-ext":"sh","data-title":"sh"},[e("pre",{class:"language-bash"},[e("code",null,[s("pip "),e("span",{class:"token function"},"install"),s(` pyzmq `)])]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])],-1),g=e("div",{class:"language-bash line-numbers-mode","data-ext":"sh","data-title":"sh"},[e("pre",{class:"language-bash"},[e("code",null,[s("pip "),e("span",{class:"token function"},"install"),s(),e("span",{class:"token string"},'"taskiq[zmq]"'),s(` `)])]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])],-1),q=i(`

Async shared broker and shared tasks

This is also a special broker. You cannot use it directly. It's used to create shared tasks. These tasks can be imported along with user defined tasks. To define a shared task please use this broker.

from taskiq.brokers.shared_broker import async_shared_broker
 
@@ -12,4 +12,4 @@ async_shared_broker`),e("span",{class:"token punctuation"},"."),s("default_broke
 `)])]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])],-1),T=e("h2",{id:"custom-brokers",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#custom-brokers"},[e("span",null,"Custom brokers")])],-1),A=e("p",null,"These brokers are not parts of the core taskiq lib. You can install them as a separate packages.",-1),I=e("p",null,"You can read more about parameters and abilities of these brokers in README.md of each repo.",-1),M=e("h3",{id:"aiopikabroker-for-rabbitmq",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#aiopikabroker-for-rabbitmq"},[e("span",null,"AioPikaBroker (for RabbitMQ)")])],-1),B={href:"https://github.com/taskiq-python/taskiq-aio-pika",target:"_blank",rel:"noopener noreferrer"},z=i(`
pip install taskiq-aio-pika
 

Redis broker

`,2),Z={href:"https://github.com/taskiq-python/taskiq-redis",target:"_blank",rel:"noopener noreferrer"},N=i(`
pip install taskiq-redis
 

NATS broker

`,2),Q={href:"https://github.com/taskiq-python/taskiq-nats",target:"_blank",rel:"noopener noreferrer"},P=i(`
pip install taskiq-nats
-
`,1);function R(E,j){const o=c("ExternalLinkIcon"),l=c("Tabs");return p(),u("div",null,[h,e("p",null,[s("This broker uses "),e("a",b,[s("ZMQ"),r(o)]),s(" to communicate between worker and client processes. It's suitable for small projects with only ONE worker process, because of the ZMQ architecture.")]),m,v,e("p",null,[s("To run this broker please install the "),e("a",f,[s("pyzmq"),r(o)]),s(" lib. Or you can taskiq with "),y,s(" extra.")]),r(l,{id:"29",data:[{id:"Only PyZMQ"},{id:"Taskiq with ZMQ"}]},{title0:a(({value:t,isActive:n})=>[s("Only PyZMQ")]),title1:a(({value:t,isActive:n})=>[s("Taskiq with ZMQ")]),tab0:a(({value:t,isActive:n})=>[_]),tab1:a(({value:t,isActive:n})=>[g]),_:1}),q,r(l,{id:"59",data:[{id:"Defining default broker"},{id:"using kicker"}]},{title0:a(({value:t,isActive:n})=>[s("Defining default broker")]),title1:a(({value:t,isActive:n})=>[s("using kicker")]),tab0:a(({value:t,isActive:n})=>[x]),tab1:a(({value:t,isActive:n})=>[w]),_:1}),T,A,I,M,e("p",null,[s("Project link: "),e("a",B,[s("taskiq-aio-pika"),r(o)]),s(".")]),z,e("p",null,[s("Project link: "),e("a",Z,[s("taskiq-redis"),r(o)]),s(".")]),N,e("p",null,[s("Project link: "),e("a",Q,[s("taskiq-nats"),r(o)]),s(".")]),P])}const O=d(k,[["render",R],["__file","brokers.html.vue"]]),C=JSON.parse(`{"path":"/available-components/brokers.html","title":"Available brokers","lang":"en-US","frontmatter":{"order":2,"description":"Available brokers In this section we'll list officially supported brokers. InMemoryBroker This is a special broker for local development. It uses the same functions to execute t...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/available-components/brokers.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Available brokers"}],["meta",{"property":"og:description","content":"Available brokers In this section we'll list officially supported brokers. InMemoryBroker This is a special broker for local development. It uses the same functions to execute t..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Available brokers\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"InMemoryBroker","slug":"inmemorybroker","link":"#inmemorybroker","children":[]},{"level":2,"title":"ZeroMQBroker","slug":"zeromqbroker","link":"#zeromqbroker","children":[]},{"level":2,"title":"Async shared broker and shared tasks","slug":"async-shared-broker-and-shared-tasks","link":"#async-shared-broker-and-shared-tasks","children":[]},{"level":2,"title":"Custom brokers","slug":"custom-brokers","link":"#custom-brokers","children":[{"level":3,"title":"AioPikaBroker (for RabbitMQ)","slug":"aiopikabroker-for-rabbitmq","link":"#aiopikabroker-for-rabbitmq","children":[]},{"level":3,"title":"Redis broker","slug":"redis-broker","link":"#redis-broker","children":[]},{"level":3,"title":"NATS broker","slug":"nats-broker","link":"#nats-broker","children":[]}]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"available-components/brokers.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

In this section we'll list officially supported brokers.

\\n

InMemoryBroker

\\n

This is a special broker for local development. It uses the same functions to execute tasks,\\nbut all tasks are executed locally in the current thread.\\nBy default it uses InMemoryResultBackend but this can be overridden.

"}`);export{O as comp,C as data}; +
`,1);function R(E,j){const o=c("ExternalLinkIcon"),l=c("Tabs");return p(),u("div",null,[h,e("p",null,[s("This broker uses "),e("a",b,[s("ZMQ"),r(o)]),s(" to communicate between worker and client processes. It's suitable for small projects with only ONE worker process, because of the ZMQ architecture.")]),m,v,e("p",null,[s("To run this broker please install the "),e("a",f,[s("pyzmq"),r(o)]),s(" lib. Or you can taskiq with "),y,s(" extra.")]),r(l,{id:"29",data:[{id:"Only PyZMQ"},{id:"Taskiq with ZMQ"}]},{title0:a(({value:t,isActive:n})=>[s("Only PyZMQ")]),title1:a(({value:t,isActive:n})=>[s("Taskiq with ZMQ")]),tab0:a(({value:t,isActive:n})=>[_]),tab1:a(({value:t,isActive:n})=>[g]),_:1}),q,r(l,{id:"59",data:[{id:"Defining default broker"},{id:"using kicker"}]},{title0:a(({value:t,isActive:n})=>[s("Defining default broker")]),title1:a(({value:t,isActive:n})=>[s("using kicker")]),tab0:a(({value:t,isActive:n})=>[x]),tab1:a(({value:t,isActive:n})=>[w]),_:1}),T,A,I,M,e("p",null,[s("Project link: "),e("a",B,[s("taskiq-aio-pika"),r(o)]),s(".")]),z,e("p",null,[s("Project link: "),e("a",Z,[s("taskiq-redis"),r(o)]),s(".")]),N,e("p",null,[s("Project link: "),e("a",Q,[s("taskiq-nats"),r(o)]),s(".")]),P])}const O=d(k,[["render",R],["__file","brokers.html.vue"]]),C=JSON.parse(`{"path":"/available-components/brokers.html","title":"Available brokers","lang":"en-US","frontmatter":{"order":2,"description":"Available brokers In this section we'll list officially supported brokers. InMemoryBroker This is a special broker for local development. It uses the same functions to execute t...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/available-components/brokers.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Available brokers"}],["meta",{"property":"og:description","content":"Available brokers In this section we'll list officially supported brokers. InMemoryBroker This is a special broker for local development. It uses the same functions to execute t..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Available brokers\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"InMemoryBroker","slug":"inmemorybroker","link":"#inmemorybroker","children":[]},{"level":2,"title":"ZeroMQBroker","slug":"zeromqbroker","link":"#zeromqbroker","children":[]},{"level":2,"title":"Async shared broker and shared tasks","slug":"async-shared-broker-and-shared-tasks","link":"#async-shared-broker-and-shared-tasks","children":[]},{"level":2,"title":"Custom brokers","slug":"custom-brokers","link":"#custom-brokers","children":[{"level":3,"title":"AioPikaBroker (for RabbitMQ)","slug":"aiopikabroker-for-rabbitmq","link":"#aiopikabroker-for-rabbitmq","children":[]},{"level":3,"title":"Redis broker","slug":"redis-broker","link":"#redis-broker","children":[]},{"level":3,"title":"NATS broker","slug":"nats-broker","link":"#nats-broker","children":[]}]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"available-components/brokers.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

In this section we'll list officially supported brokers.

\\n

InMemoryBroker

\\n

This is a special broker for local development. It uses the same functions to execute tasks,\\nbut all tasks are executed locally in the current thread.\\nBy default it uses InMemoryResultBackend but this can be overridden.

"}`);export{O as comp,C as data}; diff --git a/assets/c4Diagram-ae766693-CUy5LWf1.js b/assets/c4Diagram-ae766693-BTix4Ws5.js similarity index 99% rename from assets/c4Diagram-ae766693-CUy5LWf1.js rename to assets/c4Diagram-ae766693-BTix4Ws5.js index 301e0ff..dcbca35 100644 --- a/assets/c4Diagram-ae766693-CUy5LWf1.js +++ b/assets/c4Diagram-ae766693-BTix4Ws5.js @@ -1,4 +1,4 @@ -import{s as we,g as Oe,a as Te,b as Re,c as Dt,d as ue,e as De,f as wt,h as Nt,l as le,i as Se,w as Pe,j as Kt,k as oe,m as Me}from"./mermaid.core-Cio1iadR.js";import{d as Le,g as Ne}from"./svgDrawCommon-5e1cfd1d-BdGGMEzj.js";import"./app-BQ_RvZRm.js";var Yt=function(){var e=function(bt,_,x,m){for(x=x||{},m=bt.length;m--;x[bt[m]]=_);return x},t=[1,24],a=[1,25],o=[1,26],l=[1,27],i=[1,28],s=[1,63],r=[1,64],n=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],E=[1,29],O=[1,30],R=[1,31],S=[1,32],L=[1,33],Y=[1,34],Q=[1,35],H=[1,36],q=[1,37],G=[1,38],K=[1,39],J=[1,40],Z=[1,41],$=[1,42],tt=[1,43],et=[1,44],it=[1,45],nt=[1,46],st=[1,47],at=[1,48],rt=[1,50],lt=[1,51],ot=[1,52],ct=[1,53],ht=[1,54],ut=[1,55],dt=[1,56],ft=[1,57],pt=[1,58],yt=[1,59],gt=[1,60],At=[14,42],Vt=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Ot=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],v=[1,82],k=[1,83],A=[1,84],C=[1,85],w=[12,14,42],ne=[12,14,33,42],Pt=[12,14,33,42,76,77,79,80],mt=[12,33],zt=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Xt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(_,x,m,g,T,u,Tt){var y=u.length-1;switch(T){case 3:g.setDirection("TB");break;case 4:g.setDirection("BT");break;case 5:g.setDirection("RL");break;case 6:g.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:g.setC4Type(u[y-3]);break;case 19:g.setTitle(u[y].substring(6)),this.$=u[y].substring(6);break;case 20:g.setAccDescription(u[y].substring(15)),this.$=u[y].substring(15);break;case 21:this.$=u[y].trim(),g.setTitle(this.$);break;case 22:case 23:this.$=u[y].trim(),g.setAccDescription(this.$);break;case 28:case 29:u[y].splice(2,0,"ENTERPRISE"),g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 30:g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 31:u[y].splice(2,0,"CONTAINER"),g.addContainerBoundary(...u[y]),this.$=u[y];break;case 32:g.addDeploymentNode("node",...u[y]),this.$=u[y];break;case 33:g.addDeploymentNode("nodeL",...u[y]),this.$=u[y];break;case 34:g.addDeploymentNode("nodeR",...u[y]),this.$=u[y];break;case 35:g.popBoundaryParseStack();break;case 39:g.addPersonOrSystem("person",...u[y]),this.$=u[y];break;case 40:g.addPersonOrSystem("external_person",...u[y]),this.$=u[y];break;case 41:g.addPersonOrSystem("system",...u[y]),this.$=u[y];break;case 42:g.addPersonOrSystem("system_db",...u[y]),this.$=u[y];break;case 43:g.addPersonOrSystem("system_queue",...u[y]),this.$=u[y];break;case 44:g.addPersonOrSystem("external_system",...u[y]),this.$=u[y];break;case 45:g.addPersonOrSystem("external_system_db",...u[y]),this.$=u[y];break;case 46:g.addPersonOrSystem("external_system_queue",...u[y]),this.$=u[y];break;case 47:g.addContainer("container",...u[y]),this.$=u[y];break;case 48:g.addContainer("container_db",...u[y]),this.$=u[y];break;case 49:g.addContainer("container_queue",...u[y]),this.$=u[y];break;case 50:g.addContainer("external_container",...u[y]),this.$=u[y];break;case 51:g.addContainer("external_container_db",...u[y]),this.$=u[y];break;case 52:g.addContainer("external_container_queue",...u[y]),this.$=u[y];break;case 53:g.addComponent("component",...u[y]),this.$=u[y];break;case 54:g.addComponent("component_db",...u[y]),this.$=u[y];break;case 55:g.addComponent("component_queue",...u[y]),this.$=u[y];break;case 56:g.addComponent("external_component",...u[y]),this.$=u[y];break;case 57:g.addComponent("external_component_db",...u[y]),this.$=u[y];break;case 58:g.addComponent("external_component_queue",...u[y]),this.$=u[y];break;case 60:g.addRel("rel",...u[y]),this.$=u[y];break;case 61:g.addRel("birel",...u[y]),this.$=u[y];break;case 62:g.addRel("rel_u",...u[y]),this.$=u[y];break;case 63:g.addRel("rel_d",...u[y]),this.$=u[y];break;case 64:g.addRel("rel_l",...u[y]),this.$=u[y];break;case 65:g.addRel("rel_r",...u[y]),this.$=u[y];break;case 66:g.addRel("rel_b",...u[y]),this.$=u[y];break;case 67:u[y].splice(0,1),g.addRel("rel",...u[y]),this.$=u[y];break;case 68:g.updateElStyle("update_el_style",...u[y]),this.$=u[y];break;case 69:g.updateRelStyle("update_rel_style",...u[y]),this.$=u[y];break;case 70:g.updateLayoutConfig("update_layout_config",...u[y]),this.$=u[y];break;case 71:this.$=[u[y]];break;case 72:u[y].unshift(u[y-1]),this.$=u[y];break;case 73:case 75:this.$=u[y].trim();break;case 74:let Et={};Et[u[y-1].trim()]=u[y].trim(),this.$=Et;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:70,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:71,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:72,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:73,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{14:[1,74]},e(At,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(At,[2,14]),e(Vt,[2,16],{12:[1,76]}),e(At,[2,36],{12:[1,77]}),e(Ot,[2,19]),e(Ot,[2,20]),{25:[1,78]},{27:[1,79]},e(Ot,[2,23]),{35:80,75:81,76:v,77:k,79:A,80:C},{35:86,75:81,76:v,77:k,79:A,80:C},{35:87,75:81,76:v,77:k,79:A,80:C},{35:88,75:81,76:v,77:k,79:A,80:C},{35:89,75:81,76:v,77:k,79:A,80:C},{35:90,75:81,76:v,77:k,79:A,80:C},{35:91,75:81,76:v,77:k,79:A,80:C},{35:92,75:81,76:v,77:k,79:A,80:C},{35:93,75:81,76:v,77:k,79:A,80:C},{35:94,75:81,76:v,77:k,79:A,80:C},{35:95,75:81,76:v,77:k,79:A,80:C},{35:96,75:81,76:v,77:k,79:A,80:C},{35:97,75:81,76:v,77:k,79:A,80:C},{35:98,75:81,76:v,77:k,79:A,80:C},{35:99,75:81,76:v,77:k,79:A,80:C},{35:100,75:81,76:v,77:k,79:A,80:C},{35:101,75:81,76:v,77:k,79:A,80:C},{35:102,75:81,76:v,77:k,79:A,80:C},{35:103,75:81,76:v,77:k,79:A,80:C},{35:104,75:81,76:v,77:k,79:A,80:C},e(w,[2,59]),{35:105,75:81,76:v,77:k,79:A,80:C},{35:106,75:81,76:v,77:k,79:A,80:C},{35:107,75:81,76:v,77:k,79:A,80:C},{35:108,75:81,76:v,77:k,79:A,80:C},{35:109,75:81,76:v,77:k,79:A,80:C},{35:110,75:81,76:v,77:k,79:A,80:C},{35:111,75:81,76:v,77:k,79:A,80:C},{35:112,75:81,76:v,77:k,79:A,80:C},{35:113,75:81,76:v,77:k,79:A,80:C},{35:114,75:81,76:v,77:k,79:A,80:C},{35:115,75:81,76:v,77:k,79:A,80:C},{20:116,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{12:[1,118],33:[1,117]},{35:119,75:81,76:v,77:k,79:A,80:C},{35:120,75:81,76:v,77:k,79:A,80:C},{35:121,75:81,76:v,77:k,79:A,80:C},{35:122,75:81,76:v,77:k,79:A,80:C},{35:123,75:81,76:v,77:k,79:A,80:C},{35:124,75:81,76:v,77:k,79:A,80:C},{35:125,75:81,76:v,77:k,79:A,80:C},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(At,[2,15]),e(Vt,[2,17],{21:22,19:130,22:t,23:a,24:o,26:l,28:i}),e(At,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:a,24:o,26:l,28:i,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(Ot,[2,21]),e(Ot,[2,22]),e(w,[2,39]),e(ne,[2,71],{75:81,35:132,76:v,77:k,79:A,80:C}),e(Pt,[2,73]),{78:[1,133]},e(Pt,[2,75]),e(Pt,[2,76]),e(w,[2,40]),e(w,[2,41]),e(w,[2,42]),e(w,[2,43]),e(w,[2,44]),e(w,[2,45]),e(w,[2,46]),e(w,[2,47]),e(w,[2,48]),e(w,[2,49]),e(w,[2,50]),e(w,[2,51]),e(w,[2,52]),e(w,[2,53]),e(w,[2,54]),e(w,[2,55]),e(w,[2,56]),e(w,[2,57]),e(w,[2,58]),e(w,[2,60]),e(w,[2,61]),e(w,[2,62]),e(w,[2,63]),e(w,[2,64]),e(w,[2,65]),e(w,[2,66]),e(w,[2,67]),e(w,[2,68]),e(w,[2,69]),e(w,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(mt,[2,28]),e(mt,[2,29]),e(mt,[2,30]),e(mt,[2,31]),e(mt,[2,32]),e(mt,[2,33]),e(mt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Vt,[2,18]),e(At,[2,38]),e(ne,[2,72]),e(Pt,[2,74]),e(w,[2,24]),e(w,[2,35]),e(zt,[2,25]),e(zt,[2,26],{12:[1,138]}),e(zt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(_,x){if(x.recoverable)this.trace(_);else{var m=new Error(_);throw m.hash=x,m}},parse:function(_){var x=this,m=[0],g=[],T=[null],u=[],Tt=this.table,y="",Et=0,se=0,ve=2,ae=1,ke=u.slice.call(arguments,1),D=Object.create(this.lexer),vt={yy:{}};for(var Qt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Qt)&&(vt.yy[Qt]=this.yy[Qt]);D.setInput(_,vt.yy),vt.yy.lexer=D,vt.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Ht=D.yylloc;u.push(Ht);var Ae=D.options&&D.options.ranges;typeof vt.yy.parseError=="function"?this.parseError=vt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ce(){var X;return X=g.pop()||D.lex()||ae,typeof X!="number"&&(X instanceof Array&&(g=X,X=g.pop()),X=x.symbols_[X]||X),X}for(var M,kt,N,qt,Ct={},Mt,z,re,Lt;;){if(kt=m[m.length-1],this.defaultActions[kt]?N=this.defaultActions[kt]:((M===null||typeof M>"u")&&(M=Ce()),N=Tt[kt]&&Tt[kt][M]),typeof N>"u"||!N.length||!N[0]){var Gt="";Lt=[];for(Mt in Tt[kt])this.terminals_[Mt]&&Mt>ve&&Lt.push("'"+this.terminals_[Mt]+"'");D.showPosition?Gt="Parse error on line "+(Et+1)+`: +import{s as we,g as Oe,a as Te,b as Re,c as Dt,d as ue,e as De,f as wt,h as Nt,l as le,i as Se,w as Pe,j as Kt,k as oe,m as Me}from"./mermaid.core-D8sVPjx9.js";import{d as Le,g as Ne}from"./svgDrawCommon-5e1cfd1d-DOlHDRVT.js";import"./app-B7rxM88G.js";var Yt=function(){var e=function(bt,_,x,m){for(x=x||{},m=bt.length;m--;x[bt[m]]=_);return x},t=[1,24],a=[1,25],o=[1,26],l=[1,27],i=[1,28],s=[1,63],r=[1,64],n=[1,65],h=[1,66],f=[1,67],d=[1,68],p=[1,69],E=[1,29],O=[1,30],R=[1,31],S=[1,32],L=[1,33],Y=[1,34],Q=[1,35],H=[1,36],q=[1,37],G=[1,38],K=[1,39],J=[1,40],Z=[1,41],$=[1,42],tt=[1,43],et=[1,44],it=[1,45],nt=[1,46],st=[1,47],at=[1,48],rt=[1,50],lt=[1,51],ot=[1,52],ct=[1,53],ht=[1,54],ut=[1,55],dt=[1,56],ft=[1,57],pt=[1,58],yt=[1,59],gt=[1,60],At=[14,42],Vt=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Ot=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],v=[1,82],k=[1,83],A=[1,84],C=[1,85],w=[12,14,42],ne=[12,14,33,42],Pt=[12,14,33,42,76,77,79,80],mt=[12,33],zt=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Xt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(_,x,m,g,T,u,Tt){var y=u.length-1;switch(T){case 3:g.setDirection("TB");break;case 4:g.setDirection("BT");break;case 5:g.setDirection("RL");break;case 6:g.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:g.setC4Type(u[y-3]);break;case 19:g.setTitle(u[y].substring(6)),this.$=u[y].substring(6);break;case 20:g.setAccDescription(u[y].substring(15)),this.$=u[y].substring(15);break;case 21:this.$=u[y].trim(),g.setTitle(this.$);break;case 22:case 23:this.$=u[y].trim(),g.setAccDescription(this.$);break;case 28:case 29:u[y].splice(2,0,"ENTERPRISE"),g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 30:g.addPersonOrSystemBoundary(...u[y]),this.$=u[y];break;case 31:u[y].splice(2,0,"CONTAINER"),g.addContainerBoundary(...u[y]),this.$=u[y];break;case 32:g.addDeploymentNode("node",...u[y]),this.$=u[y];break;case 33:g.addDeploymentNode("nodeL",...u[y]),this.$=u[y];break;case 34:g.addDeploymentNode("nodeR",...u[y]),this.$=u[y];break;case 35:g.popBoundaryParseStack();break;case 39:g.addPersonOrSystem("person",...u[y]),this.$=u[y];break;case 40:g.addPersonOrSystem("external_person",...u[y]),this.$=u[y];break;case 41:g.addPersonOrSystem("system",...u[y]),this.$=u[y];break;case 42:g.addPersonOrSystem("system_db",...u[y]),this.$=u[y];break;case 43:g.addPersonOrSystem("system_queue",...u[y]),this.$=u[y];break;case 44:g.addPersonOrSystem("external_system",...u[y]),this.$=u[y];break;case 45:g.addPersonOrSystem("external_system_db",...u[y]),this.$=u[y];break;case 46:g.addPersonOrSystem("external_system_queue",...u[y]),this.$=u[y];break;case 47:g.addContainer("container",...u[y]),this.$=u[y];break;case 48:g.addContainer("container_db",...u[y]),this.$=u[y];break;case 49:g.addContainer("container_queue",...u[y]),this.$=u[y];break;case 50:g.addContainer("external_container",...u[y]),this.$=u[y];break;case 51:g.addContainer("external_container_db",...u[y]),this.$=u[y];break;case 52:g.addContainer("external_container_queue",...u[y]),this.$=u[y];break;case 53:g.addComponent("component",...u[y]),this.$=u[y];break;case 54:g.addComponent("component_db",...u[y]),this.$=u[y];break;case 55:g.addComponent("component_queue",...u[y]),this.$=u[y];break;case 56:g.addComponent("external_component",...u[y]),this.$=u[y];break;case 57:g.addComponent("external_component_db",...u[y]),this.$=u[y];break;case 58:g.addComponent("external_component_queue",...u[y]),this.$=u[y];break;case 60:g.addRel("rel",...u[y]),this.$=u[y];break;case 61:g.addRel("birel",...u[y]),this.$=u[y];break;case 62:g.addRel("rel_u",...u[y]),this.$=u[y];break;case 63:g.addRel("rel_d",...u[y]),this.$=u[y];break;case 64:g.addRel("rel_l",...u[y]),this.$=u[y];break;case 65:g.addRel("rel_r",...u[y]),this.$=u[y];break;case 66:g.addRel("rel_b",...u[y]),this.$=u[y];break;case 67:u[y].splice(0,1),g.addRel("rel",...u[y]),this.$=u[y];break;case 68:g.updateElStyle("update_el_style",...u[y]),this.$=u[y];break;case 69:g.updateRelStyle("update_rel_style",...u[y]),this.$=u[y];break;case 70:g.updateLayoutConfig("update_layout_config",...u[y]),this.$=u[y];break;case 71:this.$=[u[y]];break;case 72:u[y].unshift(u[y-1]),this.$=u[y];break;case 73:case 75:this.$=u[y].trim();break;case 74:let Et={};Et[u[y-1].trim()]=u[y].trim(),this.$=Et;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:70,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:71,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:72,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{13:73,19:20,20:21,21:22,22:t,23:a,24:o,26:l,28:i,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{14:[1,74]},e(At,[2,13],{43:23,29:49,30:61,32:62,20:75,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(At,[2,14]),e(Vt,[2,16],{12:[1,76]}),e(At,[2,36],{12:[1,77]}),e(Ot,[2,19]),e(Ot,[2,20]),{25:[1,78]},{27:[1,79]},e(Ot,[2,23]),{35:80,75:81,76:v,77:k,79:A,80:C},{35:86,75:81,76:v,77:k,79:A,80:C},{35:87,75:81,76:v,77:k,79:A,80:C},{35:88,75:81,76:v,77:k,79:A,80:C},{35:89,75:81,76:v,77:k,79:A,80:C},{35:90,75:81,76:v,77:k,79:A,80:C},{35:91,75:81,76:v,77:k,79:A,80:C},{35:92,75:81,76:v,77:k,79:A,80:C},{35:93,75:81,76:v,77:k,79:A,80:C},{35:94,75:81,76:v,77:k,79:A,80:C},{35:95,75:81,76:v,77:k,79:A,80:C},{35:96,75:81,76:v,77:k,79:A,80:C},{35:97,75:81,76:v,77:k,79:A,80:C},{35:98,75:81,76:v,77:k,79:A,80:C},{35:99,75:81,76:v,77:k,79:A,80:C},{35:100,75:81,76:v,77:k,79:A,80:C},{35:101,75:81,76:v,77:k,79:A,80:C},{35:102,75:81,76:v,77:k,79:A,80:C},{35:103,75:81,76:v,77:k,79:A,80:C},{35:104,75:81,76:v,77:k,79:A,80:C},e(w,[2,59]),{35:105,75:81,76:v,77:k,79:A,80:C},{35:106,75:81,76:v,77:k,79:A,80:C},{35:107,75:81,76:v,77:k,79:A,80:C},{35:108,75:81,76:v,77:k,79:A,80:C},{35:109,75:81,76:v,77:k,79:A,80:C},{35:110,75:81,76:v,77:k,79:A,80:C},{35:111,75:81,76:v,77:k,79:A,80:C},{35:112,75:81,76:v,77:k,79:A,80:C},{35:113,75:81,76:v,77:k,79:A,80:C},{35:114,75:81,76:v,77:k,79:A,80:C},{35:115,75:81,76:v,77:k,79:A,80:C},{20:116,29:49,30:61,32:62,34:s,36:r,37:n,38:h,39:f,40:d,41:p,43:23,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt},{12:[1,118],33:[1,117]},{35:119,75:81,76:v,77:k,79:A,80:C},{35:120,75:81,76:v,77:k,79:A,80:C},{35:121,75:81,76:v,77:k,79:A,80:C},{35:122,75:81,76:v,77:k,79:A,80:C},{35:123,75:81,76:v,77:k,79:A,80:C},{35:124,75:81,76:v,77:k,79:A,80:C},{35:125,75:81,76:v,77:k,79:A,80:C},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(At,[2,15]),e(Vt,[2,17],{21:22,19:130,22:t,23:a,24:o,26:l,28:i}),e(At,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:a,24:o,26:l,28:i,34:s,36:r,37:n,38:h,39:f,40:d,41:p,44:E,45:O,46:R,47:S,48:L,49:Y,50:Q,51:H,52:q,53:G,54:K,55:J,56:Z,57:$,58:tt,59:et,60:it,61:nt,62:st,63:at,64:rt,65:lt,66:ot,67:ct,68:ht,69:ut,70:dt,71:ft,72:pt,73:yt,74:gt}),e(Ot,[2,21]),e(Ot,[2,22]),e(w,[2,39]),e(ne,[2,71],{75:81,35:132,76:v,77:k,79:A,80:C}),e(Pt,[2,73]),{78:[1,133]},e(Pt,[2,75]),e(Pt,[2,76]),e(w,[2,40]),e(w,[2,41]),e(w,[2,42]),e(w,[2,43]),e(w,[2,44]),e(w,[2,45]),e(w,[2,46]),e(w,[2,47]),e(w,[2,48]),e(w,[2,49]),e(w,[2,50]),e(w,[2,51]),e(w,[2,52]),e(w,[2,53]),e(w,[2,54]),e(w,[2,55]),e(w,[2,56]),e(w,[2,57]),e(w,[2,58]),e(w,[2,60]),e(w,[2,61]),e(w,[2,62]),e(w,[2,63]),e(w,[2,64]),e(w,[2,65]),e(w,[2,66]),e(w,[2,67]),e(w,[2,68]),e(w,[2,69]),e(w,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(mt,[2,28]),e(mt,[2,29]),e(mt,[2,30]),e(mt,[2,31]),e(mt,[2,32]),e(mt,[2,33]),e(mt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Vt,[2,18]),e(At,[2,38]),e(ne,[2,72]),e(Pt,[2,74]),e(w,[2,24]),e(w,[2,35]),e(zt,[2,25]),e(zt,[2,26],{12:[1,138]}),e(zt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(_,x){if(x.recoverable)this.trace(_);else{var m=new Error(_);throw m.hash=x,m}},parse:function(_){var x=this,m=[0],g=[],T=[null],u=[],Tt=this.table,y="",Et=0,se=0,ve=2,ae=1,ke=u.slice.call(arguments,1),D=Object.create(this.lexer),vt={yy:{}};for(var Qt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Qt)&&(vt.yy[Qt]=this.yy[Qt]);D.setInput(_,vt.yy),vt.yy.lexer=D,vt.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Ht=D.yylloc;u.push(Ht);var Ae=D.options&&D.options.ranges;typeof vt.yy.parseError=="function"?this.parseError=vt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ce(){var X;return X=g.pop()||D.lex()||ae,typeof X!="number"&&(X instanceof Array&&(g=X,X=g.pop()),X=x.symbols_[X]||X),X}for(var M,kt,N,qt,Ct={},Mt,z,re,Lt;;){if(kt=m[m.length-1],this.defaultActions[kt]?N=this.defaultActions[kt]:((M===null||typeof M>"u")&&(M=Ce()),N=Tt[kt]&&Tt[kt][M]),typeof N>"u"||!N.length||!N[0]){var Gt="";Lt=[];for(Mt in Tt[kt])this.terminals_[Mt]&&Mt>ve&&Lt.push("'"+this.terminals_[Mt]+"'");D.showPosition?Gt="Parse error on line "+(Et+1)+`: `+D.showPosition()+` Expecting `+Lt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":Gt="Parse error on line "+(Et+1)+": Unexpected "+(M==ae?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(Gt,{text:D.match,token:this.terminals_[M]||M,line:D.yylineno,loc:Ht,expected:Lt})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+kt+", token: "+M);switch(N[0]){case 1:m.push(M),T.push(D.yytext),u.push(D.yylloc),m.push(N[1]),M=null,se=D.yyleng,y=D.yytext,Et=D.yylineno,Ht=D.yylloc;break;case 2:if(z=this.productions_[N[1]][1],Ct.$=T[T.length-z],Ct._$={first_line:u[u.length-(z||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(z||1)].first_column,last_column:u[u.length-1].last_column},Ae&&(Ct._$.range=[u[u.length-(z||1)].range[0],u[u.length-1].range[1]]),qt=this.performAction.apply(Ct,[y,se,Et,vt.yy,N[1],T,u].concat(ke)),typeof qt<"u")return qt;z&&(m=m.slice(0,-1*z*2),T=T.slice(0,-1*z),u=u.slice(0,-1*z)),m.push(this.productions_[N[1]][0]),T.push(Ct.$),u.push(Ct._$),re=Tt[m[m.length-2]][m[m.length-1]],m.push(re);break;case 3:return!0}}return!0}},Ee=function(){var bt={EOF:1,parseError:function(x,m){if(this.yy.parser)this.yy.parser.parseError(x,m);else throw new Error(x)},setInput:function(_,x){return this.yy=x||this.yy||{},this._input=_,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var _=this._input[0];this.yytext+=_,this.yyleng++,this.offset++,this.match+=_,this.matched+=_;var x=_.match(/(?:\r\n?|\n).*/g);return x?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),_},unput:function(_){var x=_.length,m=_.split(/(?:\r\n?|\n)/g);this._input=_+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-x),this.offset-=x;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),m.length-1&&(this.yylineno-=m.length-1);var T=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:m?(m.length===g.length?this.yylloc.first_column:0)+g[g.length-m.length].length-m[0].length:this.yylloc.first_column-x},this.options.ranges&&(this.yylloc.range=[T[0],T[0]+this.yyleng-x]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(_){this.unput(this.match.slice(_))},pastInput:function(){var _=this.matched.substr(0,this.matched.length-this.match.length);return(_.length>20?"...":"")+_.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var _=this.match;return _.length<20&&(_+=this._input.substr(0,20-_.length)),(_.substr(0,20)+(_.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var _=this.pastInput(),x=new Array(_.length+1).join("-");return _+this.upcomingInput()+` diff --git a/assets/channel-It_pefhc.js b/assets/channel-It_pefhc.js deleted file mode 100644 index 2446d9f..0000000 --- a/assets/channel-It_pefhc.js +++ /dev/null @@ -1 +0,0 @@ -import{al as o,am as n}from"./mermaid.core-Cio1iadR.js";const l=(a,r)=>o.lang.round(n.parse(a)[r]);export{l as c}; diff --git a/assets/channel-tiY1AyWJ.js b/assets/channel-tiY1AyWJ.js new file mode 100644 index 0000000..34ba134 --- /dev/null +++ b/assets/channel-tiY1AyWJ.js @@ -0,0 +1 @@ +import{al as o,am as n}from"./mermaid.core-D8sVPjx9.js";const l=(a,r)=>o.lang.round(n.parse(a)[r]);export{l as c}; diff --git a/assets/classDiagram-fb54d2a0-Sx-rWsFE.js b/assets/classDiagram-fb54d2a0-C8mBi0ie.js similarity index 97% rename from assets/classDiagram-fb54d2a0-Sx-rWsFE.js rename to assets/classDiagram-fb54d2a0-C8mBi0ie.js index 70fc564..08908b5 100644 --- a/assets/classDiagram-fb54d2a0-Sx-rWsFE.js +++ b/assets/classDiagram-fb54d2a0-C8mBi0ie.js @@ -1,2 +1,2 @@ -import{p as A,d as S,s as G}from"./styles-b83b31c9-BnKcw3I0.js";import{c as v,l as y,h as B,i as W,ao as $,z as M,ar as I}from"./mermaid.core-Cio1iadR.js";import{G as O}from"./graph-k1ojK0f-.js";import{l as P}from"./layout-CbxIxNpL.js";import{l as X}from"./line-DOPC82El.js";import"./app-BQ_RvZRm.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";let H=0;const Y=function(i,a,t,o,p){const g=function(e){switch(e){case p.db.relationType.AGGREGATION:return"aggregation";case p.db.relationType.EXTENSION:return"extension";case p.db.relationType.COMPOSITION:return"composition";case p.db.relationType.DEPENDENCY:return"dependency";case p.db.relationType.LOLLIPOP:return"lollipop"}};a.points=a.points.filter(e=>!Number.isNaN(e.y));const s=a.points,c=X().x(function(e){return e.x}).y(function(e){return e.y}).curve($),n=i.append("path").attr("d",c(s)).attr("id","edge"+H).attr("class","relation");let r="";o.arrowMarkerAbsolute&&(r=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,r=r.replace(/\(/g,"\\("),r=r.replace(/\)/g,"\\)")),t.relation.lineType==1&&n.attr("class","relation dashed-line"),t.relation.lineType==10&&n.attr("class","relation dotted-line"),t.relation.type1!=="none"&&n.attr("marker-start","url("+r+"#"+g(t.relation.type1)+"Start)"),t.relation.type2!=="none"&&n.attr("marker-end","url("+r+"#"+g(t.relation.type2)+"End)");let f,h;const x=a.points.length;let b=M.calcLabelPosition(a.points);f=b.x,h=b.y;let u,m,w,k;if(x%2!==0&&x>1){let e=M.calcCardinalityPosition(t.relation.type1!=="none",a.points,a.points[0]),d=M.calcCardinalityPosition(t.relation.type2!=="none",a.points,a.points[x-1]);y.debug("cardinality_1_point "+JSON.stringify(e)),y.debug("cardinality_2_point "+JSON.stringify(d)),u=e.x,m=e.y,w=d.x,k=d.y}if(t.title!==void 0){const e=i.append("g").attr("class","classLabel"),d=e.append("text").attr("class","label").attr("x",f).attr("y",h).attr("fill","red").attr("text-anchor","middle").text(t.title);window.label=d;const l=d.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",l.x-o.padding/2).attr("y",l.y-o.padding/2).attr("width",l.width+o.padding).attr("height",l.height+o.padding)}y.info("Rendering relation "+JSON.stringify(t)),t.relationTitle1!==void 0&&t.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",u).attr("y",m).attr("fill","black").attr("font-size","6").text(t.relationTitle1),t.relationTitle2!==void 0&&t.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",w).attr("y",k).attr("fill","black").attr("font-size","6").text(t.relationTitle2),H++},J=function(i,a,t,o){y.debug("Rendering class ",a,t);const p=a.id,g={id:p,label:a.id,width:0,height:0},s=i.append("g").attr("id",o.db.lookUpDomId(p)).attr("class","classGroup");let c;a.link?c=s.append("svg:a").attr("xlink:href",a.link).attr("target",a.linkTarget).append("text").attr("y",t.textHeight+t.padding).attr("x",0):c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);let n=!0;a.annotations.forEach(function(d){const l=c.append("tspan").text("«"+d+"»");n||l.attr("dy",t.textHeight),n=!1});let r=C(a);const f=c.append("tspan").text(r).attr("class","title");n||f.attr("dy",t.textHeight);const h=c.node().getBBox().height;let x,b,u;if(a.members.length>0){x=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin/2).attr("y2",t.padding+h+t.dividerMargin/2);const d=s.append("text").attr("x",t.padding).attr("y",h+t.dividerMargin+t.textHeight).attr("fill","white").attr("class","classText");n=!0,a.members.forEach(function(l){_(d,l,n,t),n=!1}),b=d.node().getBBox()}if(a.methods.length>0){u=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin+b.height).attr("y2",t.padding+h+t.dividerMargin+b.height);const d=s.append("text").attr("x",t.padding).attr("y",h+2*t.dividerMargin+b.height+t.textHeight).attr("fill","white").attr("class","classText");n=!0,a.methods.forEach(function(l){_(d,l,n,t),n=!1})}const m=s.node().getBBox();var w=" ";a.cssClasses.length>0&&(w=w+a.cssClasses.join(" "));const e=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*t.padding).attr("height",m.height+t.padding+.5*t.dividerMargin).attr("class",w).node().getBBox().width;return c.node().childNodes.forEach(function(d){d.setAttribute("x",(e-d.getBBox().width)/2)}),a.tooltip&&c.insert("title").text(a.tooltip),x&&x.attr("x2",e),u&&u.attr("x2",e),g.width=e,g.height=m.height+t.padding+.5*t.dividerMargin,g},C=function(i){let a=i.id;return i.type&&(a+="<"+I(i.type)+">"),a},Z=function(i,a,t,o){y.debug("Rendering note ",a,t);const p=a.id,g={id:p,text:a.text,width:0,height:0},s=i.append("g").attr("id",p).attr("class","classGroup");let c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);const n=JSON.parse(`"${a.text}"`).split(` +import{p as A,d as S,s as G}from"./styles-b83b31c9-DZ0N-tpj.js";import{c as v,l as y,h as B,i as W,ao as $,z as M,ar as I}from"./mermaid.core-D8sVPjx9.js";import{G as O}from"./graph-BKQChTdx.js";import{l as P}from"./layout-Bwrh1hP1.js";import{l as X}from"./line-Dh5t0evl.js";import"./app-B7rxM88G.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";let H=0;const Y=function(i,a,t,o,p){const g=function(e){switch(e){case p.db.relationType.AGGREGATION:return"aggregation";case p.db.relationType.EXTENSION:return"extension";case p.db.relationType.COMPOSITION:return"composition";case p.db.relationType.DEPENDENCY:return"dependency";case p.db.relationType.LOLLIPOP:return"lollipop"}};a.points=a.points.filter(e=>!Number.isNaN(e.y));const s=a.points,c=X().x(function(e){return e.x}).y(function(e){return e.y}).curve($),n=i.append("path").attr("d",c(s)).attr("id","edge"+H).attr("class","relation");let r="";o.arrowMarkerAbsolute&&(r=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,r=r.replace(/\(/g,"\\("),r=r.replace(/\)/g,"\\)")),t.relation.lineType==1&&n.attr("class","relation dashed-line"),t.relation.lineType==10&&n.attr("class","relation dotted-line"),t.relation.type1!=="none"&&n.attr("marker-start","url("+r+"#"+g(t.relation.type1)+"Start)"),t.relation.type2!=="none"&&n.attr("marker-end","url("+r+"#"+g(t.relation.type2)+"End)");let f,h;const x=a.points.length;let b=M.calcLabelPosition(a.points);f=b.x,h=b.y;let u,m,w,k;if(x%2!==0&&x>1){let e=M.calcCardinalityPosition(t.relation.type1!=="none",a.points,a.points[0]),d=M.calcCardinalityPosition(t.relation.type2!=="none",a.points,a.points[x-1]);y.debug("cardinality_1_point "+JSON.stringify(e)),y.debug("cardinality_2_point "+JSON.stringify(d)),u=e.x,m=e.y,w=d.x,k=d.y}if(t.title!==void 0){const e=i.append("g").attr("class","classLabel"),d=e.append("text").attr("class","label").attr("x",f).attr("y",h).attr("fill","red").attr("text-anchor","middle").text(t.title);window.label=d;const l=d.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",l.x-o.padding/2).attr("y",l.y-o.padding/2).attr("width",l.width+o.padding).attr("height",l.height+o.padding)}y.info("Rendering relation "+JSON.stringify(t)),t.relationTitle1!==void 0&&t.relationTitle1!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",u).attr("y",m).attr("fill","black").attr("font-size","6").text(t.relationTitle1),t.relationTitle2!==void 0&&t.relationTitle2!=="none"&&i.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",w).attr("y",k).attr("fill","black").attr("font-size","6").text(t.relationTitle2),H++},J=function(i,a,t,o){y.debug("Rendering class ",a,t);const p=a.id,g={id:p,label:a.id,width:0,height:0},s=i.append("g").attr("id",o.db.lookUpDomId(p)).attr("class","classGroup");let c;a.link?c=s.append("svg:a").attr("xlink:href",a.link).attr("target",a.linkTarget).append("text").attr("y",t.textHeight+t.padding).attr("x",0):c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);let n=!0;a.annotations.forEach(function(d){const l=c.append("tspan").text("«"+d+"»");n||l.attr("dy",t.textHeight),n=!1});let r=C(a);const f=c.append("tspan").text(r).attr("class","title");n||f.attr("dy",t.textHeight);const h=c.node().getBBox().height;let x,b,u;if(a.members.length>0){x=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin/2).attr("y2",t.padding+h+t.dividerMargin/2);const d=s.append("text").attr("x",t.padding).attr("y",h+t.dividerMargin+t.textHeight).attr("fill","white").attr("class","classText");n=!0,a.members.forEach(function(l){_(d,l,n,t),n=!1}),b=d.node().getBBox()}if(a.methods.length>0){u=s.append("line").attr("x1",0).attr("y1",t.padding+h+t.dividerMargin+b.height).attr("y2",t.padding+h+t.dividerMargin+b.height);const d=s.append("text").attr("x",t.padding).attr("y",h+2*t.dividerMargin+b.height+t.textHeight).attr("fill","white").attr("class","classText");n=!0,a.methods.forEach(function(l){_(d,l,n,t),n=!1})}const m=s.node().getBBox();var w=" ";a.cssClasses.length>0&&(w=w+a.cssClasses.join(" "));const e=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*t.padding).attr("height",m.height+t.padding+.5*t.dividerMargin).attr("class",w).node().getBBox().width;return c.node().childNodes.forEach(function(d){d.setAttribute("x",(e-d.getBBox().width)/2)}),a.tooltip&&c.insert("title").text(a.tooltip),x&&x.attr("x2",e),u&&u.attr("x2",e),g.width=e,g.height=m.height+t.padding+.5*t.dividerMargin,g},C=function(i){let a=i.id;return i.type&&(a+="<"+I(i.type)+">"),a},Z=function(i,a,t,o){y.debug("Rendering note ",a,t);const p=a.id,g={id:p,text:a.text,width:0,height:0},s=i.append("g").attr("id",p).attr("class","classGroup");let c=s.append("text").attr("y",t.textHeight+t.padding).attr("x",0);const n=JSON.parse(`"${a.text}"`).split(` `);n.forEach(function(x){y.debug(`Adding line: ${x}`),c.append("tspan").text(x).attr("class","title").attr("dy",t.textHeight)});const r=s.node().getBBox(),h=s.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",r.width+2*t.padding).attr("height",r.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin).node().getBBox().width;return c.node().childNodes.forEach(function(x){x.setAttribute("x",(h-x.getBBox().width)/2)}),g.width=h,g.height=r.height+n.length*t.textHeight+t.padding+.5*t.dividerMargin,g},_=function(i,a,t,o){const{displayText:p,cssStyle:g}=a.getDisplayDetails(),s=i.append("tspan").attr("x",o.padding).text(p);g!==""&&s.attr("style",a.cssStyle),t||s.attr("dy",o.textHeight)},N={getClassTitleString:C,drawClass:J,drawEdge:Y,drawNote:Z};let T={};const E=20,L=function(i){const a=Object.entries(T).find(t=>t[1].label===i);if(a)return a[0]},R=function(i){i.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),i.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),i.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),i.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},z=function(i,a,t,o){const p=v().class;T={},y.info("Rendering diagram "+i);const g=v().securityLevel;let s;g==="sandbox"&&(s=B("#i"+a));const c=g==="sandbox"?B(s.nodes()[0].contentDocument.body):B("body"),n=c.select(`[id='${a}']`);R(n);const r=new O({multigraph:!0});r.setGraph({isMultiGraph:!0}),r.setDefaultEdgeLabel(function(){return{}});const f=o.db.getClasses(),h=Object.keys(f);for(const e of h){const d=f[e],l=N.drawClass(n,d,p,o);T[l.id]=l,r.setNode(l.id,l),y.info("Org height: "+l.height)}o.db.getRelations().forEach(function(e){y.info("tjoho"+L(e.id1)+L(e.id2)+JSON.stringify(e)),r.setEdge(L(e.id1),L(e.id2),{relation:e},e.title||"DEFAULT")}),o.db.getNotes().forEach(function(e){y.debug(`Adding note: ${JSON.stringify(e)}`);const d=N.drawNote(n,e,p,o);T[d.id]=d,r.setNode(d.id,d),e.class&&e.class in f&&r.setEdge(e.id,L(e.class),{relation:{id1:e.id,id2:e.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")}),P(r),r.nodes().forEach(function(e){e!==void 0&&r.node(e)!==void 0&&(y.debug("Node "+e+": "+JSON.stringify(r.node(e))),c.select("#"+(o.db.lookUpDomId(e)||e)).attr("transform","translate("+(r.node(e).x-r.node(e).width/2)+","+(r.node(e).y-r.node(e).height/2)+" )"))}),r.edges().forEach(function(e){e!==void 0&&r.edge(e)!==void 0&&(y.debug("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(r.edge(e))),N.drawEdge(n,r.edge(e),r.edge(e).relation,p,o))});const u=n.node().getBBox(),m=u.width+E*2,w=u.height+E*2;W(n,w,m,p.useMaxWidth);const k=`${u.x-E} ${u.y-E} ${m} ${w}`;y.debug(`viewBox ${k}`),n.attr("viewBox",k)},F={draw:z},et={parser:A,db:S,renderer:F,styles:G,init:i=>{i.class||(i.class={}),i.class.arrowMarkerAbsolute=i.arrowMarkerAbsolute,S.clear()}};export{et as diagram}; diff --git a/assets/classDiagram-v2-a2b738ad-D0vvTt6n.js b/assets/classDiagram-v2-a2b738ad-B2KLm9e2.js similarity index 92% rename from assets/classDiagram-v2-a2b738ad-D0vvTt6n.js rename to assets/classDiagram-v2-a2b738ad-B2KLm9e2.js index 8f6d1f7..e680349 100644 --- a/assets/classDiagram-v2-a2b738ad-D0vvTt6n.js +++ b/assets/classDiagram-v2-a2b738ad-B2KLm9e2.js @@ -1,2 +1,2 @@ -import{p as M,d as _,s as R}from"./styles-b83b31c9-BnKcw3I0.js";import{l as d,c,h as w,z as B,u as G,p as D,t as E,o as C,j as A}from"./mermaid.core-Cio1iadR.js";import{G as z}from"./graph-k1ojK0f-.js";import{r as P}from"./index-01f381cb-DBfo_-ML.js";import"./layout-CbxIxNpL.js";import"./app-BQ_RvZRm.js";import"./clone-B4YCsPuJ.js";import"./edges-066a5561-31kAkIJ0.js";import"./createText-ca0c5216-BYApgeQh.js";import"./line-DOPC82El.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const S=s=>A.sanitizeText(s,c());let k={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const q=function(s,t,y,a){const e=Object.keys(s);d.info("keys:",e),d.info(s),e.forEach(function(i){var o,r;const l=s[i],p={shape:"rect",id:l.id,domId:l.domId,labelText:S(l.id),labelStyle:"",style:"fill: none; stroke: black",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};t.setNode(l.id,p),$(l.classes,t,y,a,l.id),d.info("setNode",p)})},$=function(s,t,y,a,e){const i=Object.keys(s);d.info("keys:",i),d.info(s),i.filter(o=>s[o].parent==e).forEach(function(o){var r,l;const n=s[o],p=n.cssClasses.join(" "),f=D(n.styles),h=n.label??n.id,u=0,b={labelStyle:f.labelStyle,shape:"class_box",labelText:S(h),classData:n,rx:u,ry:u,class:p,style:f.style,id:n.id,domId:n.domId,tooltip:a.db.getTooltip(n.id,e)||"",haveCallback:n.haveCallback,link:n.link,width:n.type==="group"?500:void 0,type:n.type,padding:((r=c().flowchart)==null?void 0:r.padding)??((l=c().class)==null?void 0:l.padding)};t.setNode(n.id,b),e&&t.setParent(n.id,e),d.info("setNode",b)})},F=function(s,t,y,a){d.info(s),s.forEach(function(e,i){var o,r;const l=e,n="",p={labelStyle:"",style:""},f=l.text,h=0,m={labelStyle:p.labelStyle,shape:"note",labelText:S(f),noteData:l,rx:h,ry:h,class:n,style:p.style,id:l.id,domId:l.id,tooltip:"",type:"note",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};if(t.setNode(l.id,m),d.info("setNode",m),!l.class||!(l.class in a))return;const b=y+i,x={id:`edgeNote${b}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:E(k.curve,C)};t.setEdge(l.id,l.class,x,b)})},H=function(s,t){const y=c().flowchart;let a=0;s.forEach(function(e){var i;a++;const o={classes:"relation",pattern:e.relation.lineType==1?"dashed":"solid",id:`id_${e.id1}_${e.id2}_${a}`,arrowhead:e.type==="arrow_open"?"none":"normal",startLabelRight:e.relationTitle1==="none"?"":e.relationTitle1,endLabelLeft:e.relationTitle2==="none"?"":e.relationTitle2,arrowTypeStart:N(e.relation.type1),arrowTypeEnd:N(e.relation.type2),style:"fill:none",labelStyle:"",curve:E(y==null?void 0:y.curve,C)};if(d.info(o,e),e.style!==void 0){const r=D(e.style);o.style=r.style,o.labelStyle=r.labelStyle}e.text=e.title,e.text===void 0?e.style!==void 0&&(o.arrowheadStyle="fill: #333"):(o.arrowheadStyle="fill: #333",o.labelpos="c",((i=c().flowchart)==null?void 0:i.htmlLabels)??c().htmlLabels?(o.labelType="html",o.label=''+e.text+""):(o.labelType="text",o.label=e.text.replace(A.lineBreakRegex,` +import{p as M,d as _,s as R}from"./styles-b83b31c9-DZ0N-tpj.js";import{l as d,c,h as w,z as B,u as G,p as D,t as E,o as C,j as A}from"./mermaid.core-D8sVPjx9.js";import{G as z}from"./graph-BKQChTdx.js";import{r as P}from"./index-01f381cb-CtMJaTFR.js";import"./layout-Bwrh1hP1.js";import"./app-B7rxM88G.js";import"./clone-SNQTcLae.js";import"./edges-066a5561-Cesv2_yT.js";import"./createText-ca0c5216-zqCXB1ps.js";import"./line-Dh5t0evl.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const S=s=>A.sanitizeText(s,c());let k={dividerMargin:10,padding:5,textHeight:10,curve:void 0};const q=function(s,t,y,a){const e=Object.keys(s);d.info("keys:",e),d.info(s),e.forEach(function(i){var o,r;const l=s[i],p={shape:"rect",id:l.id,domId:l.domId,labelText:S(l.id),labelStyle:"",style:"fill: none; stroke: black",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};t.setNode(l.id,p),$(l.classes,t,y,a,l.id),d.info("setNode",p)})},$=function(s,t,y,a,e){const i=Object.keys(s);d.info("keys:",i),d.info(s),i.filter(o=>s[o].parent==e).forEach(function(o){var r,l;const n=s[o],p=n.cssClasses.join(" "),f=D(n.styles),h=n.label??n.id,u=0,b={labelStyle:f.labelStyle,shape:"class_box",labelText:S(h),classData:n,rx:u,ry:u,class:p,style:f.style,id:n.id,domId:n.domId,tooltip:a.db.getTooltip(n.id,e)||"",haveCallback:n.haveCallback,link:n.link,width:n.type==="group"?500:void 0,type:n.type,padding:((r=c().flowchart)==null?void 0:r.padding)??((l=c().class)==null?void 0:l.padding)};t.setNode(n.id,b),e&&t.setParent(n.id,e),d.info("setNode",b)})},F=function(s,t,y,a){d.info(s),s.forEach(function(e,i){var o,r;const l=e,n="",p={labelStyle:"",style:""},f=l.text,h=0,m={labelStyle:p.labelStyle,shape:"note",labelText:S(f),noteData:l,rx:h,ry:h,class:n,style:p.style,id:l.id,domId:l.id,tooltip:"",type:"note",padding:((o=c().flowchart)==null?void 0:o.padding)??((r=c().class)==null?void 0:r.padding)};if(t.setNode(l.id,m),d.info("setNode",m),!l.class||!(l.class in a))return;const b=y+i,x={id:`edgeNote${b}`,classes:"relation",pattern:"dotted",arrowhead:"none",startLabelRight:"",endLabelLeft:"",arrowTypeStart:"none",arrowTypeEnd:"none",style:"fill:none",labelStyle:"",curve:E(k.curve,C)};t.setEdge(l.id,l.class,x,b)})},H=function(s,t){const y=c().flowchart;let a=0;s.forEach(function(e){var i;a++;const o={classes:"relation",pattern:e.relation.lineType==1?"dashed":"solid",id:`id_${e.id1}_${e.id2}_${a}`,arrowhead:e.type==="arrow_open"?"none":"normal",startLabelRight:e.relationTitle1==="none"?"":e.relationTitle1,endLabelLeft:e.relationTitle2==="none"?"":e.relationTitle2,arrowTypeStart:N(e.relation.type1),arrowTypeEnd:N(e.relation.type2),style:"fill:none",labelStyle:"",curve:E(y==null?void 0:y.curve,C)};if(d.info(o,e),e.style!==void 0){const r=D(e.style);o.style=r.style,o.labelStyle=r.labelStyle}e.text=e.title,e.text===void 0?e.style!==void 0&&(o.arrowheadStyle="fill: #333"):(o.arrowheadStyle="fill: #333",o.labelpos="c",((i=c().flowchart)==null?void 0:i.htmlLabels)??c().htmlLabels?(o.labelType="html",o.label=''+e.text+""):(o.labelType="text",o.label=e.text.replace(A.lineBreakRegex,` `),e.style===void 0&&(o.style=o.style||"stroke: #333; stroke-width: 1.5px;fill:none"),o.labelStyle=o.labelStyle.replace("color:","fill:"))),t.setEdge(e.id1,e.id2,o,a)})},V=function(s){k={...k,...s}},W=async function(s,t,y,a){d.info("Drawing class - ",t);const e=c().flowchart??c().class,i=c().securityLevel;d.info("config:",e);const o=(e==null?void 0:e.nodeSpacing)??50,r=(e==null?void 0:e.rankSpacing)??50,l=new z({multigraph:!0,compound:!0}).setGraph({rankdir:a.db.getDirection(),nodesep:o,ranksep:r,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),n=a.db.getNamespaces(),p=a.db.getClasses(),f=a.db.getRelations(),h=a.db.getNotes();d.info(f),q(n,l,t,a),$(p,l,t,a),H(f,l),F(h,l,f.length+1,p);let u;i==="sandbox"&&(u=w("#i"+t));const m=i==="sandbox"?w(u.nodes()[0].contentDocument.body):w("body"),b=m.select(`[id="${t}"]`),x=m.select("#"+t+" g");if(await P(x,l,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",t),B.insertTitle(b,"classTitleText",(e==null?void 0:e.titleTopMargin)??5,a.db.getDiagramTitle()),G(l,b,e==null?void 0:e.diagramPadding,e==null?void 0:e.useMaxWidth),!(e!=null&&e.htmlLabels)){const T=i==="sandbox"?u.nodes()[0].contentDocument:document,I=T.querySelectorAll('[id="'+t+'"] .edgeLabel .label');for(const g of I){const L=g.getBBox(),v=T.createElementNS("http://www.w3.org/2000/svg","rect");v.setAttribute("rx",0),v.setAttribute("ry",0),v.setAttribute("width",L.width),v.setAttribute("height",L.height),g.insertBefore(v,g.firstChild)}}};function N(s){let t;switch(s){case 0:t="aggregation";break;case 1:t="extension";break;case 2:t="composition";break;case 3:t="dependency";break;case 4:t="lollipop";break;default:t="none"}return t}const J={setConf:V,draw:W},se={parser:M,db:_,renderer:J,styles:R,init:s=>{s.class||(s.class={}),s.class.arrowMarkerAbsolute=s.arrowMarkerAbsolute,_.clear()}};export{se as diagram}; diff --git a/assets/cli.html-Bx0PPBIR.js b/assets/cli.html-D5C_Fe4w.js similarity index 96% rename from assets/cli.html-Bx0PPBIR.js rename to assets/cli.html-D5C_Fe4w.js index 3191d06..e899098 100644 --- a/assets/cli.html-Bx0PPBIR.js +++ b/assets/cli.html-D5C_Fe4w.js @@ -1,4 +1,4 @@ -import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as c,o as u,c as d,b as s,d as n,e as o,w as a,a as l}from"./app-BQ_RvZRm.js";const m={},k=l(`

CLI

You can easily add new subcommands to taskiq. All default subcommands also use this mechanism, since it's easy to use.

At first you need to add a class that implements taskiq.abc.cmd.TaskiqCMD abstract class.

from argparse import ArgumentParser
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as c,o as u,c as d,b as s,d as n,e as o,w as a,a as l}from"./app-B7rxM88G.js";const m={},k=l(`

CLI

You can easily add new subcommands to taskiq. All default subcommands also use this mechanism, since it's easy to use.

At first you need to add a class that implements taskiq.abc.cmd.TaskiqCMD abstract class.

from argparse import ArgumentParser
 from typing import Sequence
 
 from taskiq.abc.cmd import TaskiqCMD
@@ -39,4 +39,4 @@ optional arguments:
   --test TEST  My test parameter.
 
$ taskiq demo --test aaa
 Namespace(test='aaa')
-
`,2);function w(x,A){const p=c("ExternalLinkIcon"),i=c("Tabs");return u(),d("div",null,[k,s("p",null,[n("Also, you can use your favorite tool to build CLI, like "),s("a",v,[n("click"),o(p)]),n(" or "),s("a",b,[n("typer"),o(p)]),n(".")]),h,o(i,{id:"19",data:[{id:"setuptools setup.py"},{id:"setuptools pyproject.toml"},{id:"poetry"}]},{title0:a(({value:e,isActive:t})=>[n("setuptools setup.py")]),title1:a(({value:e,isActive:t})=>[n("setuptools pyproject.toml")]),title2:a(({value:e,isActive:t})=>[n("poetry")]),tab0:a(({value:e,isActive:t})=>[y]),tab1:a(({value:e,isActive:t})=>[g]),tab2:a(({value:e,isActive:t})=>[_]),_:1}),s("p",null,[n("You can read more about entry points in "),s("a",f,[n("python documentation"),o(p)]),n(". The subcommand name is the same as the name of the entry point you've created.")]),q])}const M=r(m,[["render",w],["__file","cli.html.vue"]]),I=JSON.parse(`{"path":"/extending-taskiq/cli.html","title":"CLI","lang":"en-US","frontmatter":{"order":4,"description":"CLI You can easily add new subcommands to taskiq. All default subcommands also use this mechanism, since it's easy to use. At first you need to add a class that implements taski...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/cli.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"CLI"}],["meta",{"property":"og:description","content":"CLI You can easily add new subcommands to taskiq. All default subcommands also use this mechanism, since it's easy to use. At first you need to add a class that implements taski..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"CLI\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/cli.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

You can easily add new subcommands to taskiq. All default subcommands also use this mechanism,\\nsince it's easy to use.

\\n

At first you need to add a class that implements taskiq.abc.cmd.TaskiqCMD abstract class.

\\n
from argparse import ArgumentParser\\nfrom typing import Sequence\\n\\nfrom taskiq.abc.cmd import TaskiqCMD\\n\\n\\nclass MyCommand(TaskiqCMD):\\n    short_help = \\"Demo command\\"\\n\\n    def exec(self, args: Sequence[str]) -> None:\\n        parser = ArgumentParser()\\n        parser.add_argument(\\n            \\"--test\\",\\n            dest=\\"test\\",\\n            default=\\"default\\",\\n            help=\\"My test parameter.\\",\\n        )\\n        parsed = parser.parse_args(args)\\n        print(parsed)\\n
"}`);export{M as comp,I as data}; +
`,2);function w(x,A){const p=c("ExternalLinkIcon"),i=c("Tabs");return u(),d("div",null,[k,s("p",null,[n("Also, you can use your favorite tool to build CLI, like "),s("a",v,[n("click"),o(p)]),n(" or "),s("a",b,[n("typer"),o(p)]),n(".")]),h,o(i,{id:"19",data:[{id:"setuptools setup.py"},{id:"setuptools pyproject.toml"},{id:"poetry"}]},{title0:a(({value:e,isActive:t})=>[n("setuptools setup.py")]),title1:a(({value:e,isActive:t})=>[n("setuptools pyproject.toml")]),title2:a(({value:e,isActive:t})=>[n("poetry")]),tab0:a(({value:e,isActive:t})=>[y]),tab1:a(({value:e,isActive:t})=>[g]),tab2:a(({value:e,isActive:t})=>[_]),_:1}),s("p",null,[n("You can read more about entry points in "),s("a",f,[n("python documentation"),o(p)]),n(". The subcommand name is the same as the name of the entry point you've created.")]),q])}const M=r(m,[["render",w],["__file","cli.html.vue"]]),I=JSON.parse(`{"path":"/extending-taskiq/cli.html","title":"CLI","lang":"en-US","frontmatter":{"order":4,"description":"CLI You can easily add new subcommands to taskiq. All default subcommands also use this mechanism, since it's easy to use. At first you need to add a class that implements taski...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/cli.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"CLI"}],["meta",{"property":"og:description","content":"CLI You can easily add new subcommands to taskiq. All default subcommands also use this mechanism, since it's easy to use. At first you need to add a class that implements taski..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"CLI\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/cli.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

You can easily add new subcommands to taskiq. All default subcommands also use this mechanism,\\nsince it's easy to use.

\\n

At first you need to add a class that implements taskiq.abc.cmd.TaskiqCMD abstract class.

\\n
from argparse import ArgumentParser\\nfrom typing import Sequence\\n\\nfrom taskiq.abc.cmd import TaskiqCMD\\n\\n\\nclass MyCommand(TaskiqCMD):\\n    short_help = \\"Demo command\\"\\n\\n    def exec(self, args: Sequence[str]) -> None:\\n        parser = ArgumentParser()\\n        parser.add_argument(\\n            \\"--test\\",\\n            dest=\\"test\\",\\n            default=\\"default\\",\\n            help=\\"My test parameter.\\",\\n        )\\n        parsed = parser.parse_args(args)\\n        print(parsed)\\n
"}`);export{M as comp,I as data}; diff --git a/assets/cli.html-CCDgUlSP.js b/assets/cli.html-u54Dq3YY.js similarity index 85% rename from assets/cli.html-CCDgUlSP.js rename to assets/cli.html-u54Dq3YY.js index 24fa2e1..28c6b0b 100644 --- a/assets/cli.html-CCDgUlSP.js +++ b/assets/cli.html-u54Dq3YY.js @@ -1,11 +1,11 @@ -import{_ as c}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as p,c as u,e as r,w as s,b as e,d as a,a as i}from"./app-BQ_RvZRm.js";const h={},m=i(`

CLI

Core library comes with CLI program called taskiq, which is used to run different subcommands.

By default taskiq is shipped with only two commands: worker and scheduler. You can search for more taskiq plugins using pypi. Some plugins may add new commands to taskiq.

Worker

To run worker process, you have to specify the broker you want to use and modules with defined tasks. Like this:

taskiq worker mybroker:broker_var my_project.module1 my_project.module2
+import{_ as c}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as p,c as u,e as r,w as s,b as e,d as a,a as i}from"./app-B7rxM88G.js";const h={},m=i(`

CLI

Core library comes with CLI program called taskiq, which is used to run different subcommands.

By default taskiq is shipped with only two commands: worker and scheduler. You can search for more taskiq plugins using pypi. Some plugins may add new commands to taskiq.

Worker

To run worker process, you have to specify the broker you want to use and modules with defined tasks. Like this:

taskiq worker mybroker:broker_var my_project.module1 my_project.module2
 

Auto importing

Enumerating all modules with tasks is not an option sometimes. That's why taskiq can auto-discover tasks in current directory recursively.

We have two options for this:

  • --tasks-pattern or -tp. It's a glob pattern of files to import. By default it is **/tasks.py which searches for all tasks.py files. May be specified multiple times.
  • --fs-discover or -fsd. This option enables search of task files in current directory recursively, using the given pattern.

Acknowledgements

The taskiq supports three types of acknowledgements:

  • when_received - task is acknowledged when it is received by the worker.
  • when_executed - task is acknowledged right after it is executed by the worker.
  • when_saved - task is acknowledged when the result of execution is saved in the result backend.

This can be configured using --ack-type parameter. For example:

taskiq worker --ack-type when_executed mybroker:broker
 

Type casts

One of features taskiq have is automatic type casts. For example you have a type-hinted task like this:

async def task(val: int) -> int:
     return val + 1
 

If you'll call task.kiq("2") you'll get 3 as the returned value. Because we parse signatures of tasks and cast incoming parameters to target types. If type-cast fails you won't throw any error. It just leave the value as is. That functionality allows you to use pydantic models, or dataclasses as the input parameters.

To disable this pass the --no-parse option to the taskiq.

Hot reload

This is annoying to restart workers every time you modify tasks. That's why taskiq supports hot-reload. Reload is unavailable by default. To enable this feature install taskiq with reload extra.

`,22),k=e("div",{class:"language-bash","data-ext":"sh","data-title":"sh"},[e("pre",{class:"language-bash"},[e("code",null,[a("pip "),e("span",{class:"token function"},"install"),a(),e("span",{class:"token string"},'"taskiq[reload]"'),a(` `)])])],-1),g=e("div",{class:"language-bash","data-ext":"sh","data-title":"sh"},[e("pre",{class:"language-bash"},[e("code",null,[a("poetry "),e("span",{class:"token function"},"add"),a(" taskiq "),e("span",{class:"token parameter variable"},"-E"),a(` reload -`)])])],-1),f=i(`

To enable this option simply pass the --reload or -r option to worker taskiq CLI.

Also this option supports .gitignore files. If you have such file in your directory, it won't reload worker when you modify ignored files. To disable this functionality pass --do-not-use-gitignore option.

Graceful reload

To perform graceful reload, send SIGHUP signal to the main worker process. This action will reload all workers with new code. It's useful for deployment that requires zero downtime, but don't use orchestration tools like Kubernetes.

taskiq worker my_module:broker
+`)])])],-1),f=i(`

To enable this option simply pass the --reload or -r option to worker taskiq CLI.

Also this option supports .gitignore files. If you have such file in your directory, it won't reload worker when you modify ignored files. To disable this functionality pass --do-not-use-gitignore option.

Graceful reload (available only on Unix systems)

To perform graceful reload, send SIGHUP signal to the main worker process. This action will reload all workers with new code. It's useful for deployment that requires zero downtime, but don't use orchestration tools like Kubernetes.

taskiq worker my_module:broker
 kill -HUP <main pid>
 

Other parameters

  • --no-configure-logging - disables default logging configuration for workers.
  • --log-level is used to set a log level (default INFO).
  • --max-async-tasks - maximum number of simultaneously running async tasks.
  • --max-prefetch - number of tasks to be prefetched before execution. (Useful for systems with high message rates, but brokers should support acknowledgements).
  • --max-threadpool-threads - number of threads for sync function exection.
  • --no-propagate-errors - if this parameter is enabled, exceptions won't be thrown in generator dependencies.
  • --receiver - python path to custom receiver class.
  • --receiver_arg - custom args for receiver.
  • --ack-type - Type of acknowledgement. This parameter is used to set when to acknowledge the task. Possible values are when_received, when_executed, when_saved. Default is when_saved.
  • max-tasks-per-child - maximum number of tasks to be executed by a single worker process before restart.
  • --shutdown-timeout - maximum amount of time for graceful broker's shutdown in seconds.
  • --wait-tasks-timeout - if cannot read new messages from the broker or maximum number of tasks is reached, worker will wait for all current tasks to finish. This parameter sets the maximum amount of time to wait until shutdown.

Scheduler

`,10),y=i(`

To run it simply run

taskiq scheduler <path to scheduler> [optional module to import]...
 

For example

taskiq scheduler my_project.broker:scheduler my_project.module1 my_project.module2
-

Parameters

Path to scheduler is the only required argument.

  • --tasks-pattern or -tp. It's a glob pattern of files to import. By default it is **/tasks.py which searches for all tasks.py files. May be specified multiple times.
  • --fs-discover or -fsd. This option enables search of task files in current directory recursively, using the given pattern.
  • --no-configure-logging - use this parameter if your application configures custom logging.
  • --log-level is used to set a log level (default INFO).
  • --skip-first-run - skip first run of scheduler. This option skips running tasks immediately after scheduler start.
`,7);function b(v,w){const l=n("Tabs"),d=n("RouteLink");return p(),u("div",null,[m,r(l,{id:"83",data:[{id:"pip"},{id:"poetry"}]},{title0:s(({value:t,isActive:o})=>[a("pip")]),title1:s(({value:t,isActive:o})=>[a("poetry")]),tab0:s(({value:t,isActive:o})=>[k]),tab1:s(({value:t,isActive:o})=>[g]),_:1}),f,e("p",null,[a("Scheduler is used to schedule tasks as described in "),r(d,{to:"/guide/scheduling-tasks.html"},{default:s(()=>[a("Scheduling tasks")]),_:1}),a(" section.")]),y])}const q=c(h,[["render",b],["__file","cli.html.vue"]]),T=JSON.parse('{"path":"/guide/cli.html","title":"CLI","lang":"en-US","frontmatter":{"order":4,"description":"CLI Core library comes with CLI program called taskiq, which is used to run different subcommands. By default taskiq is shipped with only two commands: worker and scheduler. You...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/cli.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"CLI"}],["meta",{"property":"og:description","content":"CLI Core library comes with CLI program called taskiq, which is used to run different subcommands. By default taskiq is shipped with only two commands: worker and scheduler. You..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"CLI\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Worker","slug":"worker","link":"#worker","children":[{"level":3,"title":"Auto importing","slug":"auto-importing","link":"#auto-importing","children":[]},{"level":3,"title":"Acknowledgements","slug":"acknowledgements","link":"#acknowledgements","children":[]},{"level":3,"title":"Type casts","slug":"type-casts","link":"#type-casts","children":[]},{"level":3,"title":"Hot reload","slug":"hot-reload","link":"#hot-reload","children":[]},{"level":3,"title":"Graceful reload","slug":"graceful-reload","link":"#graceful-reload","children":[]},{"level":3,"title":"Other parameters","slug":"other-parameters","link":"#other-parameters","children":[]}]},{"level":2,"title":"Scheduler","slug":"scheduler","link":"#scheduler","children":[{"level":3,"title":"Parameters","slug":"parameters","link":"#parameters","children":[]}]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/cli.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Core library comes with CLI program called taskiq, which is used to run different subcommands.

\\n

By default taskiq is shipped with only two commands: worker and scheduler. You can search for more taskiq plugins\\nusing pypi. Some plugins may add new commands to taskiq.

"}');export{q as comp,T as data}; +

Parameters

Path to scheduler is the only required argument.

  • --tasks-pattern or -tp. It's a glob pattern of files to import. By default it is **/tasks.py which searches for all tasks.py files. May be specified multiple times.
  • --fs-discover or -fsd. This option enables search of task files in current directory recursively, using the given pattern.
  • --no-configure-logging - use this parameter if your application configures custom logging.
  • --log-level is used to set a log level (default INFO).
  • --skip-first-run - skip first run of scheduler. This option skips running tasks immediately after scheduler start.
`,7);function b(v,w){const l=n("Tabs"),d=n("RouteLink");return p(),u("div",null,[m,r(l,{id:"83",data:[{id:"pip"},{id:"poetry"}]},{title0:s(({value:t,isActive:o})=>[a("pip")]),title1:s(({value:t,isActive:o})=>[a("poetry")]),tab0:s(({value:t,isActive:o})=>[k]),tab1:s(({value:t,isActive:o})=>[g]),_:1}),f,e("p",null,[a("Scheduler is used to schedule tasks as described in "),r(d,{to:"/guide/scheduling-tasks.html"},{default:s(()=>[a("Scheduling tasks")]),_:1}),a(" section.")]),y])}const q=c(h,[["render",b],["__file","cli.html.vue"]]),T=JSON.parse('{"path":"/guide/cli.html","title":"CLI","lang":"en-US","frontmatter":{"order":4,"description":"CLI Core library comes with CLI program called taskiq, which is used to run different subcommands. By default taskiq is shipped with only two commands: worker and scheduler. You...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/cli.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"CLI"}],["meta",{"property":"og:description","content":"CLI Core library comes with CLI program called taskiq, which is used to run different subcommands. By default taskiq is shipped with only two commands: worker and scheduler. You..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"CLI\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Worker","slug":"worker","link":"#worker","children":[{"level":3,"title":"Auto importing","slug":"auto-importing","link":"#auto-importing","children":[]},{"level":3,"title":"Acknowledgements","slug":"acknowledgements","link":"#acknowledgements","children":[]},{"level":3,"title":"Type casts","slug":"type-casts","link":"#type-casts","children":[]},{"level":3,"title":"Hot reload","slug":"hot-reload","link":"#hot-reload","children":[]},{"level":3,"title":"Graceful reload (available only on Unix systems)","slug":"graceful-reload-available-only-on-unix-systems","link":"#graceful-reload-available-only-on-unix-systems","children":[]},{"level":3,"title":"Other parameters","slug":"other-parameters","link":"#other-parameters","children":[]}]},{"level":2,"title":"Scheduler","slug":"scheduler","link":"#scheduler","children":[{"level":3,"title":"Parameters","slug":"parameters","link":"#parameters","children":[]}]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/cli.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Core library comes with CLI program called taskiq, which is used to run different subcommands.

\\n

By default taskiq is shipped with only two commands: worker and scheduler. You can search for more taskiq plugins\\nusing pypi. Some plugins may add new commands to taskiq.

"}');export{q as comp,T as data}; diff --git a/assets/clone-B4YCsPuJ.js b/assets/clone-B4YCsPuJ.js deleted file mode 100644 index b76a59b..0000000 --- a/assets/clone-B4YCsPuJ.js +++ /dev/null @@ -1 +0,0 @@ -import{a as r}from"./graph-k1ojK0f-.js";var a=4;function n(o){return r(o,a)}export{n as c}; diff --git a/assets/clone-SNQTcLae.js b/assets/clone-SNQTcLae.js new file mode 100644 index 0000000..b9eb5d6 --- /dev/null +++ b/assets/clone-SNQTcLae.js @@ -0,0 +1 @@ +import{a as r}from"./graph-BKQChTdx.js";var a=4;function n(o){return r(o,a)}export{n as c}; diff --git a/assets/contrib.html-D8vp9Kkd.js b/assets/contrib.html-Ct7fcL-5.js similarity index 92% rename from assets/contrib.html-D8vp9Kkd.js rename to assets/contrib.html-Ct7fcL-5.js index 2337246..e831097 100644 --- a/assets/contrib.html-D8vp9Kkd.js +++ b/assets/contrib.html-Ct7fcL-5.js @@ -1,7 +1,7 @@ -import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as r,c as l,b as e,d as t,e as s,a as i}from"./app-BQ_RvZRm.js";const d={},u=e("h1",{id:"contribution-guide",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#contribution-guide"},[e("span",null,"Contribution guide")])],-1),c=e("p",null,"We love contributions. This guide is for all folks who want to make taskiq better together. We have several rules for contributors:",-1),p=e("ul",null,[e("li",null,"Please do not add malware."),e("li",null,"Please make sure that your request solves the problem.")],-1),h={href:"https://github.com/orgs/taskiq-python/discussions",target:"_blank",rel:"noopener noreferrer"},m=e("p",null,"We have lots of tests in CI. But since CI runs from first-time contributors should be approved, you better test locally. It just takes less time to prepare PR for merging.",-1),g=e("h2",{id:"setting-up-environment",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#setting-up-environment"},[e("span",null,"Setting up environment")])],-1),v={href:"https://python-poetry.org/docs/",target:"_blank",rel:"noopener noreferrer"},b=i(`

After you have cloned the taskiq repo, install dependencies using this command:

poetry install
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as r,c as l,b as e,d as t,e as s,a as i}from"./app-B7rxM88G.js";const d={},u=e("h1",{id:"contribution-guide",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#contribution-guide"},[e("span",null,"Contribution guide")])],-1),c=e("p",null,"We love contributions. This guide is for all folks who want to make taskiq better together. We have several rules for contributors:",-1),p=e("ul",null,[e("li",null,"Please do not add malware."),e("li",null,"Please make sure that your request solves the problem.")],-1),h={href:"https://github.com/orgs/taskiq-python/discussions",target:"_blank",rel:"noopener noreferrer"},m=e("p",null,"We have lots of tests in CI. But since CI runs from first-time contributors should be approved, you better test locally. It just takes less time to prepare PR for merging.",-1),g=e("h2",{id:"setting-up-environment",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#setting-up-environment"},[e("span",null,"Setting up environment")])],-1),v={href:"https://python-poetry.org/docs/",target:"_blank",rel:"noopener noreferrer"},b=i(`

After you have cloned the taskiq repo, install dependencies using this command:

poetry install
 
`,2),f=e("code",null,"pyenv",-1),y={href:"https://github.com/pyenv/pyenv",target:"_blank",rel:"noopener noreferrer"},_=i(`

After pyenv is ready, you can install all python versions using this command:

pyenv install
 

Linting

We have pre-commit configured with all our settings. We highly recommend you to install it as a git hook using pre-commit install command.

But even without installation, you can run all lints manually:

pre-commit run -a
 

Testing

You can run pytest without any parameters and it will do the thing.

pytest
 
`,9),k=e("code",null,"-n",-1),w={href:"https://pypi.org/project/pytest-xdist/",target:"_blank",rel:"noopener noreferrer"},x=i(`
pytest -n 2
 

Also we use tox to test against different environments. You can publish a PR to run pytest with different python versions, but if you want to do it locally, just run tox command.

tox
-

Tox assumes that you've installed python versions using pyenv with command above.

`,4);function T(q,P){const n=o("ExternalLinkIcon");return r(),l("div",null,[u,c,p,e("p",null,[t("If you struggle with something or feel frustrated, you either create an issue, create a "),e("a",h,[t("discussions"),s(n)]),t(". page or publish a draft PR and ask your question in the description.")]),m,g,e("p",null,[t("We use poetry for managing dependencies. To install it, please follow the official guide in "),e("a",v,[t("documentation"),s(n)]),t(".")]),b,e("p",null,[t("It will install all required dependencies. If you want to run pytest against different python environments, please install "),f,t(" using instructions from its "),e("a",y,[t("readme"),s(n)]),t(".")]),_,e("p",null,[t("If you want to speedup testings, you can run it with "),k,t(" option from "),e("a",w,[t("pytest-xdist"),s(n)]),t(" to run tests in parallel.")]),x])}const C=a(d,[["render",T],["__file","contrib.html.vue"]]),S=JSON.parse('{"path":"/contrib.html","title":"Contribution guide","lang":"en-US","frontmatter":{"order":5,"description":"Contribution guide We love contributions. This guide is for all folks who want to make taskiq better together. We have several rules for contributors: Please do not add malware....","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/contrib.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Contribution guide"}],["meta",{"property":"og:description","content":"Contribution guide We love contributions. This guide is for all folks who want to make taskiq better together. We have several rules for contributors: Please do not add malware...."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Contribution guide\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Setting up environment","slug":"setting-up-environment","link":"#setting-up-environment","children":[]},{"level":2,"title":"Linting","slug":"linting","link":"#linting","children":[]},{"level":2,"title":"Testing","slug":"testing","link":"#testing","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"contrib.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

We love contributions. This guide is for all folks who want to make taskiq better together.\\nWe have several rules for contributors:

\\n
    \\n
  • Please do not add malware.
  • \\n
  • Please make sure that your request solves the problem.
  • \\n
\\n

If you struggle with something or feel frustrated, you either create an issue, create a discussions.\\npage or publish a draft PR and ask your question in the description.

"}');export{C as comp,S as data}; +

Tox assumes that you've installed python versions using pyenv with command above.

`,4);function T(q,P){const n=o("ExternalLinkIcon");return r(),l("div",null,[u,c,p,e("p",null,[t("If you struggle with something or feel frustrated, you either create an issue, create a "),e("a",h,[t("discussions"),s(n)]),t(". page or publish a draft PR and ask your question in the description.")]),m,g,e("p",null,[t("We use poetry for managing dependencies. To install it, please follow the official guide in "),e("a",v,[t("documentation"),s(n)]),t(".")]),b,e("p",null,[t("It will install all required dependencies. If you want to run pytest against different python environments, please install "),f,t(" using instructions from its "),e("a",y,[t("readme"),s(n)]),t(".")]),_,e("p",null,[t("If you want to speedup testings, you can run it with "),k,t(" option from "),e("a",w,[t("pytest-xdist"),s(n)]),t(" to run tests in parallel.")]),x])}const C=a(d,[["render",T],["__file","contrib.html.vue"]]),S=JSON.parse('{"path":"/contrib.html","title":"Contribution guide","lang":"en-US","frontmatter":{"order":5,"description":"Contribution guide We love contributions. This guide is for all folks who want to make taskiq better together. We have several rules for contributors: Please do not add malware....","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/contrib.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Contribution guide"}],["meta",{"property":"og:description","content":"Contribution guide We love contributions. This guide is for all folks who want to make taskiq better together. We have several rules for contributors: Please do not add malware...."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Contribution guide\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Setting up environment","slug":"setting-up-environment","link":"#setting-up-environment","children":[]},{"level":2,"title":"Linting","slug":"linting","link":"#linting","children":[]},{"level":2,"title":"Testing","slug":"testing","link":"#testing","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"contrib.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

We love contributions. This guide is for all folks who want to make taskiq better together.\\nWe have several rules for contributors:

\\n
    \\n
  • Please do not add malware.
  • \\n
  • Please make sure that your request solves the problem.
  • \\n
\\n

If you struggle with something or feel frustrated, you either create an issue, create a discussions.\\npage or publish a draft PR and ask your question in the description.

"}');export{C as comp,S as data}; diff --git a/assets/createText-ca0c5216-BYApgeQh.js b/assets/createText-ca0c5216-zqCXB1ps.js similarity index 99% rename from assets/createText-ca0c5216-BYApgeQh.js rename to assets/createText-ca0c5216-zqCXB1ps.js index 99979ed..0cc7a70 100644 --- a/assets/createText-ca0c5216-BYApgeQh.js +++ b/assets/createText-ca0c5216-zqCXB1ps.js @@ -1,4 +1,4 @@ -import{l as At,an as zt,ap as It}from"./mermaid.core-Cio1iadR.js";const Tt={};function Bt(n,r){const t=Tt,e=typeof t.includeImageAlt=="boolean"?t.includeImageAlt:!0,u=typeof t.includeHtml=="boolean"?t.includeHtml:!0;return et(n,e,u)}function et(n,r,t){if(Lt(n)){if("value"in n)return n.type==="html"&&!t?"":n.value;if(r&&"alt"in n&&n.alt)return n.alt;if("children"in n)return Vn(n.children,r,t)}return Array.isArray(n)?Vn(n,r,t):""}function Vn(n,r,t){const e=[];let u=-1;for(;++uu?0:u+r:r=r>u?u:r,t=t>0?t:0,e.length<1e4)l=Array.from(e),l.unshift(r,t),n.splice(...l);else for(t&&n.splice(r,t);i0?(tn(n,n.length,0,r),n):r}const Wn={}.hasOwnProperty;function Ot(n){const r={};let t=-1;for(;++tl))return;const T=r.events.length;let H=T,N,V;for(;H--;)if(r.events[H][0]==="exit"&&r.events[H][1].type==="chunkFlow"){if(N){V=r.events[H][1].end;break}N=!0}for(b(e),k=T;kF;){const _=t[D];r.containerState=_[1],_[0].exit.call(r,n)}t.length=F}function j(){u.write([null]),i=void 0,u=void 0,r.containerState._closeFlow=void 0}}function Ut(n,r,t){return O(n,n.attempt(this.parser.constructs.document,r,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Un(n){if(n===null||Z(n)||Ht(n))return 1;if(qt(n))return 2}function Ln(n,r,t){const e=[];let u=-1;for(;++u1&&n[t][1].end.offset-n[t][1].start.offset>1?2:1;const f=Object.assign({},n[e][1].end),x=Object.assign({},n[t][1].start);$n(f,-m),$n(x,m),l={type:m>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},n[e][1].end)},a={type:m>1?"strongSequence":"emphasisSequence",start:Object.assign({},n[t][1].start),end:x},i={type:m>1?"strongText":"emphasisText",start:Object.assign({},n[e][1].end),end:Object.assign({},n[t][1].start)},u={type:m>1?"strong":"emphasis",start:Object.assign({},l.start),end:Object.assign({},a.end)},n[e][1].end=Object.assign({},l.start),n[t][1].start=Object.assign({},a.end),c=[],n[e][1].end.offset-n[e][1].start.offset&&(c=Y(c,[["enter",n[e][1],r],["exit",n[e][1],r]])),c=Y(c,[["enter",u,r],["enter",l,r],["exit",l,r],["enter",i,r]]),c=Y(c,Ln(r.parser.constructs.insideSpan.null,n.slice(e+1,t),r)),c=Y(c,[["exit",i,r],["enter",a,r],["exit",a,r],["exit",u,r]]),n[t][1].end.offset-n[t][1].start.offset?(p=2,c=Y(c,[["enter",n[t][1],r],["exit",n[t][1],r]])):p=0,tn(n,e-1,t-e+3,c),t=e+c.length-p-2;break}}for(t=-1;++t0&&z(k)?O(n,j,"linePrefix",i+1)(k):j(k)}function j(k){return k===null||C(k)?n.check(Yn,I,D)(k):(n.enter("codeFlowValue"),F(k))}function F(k){return k===null||C(k)?(n.exit("codeFlowValue"),j(k)):(n.consume(k),F)}function D(k){return n.exit("codeFenced"),r(k)}function _(k,T,H){let N=0;return V;function V(w){return k.enter("lineEnding"),k.consume(w),k.exit("lineEnding"),y}function y(w){return k.enter("codeFencedFence"),z(w)?O(k,S,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(w):S(w)}function S(w){return w===a?(k.enter("codeFencedFenceSequence"),P(w)):H(w)}function P(w){return w===a?(N++,k.consume(w),P):N>=l?(k.exit("codeFencedFenceSequence"),z(w)?O(k,R,"whitespace")(w):R(w)):H(w)}function R(w){return w===null||C(w)?(k.exit("codeFencedFence"),T(w)):H(w)}}}function re(n,r,t){const e=this;return u;function u(l){return l===null?t(l):(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}const Cn={name:"codeIndented",tokenize:ue},ie={tokenize:le,partial:!0};function ue(n,r,t){const e=this;return u;function u(c){return n.enter("codeIndented"),O(n,i,"linePrefix",5)(c)}function i(c){const p=e.events[e.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?l(c):t(c)}function l(c){return c===null?m(c):C(c)?n.attempt(ie,l,m)(c):(n.enter("codeFlowValue"),a(c))}function a(c){return c===null||C(c)?(n.exit("codeFlowValue"),l(c)):(n.consume(c),a)}function m(c){return n.exit("codeIndented"),r(c)}}function le(n,r,t){const e=this;return u;function u(l){return e.parser.lazy[e.now().line]?t(l):C(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),u):O(n,i,"linePrefix",5)(l)}function i(l){const a=e.events[e.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?r(l):C(l)?u(l):t(l)}}const ae={name:"codeText",tokenize:ce,resolve:oe,previous:se};function oe(n){let r=n.length-4,t=3,e,u;if((n[t][1].type==="lineEnding"||n[t][1].type==="space")&&(n[r][1].type==="lineEnding"||n[r][1].type==="space")){for(e=t;++e=4?r(l):n.interrupt(e.parser.constructs.flow,t,r)(l)}}function at(n,r,t,e,u,i,l,a,m){const c=m||Number.POSITIVE_INFINITY;let p=0;return f;function f(b){return b===60?(n.enter(e),n.enter(u),n.enter(i),n.consume(b),n.exit(i),x):b===null||b===32||b===41||An(b)?t(b):(n.enter(e),n.enter(l),n.enter(a),n.enter("chunkString",{contentType:"string"}),I(b))}function x(b){return b===62?(n.enter(i),n.consume(b),n.exit(i),n.exit(u),n.exit(e),r):(n.enter(a),n.enter("chunkString",{contentType:"string"}),h(b))}function h(b){return b===62?(n.exit("chunkString"),n.exit(a),x(b)):b===null||b===60||C(b)?t(b):(n.consume(b),b===92?A:h)}function A(b){return b===60||b===62||b===92?(n.consume(b),h):h(b)}function I(b){return!p&&(b===null||b===41||Z(b))?(n.exit("chunkString"),n.exit(a),n.exit(l),n.exit(e),r(b)):p999||h===null||h===91||h===93&&!m||h===94&&!a&&"_hiddenFootnoteSupport"in l.parser.constructs?t(h):h===93?(n.exit(i),n.enter(u),n.consume(h),n.exit(u),n.exit(e),r):C(h)?(n.enter("lineEnding"),n.consume(h),n.exit("lineEnding"),p):(n.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||C(h)||a++>999?(n.exit("chunkString"),p(h)):(n.consume(h),m||(m=!z(h)),h===92?x:f)}function x(h){return h===91||h===92||h===93?(n.consume(h),a++,f):f(h)}}function st(n,r,t,e,u,i){let l;return a;function a(x){return x===34||x===39||x===40?(n.enter(e),n.enter(u),n.consume(x),n.exit(u),l=x===40?41:x,m):t(x)}function m(x){return x===l?(n.enter(u),n.consume(x),n.exit(u),n.exit(e),r):(n.enter(i),c(x))}function c(x){return x===l?(n.exit(i),m(l)):x===null?t(x):C(x)?(n.enter("lineEnding"),n.consume(x),n.exit("lineEnding"),O(n,c,"linePrefix")):(n.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===l||x===null||C(x)?(n.exit("chunkString"),c(x)):(n.consume(x),x===92?f:p)}function f(x){return x===l||x===92?(n.consume(x),p):p(x)}}function dn(n,r){let t;return e;function e(u){return C(u)?(n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),t=!0,e):z(u)?O(n,e,t?"linePrefix":"lineSuffix")(u):r(u)}}function xn(n){return n.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const ke={name:"definition",tokenize:be},de={tokenize:ye,partial:!0};function be(n,r,t){const e=this;let u;return i;function i(h){return n.enter("definition"),l(h)}function l(h){return ot.call(e,n,a,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function a(h){return u=xn(e.sliceSerialize(e.events[e.events.length-1][1]).slice(1,-1)),h===58?(n.enter("definitionMarker"),n.consume(h),n.exit("definitionMarker"),m):t(h)}function m(h){return Z(h)?dn(n,c)(h):c(h)}function c(h){return at(n,p,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function p(h){return n.attempt(de,f,f)(h)}function f(h){return z(h)?O(n,x,"whitespace")(h):x(h)}function x(h){return h===null||C(h)?(n.exit("definition"),e.parser.defined.push(u),r(h)):t(h)}}function ye(n,r,t){return e;function e(a){return Z(a)?dn(n,u)(a):t(a)}function u(a){return st(n,i,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function i(a){return z(a)?O(n,l,"whitespace")(a):l(a)}function l(a){return a===null||C(a)?r(a):t(a)}}const Se={name:"hardBreakEscape",tokenize:Fe};function Fe(n,r,t){return e;function e(i){return n.enter("hardBreakEscape"),n.consume(i),u}function u(i){return C(i)?(n.exit("hardBreakEscape"),r(i)):t(i)}}const Ee={name:"headingAtx",tokenize:we,resolve:Ce};function Ce(n,r){let t=n.length-2,e=3,u,i;return n[e][1].type==="whitespace"&&(e+=2),t-2>e&&n[t][1].type==="whitespace"&&(t-=2),n[t][1].type==="atxHeadingSequence"&&(e===t-1||t-4>e&&n[t-2][1].type==="whitespace")&&(t-=e+1===t?2:4),t>e&&(u={type:"atxHeadingText",start:n[e][1].start,end:n[t][1].end},i={type:"chunkText",start:n[e][1].start,end:n[t][1].end,contentType:"text"},tn(n,e,t-e+1,[["enter",u,r],["enter",i,r],["exit",i,r],["exit",u,r]])),n}function we(n,r,t){let e=0;return u;function u(p){return n.enter("atxHeading"),i(p)}function i(p){return n.enter("atxHeadingSequence"),l(p)}function l(p){return p===35&&e++<6?(n.consume(p),l):p===null||Z(p)?(n.exit("atxHeadingSequence"),a(p)):t(p)}function a(p){return p===35?(n.enter("atxHeadingSequence"),m(p)):p===null||C(p)?(n.exit("atxHeading"),r(p)):z(p)?O(n,a,"whitespace")(p):(n.enter("atxHeadingText"),c(p))}function m(p){return p===35?(n.consume(p),m):(n.exit("atxHeadingSequence"),a(p))}function c(p){return p===null||p===35||Z(p)?(n.exit("atxHeadingText"),a(p)):(n.consume(p),c)}}const Ae=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Jn=["pre","script","style","textarea"],ze={name:"htmlFlow",tokenize:Le,resolveTo:Be,concrete:!0},Ie={tokenize:De,partial:!0},Te={tokenize:Oe,partial:!0};function Be(n){let r=n.length;for(;r--&&!(n[r][0]==="enter"&&n[r][1].type==="htmlFlow"););return r>1&&n[r-2][1].type==="linePrefix"&&(n[r][1].start=n[r-2][1].start,n[r+1][1].start=n[r-2][1].start,n.splice(r-2,2)),n}function Le(n,r,t){const e=this;let u,i,l,a,m;return c;function c(s){return p(s)}function p(s){return n.enter("htmlFlow"),n.enter("htmlFlowData"),n.consume(s),f}function f(s){return s===33?(n.consume(s),x):s===47?(n.consume(s),i=!0,I):s===63?(n.consume(s),u=3,e.interrupt?r:o):nn(s)?(n.consume(s),l=String.fromCharCode(s),M):t(s)}function x(s){return s===45?(n.consume(s),u=2,h):s===91?(n.consume(s),u=5,a=0,A):nn(s)?(n.consume(s),u=4,e.interrupt?r:o):t(s)}function h(s){return s===45?(n.consume(s),e.interrupt?r:o):t(s)}function A(s){const K="CDATA[";return s===K.charCodeAt(a++)?(n.consume(s),a===K.length?e.interrupt?r:S:A):t(s)}function I(s){return nn(s)?(n.consume(s),l=String.fromCharCode(s),M):t(s)}function M(s){if(s===null||s===47||s===62||Z(s)){const K=s===47,hn=l.toLowerCase();return!K&&!i&&Jn.includes(hn)?(u=1,e.interrupt?r(s):S(s)):Ae.includes(l.toLowerCase())?(u=6,K?(n.consume(s),b):e.interrupt?r(s):S(s)):(u=7,e.interrupt&&!e.parser.lazy[e.now().line]?t(s):i?j(s):F(s))}return s===45||v(s)?(n.consume(s),l+=String.fromCharCode(s),M):t(s)}function b(s){return s===62?(n.consume(s),e.interrupt?r:S):t(s)}function j(s){return z(s)?(n.consume(s),j):V(s)}function F(s){return s===47?(n.consume(s),V):s===58||s===95||nn(s)?(n.consume(s),D):z(s)?(n.consume(s),F):V(s)}function D(s){return s===45||s===46||s===58||s===95||v(s)?(n.consume(s),D):_(s)}function _(s){return s===61?(n.consume(s),k):z(s)?(n.consume(s),_):F(s)}function k(s){return s===null||s===60||s===61||s===62||s===96?t(s):s===34||s===39?(n.consume(s),m=s,T):z(s)?(n.consume(s),k):H(s)}function T(s){return s===m?(n.consume(s),m=null,N):s===null||C(s)?t(s):(n.consume(s),T)}function H(s){return s===null||s===34||s===39||s===47||s===60||s===61||s===62||s===96||Z(s)?_(s):(n.consume(s),H)}function N(s){return s===47||s===62||z(s)?F(s):t(s)}function V(s){return s===62?(n.consume(s),y):t(s)}function y(s){return s===null||C(s)?S(s):z(s)?(n.consume(s),y):t(s)}function S(s){return s===45&&u===2?(n.consume(s),U):s===60&&u===1?(n.consume(s),W):s===62&&u===4?(n.consume(s),J):s===63&&u===3?(n.consume(s),o):s===93&&u===5?(n.consume(s),en):C(s)&&(u===6||u===7)?(n.exit("htmlFlowData"),n.check(Ie,rn,P)(s)):s===null||C(s)?(n.exit("htmlFlowData"),P(s)):(n.consume(s),S)}function P(s){return n.check(Te,R,rn)(s)}function R(s){return n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),w}function w(s){return s===null||C(s)?P(s):(n.enter("htmlFlowData"),S(s))}function U(s){return s===45?(n.consume(s),o):S(s)}function W(s){return s===47?(n.consume(s),l="",G):S(s)}function G(s){if(s===62){const K=l.toLowerCase();return Jn.includes(K)?(n.consume(s),J):S(s)}return nn(s)&&l.length<8?(n.consume(s),l+=String.fromCharCode(s),G):S(s)}function en(s){return s===93?(n.consume(s),o):S(s)}function o(s){return s===62?(n.consume(s),J):s===45&&u===2?(n.consume(s),o):S(s)}function J(s){return s===null||C(s)?(n.exit("htmlFlowData"),rn(s)):(n.consume(s),J)}function rn(s){return n.exit("htmlFlow"),r(s)}}function Oe(n,r,t){const e=this;return u;function u(l){return C(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i):t(l)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}function De(n,r,t){return e;function e(u){return n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),n.attempt(Sn,r,t)}}const Pe={name:"htmlText",tokenize:_e};function _e(n,r,t){const e=this;let u,i,l;return a;function a(o){return n.enter("htmlText"),n.enter("htmlTextData"),n.consume(o),m}function m(o){return o===33?(n.consume(o),c):o===47?(n.consume(o),_):o===63?(n.consume(o),F):nn(o)?(n.consume(o),H):t(o)}function c(o){return o===45?(n.consume(o),p):o===91?(n.consume(o),i=0,A):nn(o)?(n.consume(o),j):t(o)}function p(o){return o===45?(n.consume(o),h):t(o)}function f(o){return o===null?t(o):o===45?(n.consume(o),x):C(o)?(l=f,W(o)):(n.consume(o),f)}function x(o){return o===45?(n.consume(o),h):f(o)}function h(o){return o===62?U(o):o===45?x(o):f(o)}function A(o){const J="CDATA[";return o===J.charCodeAt(i++)?(n.consume(o),i===J.length?I:A):t(o)}function I(o){return o===null?t(o):o===93?(n.consume(o),M):C(o)?(l=I,W(o)):(n.consume(o),I)}function M(o){return o===93?(n.consume(o),b):I(o)}function b(o){return o===62?U(o):o===93?(n.consume(o),b):I(o)}function j(o){return o===null||o===62?U(o):C(o)?(l=j,W(o)):(n.consume(o),j)}function F(o){return o===null?t(o):o===63?(n.consume(o),D):C(o)?(l=F,W(o)):(n.consume(o),F)}function D(o){return o===62?U(o):F(o)}function _(o){return nn(o)?(n.consume(o),k):t(o)}function k(o){return o===45||v(o)?(n.consume(o),k):T(o)}function T(o){return C(o)?(l=T,W(o)):z(o)?(n.consume(o),T):U(o)}function H(o){return o===45||v(o)?(n.consume(o),H):o===47||o===62||Z(o)?N(o):t(o)}function N(o){return o===47?(n.consume(o),U):o===58||o===95||nn(o)?(n.consume(o),V):C(o)?(l=N,W(o)):z(o)?(n.consume(o),N):U(o)}function V(o){return o===45||o===46||o===58||o===95||v(o)?(n.consume(o),V):y(o)}function y(o){return o===61?(n.consume(o),S):C(o)?(l=y,W(o)):z(o)?(n.consume(o),y):N(o)}function S(o){return o===null||o===60||o===61||o===62||o===96?t(o):o===34||o===39?(n.consume(o),u=o,P):C(o)?(l=S,W(o)):z(o)?(n.consume(o),S):(n.consume(o),R)}function P(o){return o===u?(n.consume(o),u=void 0,w):o===null?t(o):C(o)?(l=P,W(o)):(n.consume(o),P)}function R(o){return o===null||o===34||o===39||o===60||o===61||o===96?t(o):o===47||o===62||Z(o)?N(o):(n.consume(o),R)}function w(o){return o===47||o===62||Z(o)?N(o):t(o)}function U(o){return o===62?(n.consume(o),n.exit("htmlTextData"),n.exit("htmlText"),r):t(o)}function W(o){return n.exit("htmlTextData"),n.enter("lineEnding"),n.consume(o),n.exit("lineEnding"),G}function G(o){return z(o)?O(n,en,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):en(o)}function en(o){return n.enter("htmlTextData"),l(o)}}const Dn={name:"labelEnd",tokenize:Ne,resolveTo:He,resolveAll:qe},Me={tokenize:Ve},je={tokenize:We},Re={tokenize:Qe};function qe(n){let r=-1;for(;++r=3&&(c===null||C(c))?(n.exit("thematicBreak"),r(c)):t(c)}function m(c){return c===u?(n.consume(c),e++,m):(n.exit("thematicBreakSequence"),z(c)?O(n,a,"whitespace")(c):a(c))}}const $={name:"list",tokenize:ve,continuation:{tokenize:nr},exit:er},Ke={tokenize:rr,partial:!0},Xe={tokenize:tr,partial:!0};function ve(n,r,t){const e=this,u=e.events[e.events.length-1];let i=u&&u[1].type==="linePrefix"?u[2].sliceSerialize(u[1],!0).length:0,l=0;return a;function a(h){const A=e.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(A==="listUnordered"?!e.containerState.marker||h===e.containerState.marker:zn(h)){if(e.containerState.type||(e.containerState.type=A,n.enter(A,{_container:!0})),A==="listUnordered")return n.enter("listItemPrefix"),h===42||h===45?n.check(bn,t,c)(h):c(h);if(!e.interrupt||h===49)return n.enter("listItemPrefix"),n.enter("listItemValue"),m(h)}return t(h)}function m(h){return zn(h)&&++l<10?(n.consume(h),m):(!e.interrupt||l<2)&&(e.containerState.marker?h===e.containerState.marker:h===41||h===46)?(n.exit("listItemValue"),c(h)):t(h)}function c(h){return n.enter("listItemMarker"),n.consume(h),n.exit("listItemMarker"),e.containerState.marker=e.containerState.marker||h,n.check(Sn,e.interrupt?t:p,n.attempt(Ke,x,f))}function p(h){return e.containerState.initialBlankLine=!0,i++,x(h)}function f(h){return z(h)?(n.enter("listItemPrefixWhitespace"),n.consume(h),n.exit("listItemPrefixWhitespace"),x):t(h)}function x(h){return e.containerState.size=i+e.sliceSerialize(n.exit("listItemPrefix"),!0).length,r(h)}}function nr(n,r,t){const e=this;return e.containerState._closeFlow=void 0,n.check(Sn,u,i);function u(a){return e.containerState.furtherBlankLines=e.containerState.furtherBlankLines||e.containerState.initialBlankLine,O(n,r,"listItemIndent",e.containerState.size+1)(a)}function i(a){return e.containerState.furtherBlankLines||!z(a)?(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,l(a)):(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,n.attempt(Xe,r,l)(a))}function l(a){return e.containerState._closeFlow=!0,e.interrupt=void 0,O(n,n.attempt($,r,t),"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function tr(n,r,t){const e=this;return O(n,u,"listItemIndent",e.containerState.size+1);function u(i){const l=e.events[e.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===e.containerState.size?r(i):t(i)}}function er(n){n.exit(this.containerState.type)}function rr(n,r,t){const e=this;return O(n,u,"listItemPrefixWhitespace",e.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function u(i){const l=e.events[e.events.length-1];return!z(i)&&l&&l[1].type==="listItemPrefixWhitespace"?r(i):t(i)}}const Kn={name:"setextUnderline",tokenize:ur,resolveTo:ir};function ir(n,r){let t=n.length,e,u,i;for(;t--;)if(n[t][0]==="enter"){if(n[t][1].type==="content"){e=t;break}n[t][1].type==="paragraph"&&(u=t)}else n[t][1].type==="content"&&n.splice(t,1),!i&&n[t][1].type==="definition"&&(i=t);const l={type:"setextHeading",start:Object.assign({},n[u][1].start),end:Object.assign({},n[n.length-1][1].end)};return n[u][1].type="setextHeadingText",i?(n.splice(u,0,["enter",l,r]),n.splice(i+1,0,["exit",n[e][1],r]),n[e][1].end=Object.assign({},n[i][1].end)):n[e][1]=l,n.push(["exit",l,r]),n}function ur(n,r,t){const e=this;let u;return i;function i(c){let p=e.events.length,f;for(;p--;)if(e.events[p][1].type!=="lineEnding"&&e.events[p][1].type!=="linePrefix"&&e.events[p][1].type!=="content"){f=e.events[p][1].type==="paragraph";break}return!e.parser.lazy[e.now().line]&&(e.interrupt||f)?(n.enter("setextHeadingLine"),u=c,l(c)):t(c)}function l(c){return n.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===u?(n.consume(c),a):(n.exit("setextHeadingLineSequence"),z(c)?O(n,m,"lineSuffix")(c):m(c))}function m(c){return c===null||C(c)?(n.exit("setextHeadingLine"),r(c)):t(c)}}const lr={tokenize:ar};function ar(n){const r=this,t=n.attempt(Sn,e,n.attempt(this.parser.constructs.flowInitial,u,O(n,n.attempt(this.parser.constructs.flow,u,n.attempt(pe,u)),"linePrefix")));return t;function e(i){if(i===null){n.consume(i);return}return n.enter("lineEndingBlank"),n.consume(i),n.exit("lineEndingBlank"),r.currentConstruct=void 0,t}function u(i){if(i===null){n.consume(i);return}return n.enter("lineEnding"),n.consume(i),n.exit("lineEnding"),r.currentConstruct=void 0,t}}const or={resolveAll:ht()},sr=ct("string"),cr=ct("text");function ct(n){return{tokenize:r,resolveAll:ht(n==="text"?hr:void 0)};function r(t){const e=this,u=this.parser.constructs[n],i=t.attempt(u,l,a);return l;function l(p){return c(p)?i(p):a(p)}function a(p){if(p===null){t.consume(p);return}return t.enter("data"),t.consume(p),m}function m(p){return c(p)?(t.exit("data"),i(p)):(t.consume(p),m)}function c(p){if(p===null)return!0;const f=u[p];let x=-1;if(f)for(;++x-1){const a=l[0];typeof a=="string"?l[0]=a.slice(e):l.shift()}i>0&&l.push(n[u].slice(0,i))}return l}function mr(n,r){let t=-1;const e=[];let u;for(;++tu?0:u+r:r=r>u?u:r,t=t>0?t:0,e.length<1e4)l=Array.from(e),l.unshift(r,t),n.splice(...l);else for(t&&n.splice(r,t);i0?(tn(n,n.length,0,r),n):r}const Wn={}.hasOwnProperty;function Ot(n){const r={};let t=-1;for(;++tl))return;const T=r.events.length;let H=T,N,V;for(;H--;)if(r.events[H][0]==="exit"&&r.events[H][1].type==="chunkFlow"){if(N){V=r.events[H][1].end;break}N=!0}for(b(e),k=T;kF;){const _=t[D];r.containerState=_[1],_[0].exit.call(r,n)}t.length=F}function j(){u.write([null]),i=void 0,u=void 0,r.containerState._closeFlow=void 0}}function Ut(n,r,t){return O(n,n.attempt(this.parser.constructs.document,r,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Un(n){if(n===null||Z(n)||Ht(n))return 1;if(qt(n))return 2}function Ln(n,r,t){const e=[];let u=-1;for(;++u1&&n[t][1].end.offset-n[t][1].start.offset>1?2:1;const f=Object.assign({},n[e][1].end),x=Object.assign({},n[t][1].start);$n(f,-m),$n(x,m),l={type:m>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},n[e][1].end)},a={type:m>1?"strongSequence":"emphasisSequence",start:Object.assign({},n[t][1].start),end:x},i={type:m>1?"strongText":"emphasisText",start:Object.assign({},n[e][1].end),end:Object.assign({},n[t][1].start)},u={type:m>1?"strong":"emphasis",start:Object.assign({},l.start),end:Object.assign({},a.end)},n[e][1].end=Object.assign({},l.start),n[t][1].start=Object.assign({},a.end),c=[],n[e][1].end.offset-n[e][1].start.offset&&(c=Y(c,[["enter",n[e][1],r],["exit",n[e][1],r]])),c=Y(c,[["enter",u,r],["enter",l,r],["exit",l,r],["enter",i,r]]),c=Y(c,Ln(r.parser.constructs.insideSpan.null,n.slice(e+1,t),r)),c=Y(c,[["exit",i,r],["enter",a,r],["exit",a,r],["exit",u,r]]),n[t][1].end.offset-n[t][1].start.offset?(p=2,c=Y(c,[["enter",n[t][1],r],["exit",n[t][1],r]])):p=0,tn(n,e-1,t-e+3,c),t=e+c.length-p-2;break}}for(t=-1;++t0&&z(k)?O(n,j,"linePrefix",i+1)(k):j(k)}function j(k){return k===null||C(k)?n.check(Yn,I,D)(k):(n.enter("codeFlowValue"),F(k))}function F(k){return k===null||C(k)?(n.exit("codeFlowValue"),j(k)):(n.consume(k),F)}function D(k){return n.exit("codeFenced"),r(k)}function _(k,T,H){let N=0;return V;function V(w){return k.enter("lineEnding"),k.consume(w),k.exit("lineEnding"),y}function y(w){return k.enter("codeFencedFence"),z(w)?O(k,S,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(w):S(w)}function S(w){return w===a?(k.enter("codeFencedFenceSequence"),P(w)):H(w)}function P(w){return w===a?(N++,k.consume(w),P):N>=l?(k.exit("codeFencedFenceSequence"),z(w)?O(k,R,"whitespace")(w):R(w)):H(w)}function R(w){return w===null||C(w)?(k.exit("codeFencedFence"),T(w)):H(w)}}}function re(n,r,t){const e=this;return u;function u(l){return l===null?t(l):(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}const Cn={name:"codeIndented",tokenize:ue},ie={tokenize:le,partial:!0};function ue(n,r,t){const e=this;return u;function u(c){return n.enter("codeIndented"),O(n,i,"linePrefix",5)(c)}function i(c){const p=e.events[e.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?l(c):t(c)}function l(c){return c===null?m(c):C(c)?n.attempt(ie,l,m)(c):(n.enter("codeFlowValue"),a(c))}function a(c){return c===null||C(c)?(n.exit("codeFlowValue"),l(c)):(n.consume(c),a)}function m(c){return n.exit("codeIndented"),r(c)}}function le(n,r,t){const e=this;return u;function u(l){return e.parser.lazy[e.now().line]?t(l):C(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),u):O(n,i,"linePrefix",5)(l)}function i(l){const a=e.events[e.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?r(l):C(l)?u(l):t(l)}}const ae={name:"codeText",tokenize:ce,resolve:oe,previous:se};function oe(n){let r=n.length-4,t=3,e,u;if((n[t][1].type==="lineEnding"||n[t][1].type==="space")&&(n[r][1].type==="lineEnding"||n[r][1].type==="space")){for(e=t;++e=4?r(l):n.interrupt(e.parser.constructs.flow,t,r)(l)}}function at(n,r,t,e,u,i,l,a,m){const c=m||Number.POSITIVE_INFINITY;let p=0;return f;function f(b){return b===60?(n.enter(e),n.enter(u),n.enter(i),n.consume(b),n.exit(i),x):b===null||b===32||b===41||An(b)?t(b):(n.enter(e),n.enter(l),n.enter(a),n.enter("chunkString",{contentType:"string"}),I(b))}function x(b){return b===62?(n.enter(i),n.consume(b),n.exit(i),n.exit(u),n.exit(e),r):(n.enter(a),n.enter("chunkString",{contentType:"string"}),h(b))}function h(b){return b===62?(n.exit("chunkString"),n.exit(a),x(b)):b===null||b===60||C(b)?t(b):(n.consume(b),b===92?A:h)}function A(b){return b===60||b===62||b===92?(n.consume(b),h):h(b)}function I(b){return!p&&(b===null||b===41||Z(b))?(n.exit("chunkString"),n.exit(a),n.exit(l),n.exit(e),r(b)):p999||h===null||h===91||h===93&&!m||h===94&&!a&&"_hiddenFootnoteSupport"in l.parser.constructs?t(h):h===93?(n.exit(i),n.enter(u),n.consume(h),n.exit(u),n.exit(e),r):C(h)?(n.enter("lineEnding"),n.consume(h),n.exit("lineEnding"),p):(n.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||C(h)||a++>999?(n.exit("chunkString"),p(h)):(n.consume(h),m||(m=!z(h)),h===92?x:f)}function x(h){return h===91||h===92||h===93?(n.consume(h),a++,f):f(h)}}function st(n,r,t,e,u,i){let l;return a;function a(x){return x===34||x===39||x===40?(n.enter(e),n.enter(u),n.consume(x),n.exit(u),l=x===40?41:x,m):t(x)}function m(x){return x===l?(n.enter(u),n.consume(x),n.exit(u),n.exit(e),r):(n.enter(i),c(x))}function c(x){return x===l?(n.exit(i),m(l)):x===null?t(x):C(x)?(n.enter("lineEnding"),n.consume(x),n.exit("lineEnding"),O(n,c,"linePrefix")):(n.enter("chunkString",{contentType:"string"}),p(x))}function p(x){return x===l||x===null||C(x)?(n.exit("chunkString"),c(x)):(n.consume(x),x===92?f:p)}function f(x){return x===l||x===92?(n.consume(x),p):p(x)}}function dn(n,r){let t;return e;function e(u){return C(u)?(n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),t=!0,e):z(u)?O(n,e,t?"linePrefix":"lineSuffix")(u):r(u)}}function xn(n){return n.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const ke={name:"definition",tokenize:be},de={tokenize:ye,partial:!0};function be(n,r,t){const e=this;let u;return i;function i(h){return n.enter("definition"),l(h)}function l(h){return ot.call(e,n,a,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function a(h){return u=xn(e.sliceSerialize(e.events[e.events.length-1][1]).slice(1,-1)),h===58?(n.enter("definitionMarker"),n.consume(h),n.exit("definitionMarker"),m):t(h)}function m(h){return Z(h)?dn(n,c)(h):c(h)}function c(h){return at(n,p,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function p(h){return n.attempt(de,f,f)(h)}function f(h){return z(h)?O(n,x,"whitespace")(h):x(h)}function x(h){return h===null||C(h)?(n.exit("definition"),e.parser.defined.push(u),r(h)):t(h)}}function ye(n,r,t){return e;function e(a){return Z(a)?dn(n,u)(a):t(a)}function u(a){return st(n,i,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function i(a){return z(a)?O(n,l,"whitespace")(a):l(a)}function l(a){return a===null||C(a)?r(a):t(a)}}const Se={name:"hardBreakEscape",tokenize:Fe};function Fe(n,r,t){return e;function e(i){return n.enter("hardBreakEscape"),n.consume(i),u}function u(i){return C(i)?(n.exit("hardBreakEscape"),r(i)):t(i)}}const Ee={name:"headingAtx",tokenize:we,resolve:Ce};function Ce(n,r){let t=n.length-2,e=3,u,i;return n[e][1].type==="whitespace"&&(e+=2),t-2>e&&n[t][1].type==="whitespace"&&(t-=2),n[t][1].type==="atxHeadingSequence"&&(e===t-1||t-4>e&&n[t-2][1].type==="whitespace")&&(t-=e+1===t?2:4),t>e&&(u={type:"atxHeadingText",start:n[e][1].start,end:n[t][1].end},i={type:"chunkText",start:n[e][1].start,end:n[t][1].end,contentType:"text"},tn(n,e,t-e+1,[["enter",u,r],["enter",i,r],["exit",i,r],["exit",u,r]])),n}function we(n,r,t){let e=0;return u;function u(p){return n.enter("atxHeading"),i(p)}function i(p){return n.enter("atxHeadingSequence"),l(p)}function l(p){return p===35&&e++<6?(n.consume(p),l):p===null||Z(p)?(n.exit("atxHeadingSequence"),a(p)):t(p)}function a(p){return p===35?(n.enter("atxHeadingSequence"),m(p)):p===null||C(p)?(n.exit("atxHeading"),r(p)):z(p)?O(n,a,"whitespace")(p):(n.enter("atxHeadingText"),c(p))}function m(p){return p===35?(n.consume(p),m):(n.exit("atxHeadingSequence"),a(p))}function c(p){return p===null||p===35||Z(p)?(n.exit("atxHeadingText"),a(p)):(n.consume(p),c)}}const Ae=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Jn=["pre","script","style","textarea"],ze={name:"htmlFlow",tokenize:Le,resolveTo:Be,concrete:!0},Ie={tokenize:De,partial:!0},Te={tokenize:Oe,partial:!0};function Be(n){let r=n.length;for(;r--&&!(n[r][0]==="enter"&&n[r][1].type==="htmlFlow"););return r>1&&n[r-2][1].type==="linePrefix"&&(n[r][1].start=n[r-2][1].start,n[r+1][1].start=n[r-2][1].start,n.splice(r-2,2)),n}function Le(n,r,t){const e=this;let u,i,l,a,m;return c;function c(s){return p(s)}function p(s){return n.enter("htmlFlow"),n.enter("htmlFlowData"),n.consume(s),f}function f(s){return s===33?(n.consume(s),x):s===47?(n.consume(s),i=!0,I):s===63?(n.consume(s),u=3,e.interrupt?r:o):nn(s)?(n.consume(s),l=String.fromCharCode(s),M):t(s)}function x(s){return s===45?(n.consume(s),u=2,h):s===91?(n.consume(s),u=5,a=0,A):nn(s)?(n.consume(s),u=4,e.interrupt?r:o):t(s)}function h(s){return s===45?(n.consume(s),e.interrupt?r:o):t(s)}function A(s){const K="CDATA[";return s===K.charCodeAt(a++)?(n.consume(s),a===K.length?e.interrupt?r:S:A):t(s)}function I(s){return nn(s)?(n.consume(s),l=String.fromCharCode(s),M):t(s)}function M(s){if(s===null||s===47||s===62||Z(s)){const K=s===47,hn=l.toLowerCase();return!K&&!i&&Jn.includes(hn)?(u=1,e.interrupt?r(s):S(s)):Ae.includes(l.toLowerCase())?(u=6,K?(n.consume(s),b):e.interrupt?r(s):S(s)):(u=7,e.interrupt&&!e.parser.lazy[e.now().line]?t(s):i?j(s):F(s))}return s===45||v(s)?(n.consume(s),l+=String.fromCharCode(s),M):t(s)}function b(s){return s===62?(n.consume(s),e.interrupt?r:S):t(s)}function j(s){return z(s)?(n.consume(s),j):V(s)}function F(s){return s===47?(n.consume(s),V):s===58||s===95||nn(s)?(n.consume(s),D):z(s)?(n.consume(s),F):V(s)}function D(s){return s===45||s===46||s===58||s===95||v(s)?(n.consume(s),D):_(s)}function _(s){return s===61?(n.consume(s),k):z(s)?(n.consume(s),_):F(s)}function k(s){return s===null||s===60||s===61||s===62||s===96?t(s):s===34||s===39?(n.consume(s),m=s,T):z(s)?(n.consume(s),k):H(s)}function T(s){return s===m?(n.consume(s),m=null,N):s===null||C(s)?t(s):(n.consume(s),T)}function H(s){return s===null||s===34||s===39||s===47||s===60||s===61||s===62||s===96||Z(s)?_(s):(n.consume(s),H)}function N(s){return s===47||s===62||z(s)?F(s):t(s)}function V(s){return s===62?(n.consume(s),y):t(s)}function y(s){return s===null||C(s)?S(s):z(s)?(n.consume(s),y):t(s)}function S(s){return s===45&&u===2?(n.consume(s),U):s===60&&u===1?(n.consume(s),W):s===62&&u===4?(n.consume(s),J):s===63&&u===3?(n.consume(s),o):s===93&&u===5?(n.consume(s),en):C(s)&&(u===6||u===7)?(n.exit("htmlFlowData"),n.check(Ie,rn,P)(s)):s===null||C(s)?(n.exit("htmlFlowData"),P(s)):(n.consume(s),S)}function P(s){return n.check(Te,R,rn)(s)}function R(s){return n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),w}function w(s){return s===null||C(s)?P(s):(n.enter("htmlFlowData"),S(s))}function U(s){return s===45?(n.consume(s),o):S(s)}function W(s){return s===47?(n.consume(s),l="",G):S(s)}function G(s){if(s===62){const K=l.toLowerCase();return Jn.includes(K)?(n.consume(s),J):S(s)}return nn(s)&&l.length<8?(n.consume(s),l+=String.fromCharCode(s),G):S(s)}function en(s){return s===93?(n.consume(s),o):S(s)}function o(s){return s===62?(n.consume(s),J):s===45&&u===2?(n.consume(s),o):S(s)}function J(s){return s===null||C(s)?(n.exit("htmlFlowData"),rn(s)):(n.consume(s),J)}function rn(s){return n.exit("htmlFlow"),r(s)}}function Oe(n,r,t){const e=this;return u;function u(l){return C(l)?(n.enter("lineEnding"),n.consume(l),n.exit("lineEnding"),i):t(l)}function i(l){return e.parser.lazy[e.now().line]?t(l):r(l)}}function De(n,r,t){return e;function e(u){return n.enter("lineEnding"),n.consume(u),n.exit("lineEnding"),n.attempt(Sn,r,t)}}const Pe={name:"htmlText",tokenize:_e};function _e(n,r,t){const e=this;let u,i,l;return a;function a(o){return n.enter("htmlText"),n.enter("htmlTextData"),n.consume(o),m}function m(o){return o===33?(n.consume(o),c):o===47?(n.consume(o),_):o===63?(n.consume(o),F):nn(o)?(n.consume(o),H):t(o)}function c(o){return o===45?(n.consume(o),p):o===91?(n.consume(o),i=0,A):nn(o)?(n.consume(o),j):t(o)}function p(o){return o===45?(n.consume(o),h):t(o)}function f(o){return o===null?t(o):o===45?(n.consume(o),x):C(o)?(l=f,W(o)):(n.consume(o),f)}function x(o){return o===45?(n.consume(o),h):f(o)}function h(o){return o===62?U(o):o===45?x(o):f(o)}function A(o){const J="CDATA[";return o===J.charCodeAt(i++)?(n.consume(o),i===J.length?I:A):t(o)}function I(o){return o===null?t(o):o===93?(n.consume(o),M):C(o)?(l=I,W(o)):(n.consume(o),I)}function M(o){return o===93?(n.consume(o),b):I(o)}function b(o){return o===62?U(o):o===93?(n.consume(o),b):I(o)}function j(o){return o===null||o===62?U(o):C(o)?(l=j,W(o)):(n.consume(o),j)}function F(o){return o===null?t(o):o===63?(n.consume(o),D):C(o)?(l=F,W(o)):(n.consume(o),F)}function D(o){return o===62?U(o):F(o)}function _(o){return nn(o)?(n.consume(o),k):t(o)}function k(o){return o===45||v(o)?(n.consume(o),k):T(o)}function T(o){return C(o)?(l=T,W(o)):z(o)?(n.consume(o),T):U(o)}function H(o){return o===45||v(o)?(n.consume(o),H):o===47||o===62||Z(o)?N(o):t(o)}function N(o){return o===47?(n.consume(o),U):o===58||o===95||nn(o)?(n.consume(o),V):C(o)?(l=N,W(o)):z(o)?(n.consume(o),N):U(o)}function V(o){return o===45||o===46||o===58||o===95||v(o)?(n.consume(o),V):y(o)}function y(o){return o===61?(n.consume(o),S):C(o)?(l=y,W(o)):z(o)?(n.consume(o),y):N(o)}function S(o){return o===null||o===60||o===61||o===62||o===96?t(o):o===34||o===39?(n.consume(o),u=o,P):C(o)?(l=S,W(o)):z(o)?(n.consume(o),S):(n.consume(o),R)}function P(o){return o===u?(n.consume(o),u=void 0,w):o===null?t(o):C(o)?(l=P,W(o)):(n.consume(o),P)}function R(o){return o===null||o===34||o===39||o===60||o===61||o===96?t(o):o===47||o===62||Z(o)?N(o):(n.consume(o),R)}function w(o){return o===47||o===62||Z(o)?N(o):t(o)}function U(o){return o===62?(n.consume(o),n.exit("htmlTextData"),n.exit("htmlText"),r):t(o)}function W(o){return n.exit("htmlTextData"),n.enter("lineEnding"),n.consume(o),n.exit("lineEnding"),G}function G(o){return z(o)?O(n,en,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):en(o)}function en(o){return n.enter("htmlTextData"),l(o)}}const Dn={name:"labelEnd",tokenize:Ne,resolveTo:He,resolveAll:qe},Me={tokenize:Ve},je={tokenize:We},Re={tokenize:Qe};function qe(n){let r=-1;for(;++r=3&&(c===null||C(c))?(n.exit("thematicBreak"),r(c)):t(c)}function m(c){return c===u?(n.consume(c),e++,m):(n.exit("thematicBreakSequence"),z(c)?O(n,a,"whitespace")(c):a(c))}}const $={name:"list",tokenize:ve,continuation:{tokenize:nr},exit:er},Ke={tokenize:rr,partial:!0},Xe={tokenize:tr,partial:!0};function ve(n,r,t){const e=this,u=e.events[e.events.length-1];let i=u&&u[1].type==="linePrefix"?u[2].sliceSerialize(u[1],!0).length:0,l=0;return a;function a(h){const A=e.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(A==="listUnordered"?!e.containerState.marker||h===e.containerState.marker:zn(h)){if(e.containerState.type||(e.containerState.type=A,n.enter(A,{_container:!0})),A==="listUnordered")return n.enter("listItemPrefix"),h===42||h===45?n.check(bn,t,c)(h):c(h);if(!e.interrupt||h===49)return n.enter("listItemPrefix"),n.enter("listItemValue"),m(h)}return t(h)}function m(h){return zn(h)&&++l<10?(n.consume(h),m):(!e.interrupt||l<2)&&(e.containerState.marker?h===e.containerState.marker:h===41||h===46)?(n.exit("listItemValue"),c(h)):t(h)}function c(h){return n.enter("listItemMarker"),n.consume(h),n.exit("listItemMarker"),e.containerState.marker=e.containerState.marker||h,n.check(Sn,e.interrupt?t:p,n.attempt(Ke,x,f))}function p(h){return e.containerState.initialBlankLine=!0,i++,x(h)}function f(h){return z(h)?(n.enter("listItemPrefixWhitespace"),n.consume(h),n.exit("listItemPrefixWhitespace"),x):t(h)}function x(h){return e.containerState.size=i+e.sliceSerialize(n.exit("listItemPrefix"),!0).length,r(h)}}function nr(n,r,t){const e=this;return e.containerState._closeFlow=void 0,n.check(Sn,u,i);function u(a){return e.containerState.furtherBlankLines=e.containerState.furtherBlankLines||e.containerState.initialBlankLine,O(n,r,"listItemIndent",e.containerState.size+1)(a)}function i(a){return e.containerState.furtherBlankLines||!z(a)?(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,l(a)):(e.containerState.furtherBlankLines=void 0,e.containerState.initialBlankLine=void 0,n.attempt(Xe,r,l)(a))}function l(a){return e.containerState._closeFlow=!0,e.interrupt=void 0,O(n,n.attempt($,r,t),"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function tr(n,r,t){const e=this;return O(n,u,"listItemIndent",e.containerState.size+1);function u(i){const l=e.events[e.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===e.containerState.size?r(i):t(i)}}function er(n){n.exit(this.containerState.type)}function rr(n,r,t){const e=this;return O(n,u,"listItemPrefixWhitespace",e.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function u(i){const l=e.events[e.events.length-1];return!z(i)&&l&&l[1].type==="listItemPrefixWhitespace"?r(i):t(i)}}const Kn={name:"setextUnderline",tokenize:ur,resolveTo:ir};function ir(n,r){let t=n.length,e,u,i;for(;t--;)if(n[t][0]==="enter"){if(n[t][1].type==="content"){e=t;break}n[t][1].type==="paragraph"&&(u=t)}else n[t][1].type==="content"&&n.splice(t,1),!i&&n[t][1].type==="definition"&&(i=t);const l={type:"setextHeading",start:Object.assign({},n[u][1].start),end:Object.assign({},n[n.length-1][1].end)};return n[u][1].type="setextHeadingText",i?(n.splice(u,0,["enter",l,r]),n.splice(i+1,0,["exit",n[e][1],r]),n[e][1].end=Object.assign({},n[i][1].end)):n[e][1]=l,n.push(["exit",l,r]),n}function ur(n,r,t){const e=this;let u;return i;function i(c){let p=e.events.length,f;for(;p--;)if(e.events[p][1].type!=="lineEnding"&&e.events[p][1].type!=="linePrefix"&&e.events[p][1].type!=="content"){f=e.events[p][1].type==="paragraph";break}return!e.parser.lazy[e.now().line]&&(e.interrupt||f)?(n.enter("setextHeadingLine"),u=c,l(c)):t(c)}function l(c){return n.enter("setextHeadingLineSequence"),a(c)}function a(c){return c===u?(n.consume(c),a):(n.exit("setextHeadingLineSequence"),z(c)?O(n,m,"lineSuffix")(c):m(c))}function m(c){return c===null||C(c)?(n.exit("setextHeadingLine"),r(c)):t(c)}}const lr={tokenize:ar};function ar(n){const r=this,t=n.attempt(Sn,e,n.attempt(this.parser.constructs.flowInitial,u,O(n,n.attempt(this.parser.constructs.flow,u,n.attempt(pe,u)),"linePrefix")));return t;function e(i){if(i===null){n.consume(i);return}return n.enter("lineEndingBlank"),n.consume(i),n.exit("lineEndingBlank"),r.currentConstruct=void 0,t}function u(i){if(i===null){n.consume(i);return}return n.enter("lineEnding"),n.consume(i),n.exit("lineEnding"),r.currentConstruct=void 0,t}}const or={resolveAll:ht()},sr=ct("string"),cr=ct("text");function ct(n){return{tokenize:r,resolveAll:ht(n==="text"?hr:void 0)};function r(t){const e=this,u=this.parser.constructs[n],i=t.attempt(u,l,a);return l;function l(p){return c(p)?i(p):a(p)}function a(p){if(p===null){t.consume(p);return}return t.enter("data"),t.consume(p),m}function m(p){return c(p)?(t.exit("data"),i(p)):(t.consume(p),m)}function c(p){if(p===null)return!0;const f=u[p];let x=-1;if(f)for(;++x-1){const a=l[0];typeof a=="string"?l[0]=a.slice(e):l.shift()}i>0&&l.push(n[u].slice(0,i))}return l}function mr(n,r){let t=-1;const e=[];let u;for(;++t13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"�":String.fromCharCode(t)}const Ir=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Tr(n){return n.replace(Ir,Br)}function Br(n,r,t){if(r)return r;if(t.charCodeAt(0)===35){const u=t.charCodeAt(1),i=u===120||u===88;return pt(t.slice(i?2:1),i?16:10)}return On(t)||n}function yn(n){return!n||typeof n!="object"?"":"position"in n||"type"in n?vn(n.position):"start"in n||"end"in n?vn(n):"line"in n||"column"in n?Tn(n):""}function Tn(n){return nt(n&&n.line)+":"+nt(n&&n.column)}function vn(n){return Tn(n&&n.start)+"-"+Tn(n&&n.end)}function nt(n){return n&&typeof n=="number"?n:1}const ft={}.hasOwnProperty,mt=function(n,r,t){return typeof r!="string"&&(t=r,r=void 0),Lr(t)(zr(wr(t).document().write(Ar()(n,r,!0))))};function Lr(n){const r={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:a(Hn),autolinkProtocol:y,autolinkEmail:y,atxHeading:a(jn),blockQuote:a(Fn),characterEscape:y,characterReference:y,codeFenced:a(Mn),codeFencedFenceInfo:m,codeFencedFenceMeta:m,codeIndented:a(Mn,m),codeText:a(kt,m),codeTextData:y,data:y,codeFlowValue:y,definition:a(dt),definitionDestinationString:m,definitionLabelString:m,definitionTitleString:m,emphasis:a(bt),hardBreakEscape:a(Rn),hardBreakTrailing:a(Rn),htmlFlow:a(qn,m),htmlFlowData:y,htmlText:a(qn,m),htmlTextData:y,image:a(yt),label:m,link:a(Hn),listItem:a(St),listItemValue:A,listOrdered:a(Nn,h),listUnordered:a(Nn),paragraph:a(Ft),reference:hn,referenceString:m,resourceDestinationString:m,resourceTitleString:m,setextHeading:a(jn),strong:a(Et),thematicBreak:a(wt)},exit:{atxHeading:p(),atxHeadingSequence:T,autolink:p(),autolinkEmail:mn,autolinkProtocol:fn,blockQuote:p(),characterEscapeValue:S,characterReferenceMarkerHexadecimal:pn,characterReferenceMarkerNumeric:pn,characterReferenceValue:an,codeFenced:p(j),codeFencedFence:b,codeFencedFenceInfo:I,codeFencedFenceMeta:M,codeFlowValue:S,codeIndented:p(F),codeText:p(W),codeTextData:S,data:S,definition:p(),definitionDestinationString:k,definitionLabelString:D,definitionTitleString:_,emphasis:p(),hardBreakEscape:p(R),hardBreakTrailing:p(R),htmlFlow:p(w),htmlFlowData:S,htmlText:p(U),htmlTextData:S,image:p(en),label:J,labelText:o,lineEnding:P,link:p(G),listItem:p(),listOrdered:p(),listUnordered:p(),paragraph:p(),referenceString:Q,resourceDestinationString:rn,resourceTitleString:s,resource:K,setextHeading:p(V),setextHeadingLineSequence:N,setextHeadingText:H,strong:p(),thematicBreak:p()}};xt(r,(n||{}).mdastExtensions||[]);const t={};return e;function e(g){let d={type:"root",children:[]};const E={stack:[d],tokenStack:[],config:r,enter:c,exit:f,buffer:m,resume:x,setData:i,getData:l},B=[];let L=-1;for(;++L0){const X=E.tokenStack[E.tokenStack.length-1];(X[1]||tt).call(E,void 0,X[0])}for(d.position={start:sn(g.length>0?g[0][1].start:{line:1,column:1,offset:0}),end:sn(g.length>0?g[g.length-2][1].end:{line:1,column:1,offset:0})},L=-1;++LThis article is for people who want to:

  • Create brokers dynamically.
  • Register tasks, and run them inside their code.
  • Implement more complex logic.

Taskiq allows you to set up broker instances throughout your application and register tasks for dynamic execution. However, tasks created this way won't be found by the taskiq worker command.

To define tasks and assign them to a broker, use register_task method.

import asyncio
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as a,a as e}from"./app-B7rxM88G.js";const t={},o=e(`

This article is for people who want to:

  • Create brokers dynamically.
  • Register tasks, and run them inside their code.
  • Implement more complex logic.

Taskiq allows you to set up broker instances throughout your application and register tasks for dynamic execution. However, tasks created this way won't be found by the taskiq worker command.

To define tasks and assign them to a broker, use register_task method.

import asyncio
 
 from taskiq_redis import ListQueueBroker
 
@@ -117,4 +117,4 @@ import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as a,
 
 if __name__ == "__main__":
     asyncio.run(main())
-
`,13),p=[o];function i(c,l){return s(),a("div",null,p)}const d=n(t,[["render",i],["__file","dynamic-brokers.html.vue"]]),k=JSON.parse(`{"path":"/guide/dynamic-brokers.html","title":"Dynamic Environments","lang":"en-US","frontmatter":{"title":"Dynamic Environments","order":9,"description":"This article is for people who want to: Create brokers dynamically. Register tasks, and run them inside their code. Implement more complex logic. Taskiq allows you to set up bro...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/dynamic-brokers.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Dynamic Environments"}],["meta",{"property":"og:description","content":"This article is for people who want to: Create brokers dynamically. Register tasks, and run them inside their code. Implement more complex logic. Taskiq allows you to set up bro..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Dynamic Environments\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/dynamic-brokers.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"

This article is for people who want to:

\\n
    \\n
  • Create brokers dynamically.
  • \\n
  • Register tasks, and run them inside their code.
  • \\n
  • Implement more complex logic.
  • \\n
\\n

Taskiq allows you to set up broker instances throughout your application and register tasks for dynamic execution. However, tasks created this way won't be found by the taskiq worker command.

"}`);export{d as comp,k as data}; +
`,13),p=[o];function i(c,l){return s(),a("div",null,p)}const d=n(t,[["render",i],["__file","dynamic-brokers.html.vue"]]),k=JSON.parse(`{"path":"/guide/dynamic-brokers.html","title":"Dynamic Environments","lang":"en-US","frontmatter":{"title":"Dynamic Environments","order":9,"description":"This article is for people who want to: Create brokers dynamically. Register tasks, and run them inside their code. Implement more complex logic. Taskiq allows you to set up bro...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/dynamic-brokers.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Dynamic Environments"}],["meta",{"property":"og:description","content":"This article is for people who want to: Create brokers dynamically. Register tasks, and run them inside their code. Implement more complex logic. Taskiq allows you to set up bro..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Dynamic Environments\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/dynamic-brokers.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"

This article is for people who want to:

\\n
    \\n
  • Create brokers dynamically.
  • \\n
  • Register tasks, and run them inside their code.
  • \\n
  • Implement more complex logic.
  • \\n
\\n

Taskiq allows you to set up broker instances throughout your application and register tasks for dynamic execution. However, tasks created this way won't be found by the taskiq worker command.

"}`);export{d as comp,k as data}; diff --git a/assets/edges-066a5561-31kAkIJ0.js b/assets/edges-066a5561-Cesv2_yT.js similarity index 99% rename from assets/edges-066a5561-31kAkIJ0.js rename to assets/edges-066a5561-Cesv2_yT.js index 104af9a..00c4393 100644 --- a/assets/edges-066a5561-31kAkIJ0.js +++ b/assets/edges-066a5561-Cesv2_yT.js @@ -1,4 +1,4 @@ -import{q as H,c as b,d as V,an as q,h as E,l as g,z as j,ao as lt}from"./mermaid.core-Cio1iadR.js";import{c as st}from"./createText-ca0c5216-BYApgeQh.js";import{l as ct}from"./line-DOPC82El.js";const ht=(e,t,a,i)=>{t.forEach(l=>{wt[l](e,a,i)})},ot=(e,t,a)=>{g.trace("Making markers for ",a),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},yt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},pt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},ft=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},xt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},dt=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},gt=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},ut=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},bt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},wt={extension:ot,composition:yt,aggregation:pt,dependency:ft,lollipop:xt,point:dt,circle:gt,cross:ut,barb:bt},hr=ht;function mt(e,t){t&&e.attr("style",t)}function kt(e){const t=E(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),a=t.append("xhtml:div"),i=e.label,l=e.isNode?"nodeLabel":"edgeLabel";return a.html('"+i+""),mt(a,e.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap"),a.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}const vt=(e,t,a,i)=>{let l=e||"";if(typeof l=="object"&&(l=l[0]),H(b().flowchart.htmlLabels)){l=l.replace(/\\n|\n/g,"
"),g.debug("vertexText"+l);const r={isNode:i,label:q(l).replace(/fa[blrs]?:fa-[\w-]+/g,n=>``),labelStyle:t.replace("fill:","color:")};return kt(r)}else{const r=document.createElementNS("http://www.w3.org/2000/svg","text");r.setAttribute("style",t.replace("color:","fill:"));let s=[];typeof l=="string"?s=l.split(/\\n|\n|/gi):Array.isArray(l)?s=l:s=[];for(const n of s){const c=document.createElementNS("http://www.w3.org/2000/svg","tspan");c.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),c.setAttribute("dy","1em"),c.setAttribute("x","0"),a?c.setAttribute("class","title-row"):c.setAttribute("class","row"),c.textContent=n.trim(),r.appendChild(c)}return r}},R=vt,M=async(e,t,a,i)=>{let l;const r=t.useHtmlLabels||H(b().flowchart.htmlLabels);a?l=a:l="node default";const s=e.insert("g").attr("class",l).attr("id",t.domId||t.id),n=s.insert("g").attr("class","label").attr("style",t.labelStyle);let c;t.labelText===void 0?c="":c=typeof t.labelText=="string"?t.labelText:t.labelText[0];const o=n.node();let h;t.labelType==="markdown"?h=st(n,V(q(c),b()),{useHtmlLabels:r,width:t.width||b().flowchart.wrappingWidth,classes:"markdown-node-label"}):h=o.appendChild(R(V(q(c),b()),t.labelStyle,!1,i));let y=h.getBBox();const f=t.padding/2;if(H(b().flowchart.htmlLabels)){const p=h.children[0],d=E(h),k=p.getElementsByTagName("img");if(k){const x=c.replace(/]*>/g,"").trim()==="";await Promise.all([...k].map(u=>new Promise(S=>{function B(){if(u.style.display="flex",u.style.flexDirection="column",x){const C=b().fontSize?b().fontSize:window.getComputedStyle(document.body).fontSize,D=parseInt(C,10)*5+"px";u.style.minWidth=D,u.style.maxWidth=D}else u.style.width="100%";S(u)}setTimeout(()=>{u.complete&&B()}),u.addEventListener("error",B),u.addEventListener("load",B)})))}y=p.getBoundingClientRect(),d.attr("width",y.width),d.attr("height",y.height)}return r?n.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"):n.attr("transform","translate(0, "+-y.height/2+")"),t.centerLabel&&n.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),n.insert("rect",":first-child"),{shapeSvg:s,bbox:y,halfPadding:f,label:n}},m=(e,t)=>{const a=t.node().getBBox();e.width=a.width,e.height=a.height};function I(e,t,a,i){return e.insert("polygon",":first-child").attr("points",i.map(function(l){return l.x+","+l.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+a/2+")")}function Lt(e,t){return e.intersect(t)}function it(e,t,a,i){var l=e.x,r=e.y,s=l-i.x,n=r-i.y,c=Math.sqrt(t*t*n*n+a*a*s*s),o=Math.abs(t*a*s/c);i.x0}function Tt(e,t,a){var i=e.x,l=e.y,r=[],s=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(d){s=Math.min(s,d.x),n=Math.min(n,d.y)}):(s=Math.min(s,t.x),n=Math.min(n,t.y));for(var c=i-e.width/2-s,o=l-e.height/2-n,h=0;h1&&r.sort(function(d,k){var x=d.x-a.x,u=d.y-a.y,S=Math.sqrt(x*x+u*u),B=k.x-a.x,C=k.y-a.y,X=Math.sqrt(B*B+C*C);return S{var a=e.x,i=e.y,l=t.x-a,r=t.y-i,s=e.width/2,n=e.height/2,c,o;return Math.abs(r)*s>Math.abs(l)*n?(r<0&&(n=-n),c=r===0?0:n*l/r,o=n):(l<0&&(s=-s),c=s,o=l===0?0:s*r/l),{x:a+c,y:i+o}},Et=Bt,w={node:Lt,circle:St,ellipse:it,polygon:Tt,rect:Et},Ct=async(e,t)=>{t.useHtmlLabels||b().flowchart.htmlLabels||(t.centerLabel=!0);const{shapeSvg:i,bbox:l,halfPadding:r}=await M(e,t,"node "+t.classes,!0);g.info("Classes = ",t.classes);const s=i.insert("rect",":first-child");return s.attr("rx",t.rx).attr("ry",t.ry).attr("x",-l.width/2-r).attr("y",-l.height/2-r).attr("width",l.width+t.padding).attr("height",l.height+t.padding),m(t,s),t.intersect=function(n){return w.rect(t,n)},i},$t=Ct,_t=e=>{const t=new Set;for(const a of e)switch(a){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(a);break}return t},Rt=(e,t,a)=>{const i=_t(e),l=2,r=t.height+2*a.padding,s=r/l,n=t.width+2*s+a.padding,c=a.padding/2;return i.has("right")&&i.has("left")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:s,y:0},{x:n/2,y:2*c},{x:n-s,y:0},{x:n,y:0},{x:n,y:-r/3},{x:n+2*c,y:-r/2},{x:n,y:-2*r/3},{x:n,y:-r},{x:n-s,y:-r},{x:n/2,y:-r-2*c},{x:s,y:-r},{x:0,y:-r},{x:0,y:-2*r/3},{x:-2*c,y:-r/2},{x:0,y:-r/3}]:i.has("right")&&i.has("left")&&i.has("up")?[{x:s,y:0},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:s,y:-r},{x:0,y:-r/2}]:i.has("right")&&i.has("left")&&i.has("down")?[{x:0,y:0},{x:s,y:-r},{x:n-s,y:-r},{x:n,y:0}]:i.has("right")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:n,y:-s},{x:n,y:-r+s},{x:0,y:-r}]:i.has("left")&&i.has("up")&&i.has("down")?[{x:n,y:0},{x:0,y:-s},{x:0,y:-r+s},{x:n,y:-r}]:i.has("right")&&i.has("left")?[{x:s,y:0},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r},{x:0,y:-r/2}]:i.has("up")&&i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:s,y:-c},{x:s,y:-r+c},{x:0,y:-r+c},{x:n/2,y:-r},{x:n,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c},{x:n,y:-c}]:i.has("right")&&i.has("up")?[{x:0,y:0},{x:n,y:-s},{x:0,y:-r}]:i.has("right")&&i.has("down")?[{x:0,y:0},{x:n,y:0},{x:0,y:-r}]:i.has("left")&&i.has("up")?[{x:n,y:0},{x:0,y:-s},{x:n,y:-r}]:i.has("left")&&i.has("down")?[{x:n,y:0},{x:0,y:0},{x:n,y:-r}]:i.has("right")?[{x:s,y:-c},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r+c}]:i.has("left")?[{x:s,y:0},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r},{x:0,y:-r/2}]:i.has("up")?[{x:s,y:-c},{x:s,y:-r+c},{x:0,y:-r+c},{x:n/2,y:-r},{x:n,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c}]:i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:s,y:-c},{x:s,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c},{x:n,y:-c}]:[{x:0,y:0}]},K=e=>e?" "+e:"",_=(e,t)=>`node default${K(e.classes)} ${K(e.class)}`,P=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=l+r,n=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];g.info("Question main (Circle)");const c=I(a,s,s,n);return c.attr("style",t.style),m(t,c),t.intersect=function(o){return g.warn("Intersect called"),w.polygon(t,n,o)},a},Ht=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=28,l=[{x:0,y:i/2},{x:i/2,y:0},{x:0,y:-i/2},{x:-i/2,y:0}];return a.insert("polygon",":first-child").attr("points",l.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(s){return w.circle(t,14,s)},a},It=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=4,r=i.height+t.padding,s=r/l,n=i.width+2*s+t.padding,c=[{x:s,y:0},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:s,y:-r},{x:0,y:-r/2}],o=I(a,n,r,c);return o.attr("style",t.style),m(t,o),t.intersect=function(h){return w.polygon(t,c,h)},a},Nt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,void 0,!0),l=2,r=i.height+2*t.padding,s=r/l,n=i.width+2*s+t.padding,c=Rt(t.directions,i,t),o=I(a,n,r,c);return o.attr("style",t.style),m(t,o),t.intersect=function(h){return w.polygon(t,c,h)},a},Ot=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-r/2,y:0},{x:l,y:0},{x:l,y:-r},{x:-r/2,y:-r},{x:0,y:-r/2}];return I(a,l,r,s).attr("style",t.style),t.width=l+r,t.height=r,t.intersect=function(c){return w.polygon(t,s,c)},a},Wt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-2*r/6,y:0},{x:l-r/6,y:0},{x:l+2*r/6,y:-r},{x:r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Xt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:2*r/6,y:0},{x:l+r/6,y:0},{x:l-2*r/6,y:-r},{x:-r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Yt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-2*r/6,y:0},{x:l+2*r/6,y:0},{x:l-r/6,y:-r},{x:r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Dt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:r/6,y:0},{x:l-r/6,y:0},{x:l+2*r/6,y:-r},{x:-2*r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},At=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:0,y:0},{x:l+r/2,y:0},{x:l,y:-r/2},{x:l+r/2,y:-r},{x:0,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},jt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=l/2,s=r/(2.5+l/50),n=i.height+s+t.padding,c="M 0,"+s+" a "+r+","+s+" 0,0,0 "+l+" 0 a "+r+","+s+" 0,0,0 "+-l+" 0 l 0,"+n+" a "+r+","+s+" 0,0,0 "+l+" 0 l 0,"+-n,o=a.attr("label-offset-y",s).insert("path",":first-child").attr("style",t.style).attr("d",c).attr("transform","translate("+-l/2+","+-(n/2+s)+")");return m(t,o),t.intersect=function(h){const y=w.rect(t,h),f=y.x-t.x;if(r!=0&&(Math.abs(f)t.height/2-s)){let p=s*s*(1-f*f/(r*r));p!=0&&(p=Math.sqrt(p)),p=s-p,h.y-t.y>0&&(p=-p),y.y+=p}return y},a},Ut=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,"node "+t.classes+" "+t.class,!0),r=a.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-s/2:-i.width/2-l,o=t.positioned?-n/2:-i.height/2-l;if(r.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",o).attr("width",s).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(Q(r,t.props.borders,s,n),h.delete("borders")),h.forEach(y=>{g.warn(`Unknown node property ${y}`)})}return m(t,r),t.intersect=function(h){return w.rect(t,h)},a},zt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,"node "+t.classes,!0),r=a.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-s/2:-i.width/2-l,o=t.positioned?-n/2:-i.height/2-l;if(r.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",o).attr("width",s).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(Q(r,t.props.borders,s,n),h.delete("borders")),h.forEach(y=>{g.warn(`Unknown node property ${y}`)})}return m(t,r),t.intersect=function(h){return w.rect(t,h)},a},Zt=async(e,t)=>{const{shapeSvg:a}=await M(e,t,"label",!0);g.trace("Classes = ",t.class);const i=a.insert("rect",":first-child"),l=0,r=0;if(i.attr("width",l).attr("height",r),a.attr("class","label edgeLabel"),t.props){const s=new Set(Object.keys(t.props));t.props.borders&&(Q(i,t.props.borders,l,r),s.delete("borders")),s.forEach(n=>{g.warn(`Unknown node property ${n}`)})}return m(t,i),t.intersect=function(s){return w.rect(t,s)},a};function Q(e,t,a,i){const l=[],r=n=>{l.push(n,0)},s=n=>{l.push(0,n)};t.includes("t")?(g.debug("add top border"),r(a)):s(a),t.includes("r")?(g.debug("add right border"),r(i)):s(i),t.includes("b")?(g.debug("add bottom border"),r(a)):s(a),t.includes("l")?(g.debug("add left border"),r(i)):s(i),e.attr("stroke-dasharray",l.join(" "))}const Gt=(e,t)=>{let a;t.classes?a="node "+t.classes:a="node default";const i=e.insert("g").attr("class",a).attr("id",t.domId||t.id),l=i.insert("rect",":first-child"),r=i.insert("line"),s=i.insert("g").attr("class","label"),n=t.labelText.flat?t.labelText.flat():t.labelText;let c="";typeof n=="object"?c=n[0]:c=n,g.info("Label text abc79",c,n,typeof n=="object");const o=s.node().appendChild(R(c,t.labelStyle,!0,!0));let h={width:0,height:0};if(H(b().flowchart.htmlLabels)){const k=o.children[0],x=E(o);h=k.getBoundingClientRect(),x.attr("width",h.width),x.attr("height",h.height)}g.info("Text 2",n);const y=n.slice(1,n.length);let f=o.getBBox();const p=s.node().appendChild(R(y.join?y.join("
"):y,t.labelStyle,!0,!0));if(H(b().flowchart.htmlLabels)){const k=p.children[0],x=E(p);h=k.getBoundingClientRect(),x.attr("width",h.width),x.attr("height",h.height)}const d=t.padding/2;return E(p).attr("transform","translate( "+(h.width>f.width?0:(f.width-h.width)/2)+", "+(f.height+d+5)+")"),E(o).attr("transform","translate( "+(h.width{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.height+t.padding,r=i.width+l/4+t.padding,s=a.insert("rect",":first-child").attr("style",t.style).attr("rx",l/2).attr("ry",l/2).attr("x",-r/2).attr("y",-l/2).attr("width",r).attr("height",l);return m(t,s),t.intersect=function(n){return w.rect(t,n)},a},qt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,_(t),!0),r=a.insert("circle",":first-child");return r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),g.info("Circle main"),m(t,r),t.intersect=function(s){return g.info("Circle intersect",t,i.width/2+l,s),w.circle(t,i.width/2+l,s)},a},Qt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,_(t),!0),r=5,s=a.insert("g",":first-child"),n=s.insert("circle"),c=s.insert("circle");return s.attr("class",t.class),n.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l+r).attr("width",i.width+t.padding+r*2).attr("height",i.height+t.padding+r*2),c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),g.info("DoubleCircle main"),m(t,n),t.intersect=function(o){return g.info("DoubleCircle intersect",t,i.width/2+l+r,o),w.circle(t,i.width/2+l+r,o)},a},Vt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:0,y:0},{x:l,y:0},{x:l,y:-r},{x:0,y:-r},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-r},{x:-8,y:-r},{x:-8,y:0}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Jt=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),m(t,i),t.intersect=function(l){return w.circle(t,7,l)},a},tt=(e,t,a)=>{const i=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let l=70,r=10;a==="LR"&&(l=10,r=70);const s=i.append("rect").attr("x",-1*l/2).attr("y",-1*r/2).attr("width",l).attr("height",r).attr("class","fork-join");return m(t,s),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(n){return w.rect(t,n)},i},Kt=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child"),l=a.insert("circle",":first-child");return l.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),m(t,l),t.intersect=function(r){return w.circle(t,7,r)},a},Pt=(e,t)=>{const a=t.padding/2,i=4,l=8;let r;t.classes?r="node "+t.classes:r="node default";const s=e.insert("g").attr("class",r).attr("id",t.domId||t.id),n=s.insert("rect",":first-child"),c=s.insert("line"),o=s.insert("line");let h=0,y=i;const f=s.insert("g").attr("class","label");let p=0;const d=t.classData.annotations&&t.classData.annotations[0],k=t.classData.annotations[0]?"«"+t.classData.annotations[0]+"»":"",x=f.node().appendChild(R(k,t.labelStyle,!0,!0));let u=x.getBBox();if(H(b().flowchart.htmlLabels)){const v=x.children[0],L=E(x);u=v.getBoundingClientRect(),L.attr("width",u.width),L.attr("height",u.height)}t.classData.annotations[0]&&(y+=u.height+i,h+=u.width);let S=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(b().flowchart.htmlLabels?S+="<"+t.classData.type+">":S+="<"+t.classData.type+">");const B=f.node().appendChild(R(S,t.labelStyle,!0,!0));E(B).attr("class","classTitle");let C=B.getBBox();if(H(b().flowchart.htmlLabels)){const v=B.children[0],L=E(B);C=v.getBoundingClientRect(),L.attr("width",C.width),L.attr("height",C.height)}y+=C.height+i,C.width>h&&(h=C.width);const X=[];t.classData.members.forEach(v=>{const L=v.getDisplayDetails();let W=L.displayText;b().flowchart.htmlLabels&&(W=W.replace(//g,">"));const N=f.node().appendChild(R(W,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0));let $=N.getBBox();if(H(b().flowchart.htmlLabels)){const F=N.children[0],A=E(N);$=F.getBoundingClientRect(),A.attr("width",$.width),A.attr("height",$.height)}$.width>h&&(h=$.width),y+=$.height+i,X.push(N)}),y+=l;const D=[];if(t.classData.methods.forEach(v=>{const L=v.getDisplayDetails();let W=L.displayText;b().flowchart.htmlLabels&&(W=W.replace(//g,">"));const N=f.node().appendChild(R(W,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0));let $=N.getBBox();if(H(b().flowchart.htmlLabels)){const F=N.children[0],A=E(N);$=F.getBoundingClientRect(),A.attr("width",$.width),A.attr("height",$.height)}$.width>h&&(h=$.width),y+=$.height+i,D.push(N)}),y+=l,d){let v=(h-u.width)/2;E(x).attr("transform","translate( "+(-1*h/2+v)+", "+-1*y/2+")"),p=u.height+i}let nt=(h-C.width)/2;return E(B).attr("transform","translate( "+(-1*h/2+nt)+", "+(-1*y/2+p)+")"),p+=C.height+i,c.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+p).attr("y2",-y/2-a+l+p),p+=l,X.forEach(v=>{E(v).attr("transform","translate( "+-h/2+", "+(-1*y/2+p+l/2)+")");const L=v==null?void 0:v.getBBox();p+=((L==null?void 0:L.height)??0)+i}),p+=l,o.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+p).attr("y2",-y/2-a+l+p),p+=l,D.forEach(v=>{E(v).attr("transform","translate( "+-h/2+", "+(-1*y/2+p)+")");const L=v==null?void 0:v.getBBox();p+=((L==null?void 0:L.height)??0)+i}),n.attr("style",t.style).attr("class","outer title-state").attr("x",-h/2-a).attr("y",-(y/2)-a).attr("width",h+t.padding).attr("height",y+t.padding),m(t,n),t.intersect=function(v){return w.rect(t,v)},s},rt={rhombus:P,composite:zt,question:P,rect:Ut,labelRect:Zt,rectWithTitle:Gt,choice:Ht,circle:qt,doublecircle:Qt,stadium:Ft,hexagon:It,block_arrow:Nt,rect_left_inv_arrow:Ot,lean_right:Wt,lean_left:Xt,trapezoid:Yt,inv_trapezoid:Dt,rect_right_inv_arrow:At,cylinder:jt,start:Jt,end:Kt,note:$t,subroutine:Vt,fork:tt,join:tt,class_box:Pt};let Y={};const or=async(e,t,a)=>{let i,l;if(t.link){let r;b().securityLevel==="sandbox"?r="_top":t.linkTarget&&(r=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",r),l=await rt[t.shape](i,t,a)}else l=await rt[t.shape](e,t,a),i=l;return t.tooltip&&l.attr("title",t.tooltip),t.class&&l.attr("class","node default "+t.class),i.attr("data-node","true"),i.attr("data-id",t.id),Y[t.id]=i,t.haveCallback&&Y[t.id].attr("class",Y[t.id].attr("class")+" clickable"),i},yr=(e,t)=>{Y[t.id]=e},pr=()=>{Y={}},fr=e=>{const t=Y[e.id];g.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const a=8,i=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+i-e.width/2)+", "+(e.y-e.height/2-a)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),i},tr=({flowchart:e})=>{var t,a;const i=((t=e==null?void 0:e.subGraphTitleMargin)==null?void 0:t.top)??0,l=((a=e==null?void 0:e.subGraphTitleMargin)==null?void 0:a.bottom)??0,r=i+l;return{subGraphTitleTopMargin:i,subGraphTitleBottomMargin:l,subGraphTitleTotalMargin:r}},O={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function U(e,t){if(e===void 0||t===void 0)return{angle:0,deltaX:0,deltaY:0};e=Z(e),t=Z(t);const[a,i]=[e.x,e.y],[l,r]=[t.x,t.y],s=l-a,n=r-i;return{angle:Math.atan(n/s),deltaX:s,deltaY:n}}const Z=e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,rr=e=>({x:function(t,a,i){let l=0;if(a===0&&Object.hasOwn(O,e.arrowTypeStart)){const{angle:r,deltaX:s}=U(i[0],i[1]);l=O[e.arrowTypeStart]*Math.cos(r)*(s>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){const{angle:r,deltaX:s}=U(i[i.length-1],i[i.length-2]);l=O[e.arrowTypeEnd]*Math.cos(r)*(s>=0?1:-1)}return Z(t).x+l},y:function(t,a,i){let l=0;if(a===0&&Object.hasOwn(O,e.arrowTypeStart)){const{angle:r,deltaY:s}=U(i[0],i[1]);l=O[e.arrowTypeStart]*Math.abs(Math.sin(r))*(s>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){const{angle:r,deltaY:s}=U(i[i.length-1],i[i.length-2]);l=O[e.arrowTypeEnd]*Math.abs(Math.sin(r))*(s>=0?1:-1)}return Z(t).y+l}}),ar=(e,t,a,i,l)=>{t.arrowTypeStart&&at(e,"start",t.arrowTypeStart,a,i,l),t.arrowTypeEnd&&at(e,"end",t.arrowTypeEnd,a,i,l)},er={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},at=(e,t,a,i,l,r)=>{const s=er[a];if(!s){g.warn(`Unknown arrow type: ${a}`);return}const n=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${i}#${l}_${r}-${s}${n})`)};let G={},T={};const xr=()=>{G={},T={}},dr=(e,t)=>{const a=H(b().flowchart.htmlLabels),i=t.labelType==="markdown"?st(e,t.label,{style:t.labelStyle,useHtmlLabels:a,addSvgBackground:!0}):R(t.label,t.labelStyle),l=e.insert("g").attr("class","edgeLabel"),r=l.insert("g").attr("class","label");r.node().appendChild(i);let s=i.getBBox();if(a){const c=i.children[0],o=E(i);s=c.getBoundingClientRect(),o.attr("width",s.width),o.attr("height",s.height)}r.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),G[t.id]=l,t.width=s.width,t.height=s.height;let n;if(t.startLabelLeft){const c=R(t.startLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),T[t.id]||(T[t.id]={}),T[t.id].startLeft=o,z(n,t.startLabelLeft)}if(t.startLabelRight){const c=R(t.startLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=o.node().appendChild(c),h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),T[t.id]||(T[t.id]={}),T[t.id].startRight=o,z(n,t.startLabelRight)}if(t.endLabelLeft){const c=R(t.endLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),o.node().appendChild(c),T[t.id]||(T[t.id]={}),T[t.id].endLeft=o,z(n,t.endLabelLeft)}if(t.endLabelRight){const c=R(t.endLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),o.node().appendChild(c),T[t.id]||(T[t.id]={}),T[t.id].endRight=o,z(n,t.endLabelRight)}return i};function z(e,t){b().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}const gr=(e,t)=>{g.debug("Moving label abc88 ",e.id,e.label,G[e.id],t);let a=t.updatedPath?t.updatedPath:t.originalPath;const i=b(),{subGraphTitleTotalMargin:l}=tr(i);if(e.label){const r=G[e.id];let s=e.x,n=e.y;if(a){const c=j.calcLabelPosition(a);g.debug("Moving label "+e.label+" from (",s,",",n,") to (",c.x,",",c.y,") abc88"),t.updatedPath&&(s=c.x,n=c.y)}r.attr("transform",`translate(${s}, ${n+l/2})`)}if(e.startLabelLeft){const r=T[e.id].startLeft;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.startLabelRight){const r=T[e.id].startRight;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.endLabelLeft){const r=T[e.id].endLeft;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.endLabelRight){const r=T[e.id].endRight;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}},sr=(e,t)=>{const a=e.x,i=e.y,l=Math.abs(t.x-a),r=Math.abs(t.y-i),s=e.width/2,n=e.height/2;return l>=s||r>=n},ir=(e,t,a)=>{g.debug(`intersection calc abc89: +import{q as H,c as b,d as V,an as q,h as E,l as g,z as j,ao as lt}from"./mermaid.core-D8sVPjx9.js";import{c as st}from"./createText-ca0c5216-zqCXB1ps.js";import{l as ct}from"./line-Dh5t0evl.js";const ht=(e,t,a,i)=>{t.forEach(l=>{wt[l](e,a,i)})},ot=(e,t,a)=>{g.trace("Making markers for ",a),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},yt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},pt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},ft=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},xt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)},dt=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},gt=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},ut=(e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",a+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},bt=(e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},wt={extension:ot,composition:yt,aggregation:pt,dependency:ft,lollipop:xt,point:dt,circle:gt,cross:ut,barb:bt},hr=ht;function mt(e,t){t&&e.attr("style",t)}function kt(e){const t=E(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),a=t.append("xhtml:div"),i=e.label,l=e.isNode?"nodeLabel":"edgeLabel";return a.html('"+i+""),mt(a,e.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap"),a.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}const vt=(e,t,a,i)=>{let l=e||"";if(typeof l=="object"&&(l=l[0]),H(b().flowchart.htmlLabels)){l=l.replace(/\\n|\n/g,"
"),g.debug("vertexText"+l);const r={isNode:i,label:q(l).replace(/fa[blrs]?:fa-[\w-]+/g,n=>``),labelStyle:t.replace("fill:","color:")};return kt(r)}else{const r=document.createElementNS("http://www.w3.org/2000/svg","text");r.setAttribute("style",t.replace("color:","fill:"));let s=[];typeof l=="string"?s=l.split(/\\n|\n|/gi):Array.isArray(l)?s=l:s=[];for(const n of s){const c=document.createElementNS("http://www.w3.org/2000/svg","tspan");c.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),c.setAttribute("dy","1em"),c.setAttribute("x","0"),a?c.setAttribute("class","title-row"):c.setAttribute("class","row"),c.textContent=n.trim(),r.appendChild(c)}return r}},R=vt,M=async(e,t,a,i)=>{let l;const r=t.useHtmlLabels||H(b().flowchart.htmlLabels);a?l=a:l="node default";const s=e.insert("g").attr("class",l).attr("id",t.domId||t.id),n=s.insert("g").attr("class","label").attr("style",t.labelStyle);let c;t.labelText===void 0?c="":c=typeof t.labelText=="string"?t.labelText:t.labelText[0];const o=n.node();let h;t.labelType==="markdown"?h=st(n,V(q(c),b()),{useHtmlLabels:r,width:t.width||b().flowchart.wrappingWidth,classes:"markdown-node-label"}):h=o.appendChild(R(V(q(c),b()),t.labelStyle,!1,i));let y=h.getBBox();const f=t.padding/2;if(H(b().flowchart.htmlLabels)){const p=h.children[0],d=E(h),k=p.getElementsByTagName("img");if(k){const x=c.replace(/]*>/g,"").trim()==="";await Promise.all([...k].map(u=>new Promise(S=>{function B(){if(u.style.display="flex",u.style.flexDirection="column",x){const C=b().fontSize?b().fontSize:window.getComputedStyle(document.body).fontSize,D=parseInt(C,10)*5+"px";u.style.minWidth=D,u.style.maxWidth=D}else u.style.width="100%";S(u)}setTimeout(()=>{u.complete&&B()}),u.addEventListener("error",B),u.addEventListener("load",B)})))}y=p.getBoundingClientRect(),d.attr("width",y.width),d.attr("height",y.height)}return r?n.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"):n.attr("transform","translate(0, "+-y.height/2+")"),t.centerLabel&&n.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),n.insert("rect",":first-child"),{shapeSvg:s,bbox:y,halfPadding:f,label:n}},m=(e,t)=>{const a=t.node().getBBox();e.width=a.width,e.height=a.height};function I(e,t,a,i){return e.insert("polygon",":first-child").attr("points",i.map(function(l){return l.x+","+l.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+a/2+")")}function Lt(e,t){return e.intersect(t)}function it(e,t,a,i){var l=e.x,r=e.y,s=l-i.x,n=r-i.y,c=Math.sqrt(t*t*n*n+a*a*s*s),o=Math.abs(t*a*s/c);i.x0}function Tt(e,t,a){var i=e.x,l=e.y,r=[],s=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(d){s=Math.min(s,d.x),n=Math.min(n,d.y)}):(s=Math.min(s,t.x),n=Math.min(n,t.y));for(var c=i-e.width/2-s,o=l-e.height/2-n,h=0;h1&&r.sort(function(d,k){var x=d.x-a.x,u=d.y-a.y,S=Math.sqrt(x*x+u*u),B=k.x-a.x,C=k.y-a.y,X=Math.sqrt(B*B+C*C);return S{var a=e.x,i=e.y,l=t.x-a,r=t.y-i,s=e.width/2,n=e.height/2,c,o;return Math.abs(r)*s>Math.abs(l)*n?(r<0&&(n=-n),c=r===0?0:n*l/r,o=n):(l<0&&(s=-s),c=s,o=l===0?0:s*r/l),{x:a+c,y:i+o}},Et=Bt,w={node:Lt,circle:St,ellipse:it,polygon:Tt,rect:Et},Ct=async(e,t)=>{t.useHtmlLabels||b().flowchart.htmlLabels||(t.centerLabel=!0);const{shapeSvg:i,bbox:l,halfPadding:r}=await M(e,t,"node "+t.classes,!0);g.info("Classes = ",t.classes);const s=i.insert("rect",":first-child");return s.attr("rx",t.rx).attr("ry",t.ry).attr("x",-l.width/2-r).attr("y",-l.height/2-r).attr("width",l.width+t.padding).attr("height",l.height+t.padding),m(t,s),t.intersect=function(n){return w.rect(t,n)},i},$t=Ct,_t=e=>{const t=new Set;for(const a of e)switch(a){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(a);break}return t},Rt=(e,t,a)=>{const i=_t(e),l=2,r=t.height+2*a.padding,s=r/l,n=t.width+2*s+a.padding,c=a.padding/2;return i.has("right")&&i.has("left")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:s,y:0},{x:n/2,y:2*c},{x:n-s,y:0},{x:n,y:0},{x:n,y:-r/3},{x:n+2*c,y:-r/2},{x:n,y:-2*r/3},{x:n,y:-r},{x:n-s,y:-r},{x:n/2,y:-r-2*c},{x:s,y:-r},{x:0,y:-r},{x:0,y:-2*r/3},{x:-2*c,y:-r/2},{x:0,y:-r/3}]:i.has("right")&&i.has("left")&&i.has("up")?[{x:s,y:0},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:s,y:-r},{x:0,y:-r/2}]:i.has("right")&&i.has("left")&&i.has("down")?[{x:0,y:0},{x:s,y:-r},{x:n-s,y:-r},{x:n,y:0}]:i.has("right")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:n,y:-s},{x:n,y:-r+s},{x:0,y:-r}]:i.has("left")&&i.has("up")&&i.has("down")?[{x:n,y:0},{x:0,y:-s},{x:0,y:-r+s},{x:n,y:-r}]:i.has("right")&&i.has("left")?[{x:s,y:0},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r},{x:0,y:-r/2}]:i.has("up")&&i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:s,y:-c},{x:s,y:-r+c},{x:0,y:-r+c},{x:n/2,y:-r},{x:n,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c},{x:n,y:-c}]:i.has("right")&&i.has("up")?[{x:0,y:0},{x:n,y:-s},{x:0,y:-r}]:i.has("right")&&i.has("down")?[{x:0,y:0},{x:n,y:0},{x:0,y:-r}]:i.has("left")&&i.has("up")?[{x:n,y:0},{x:0,y:-s},{x:n,y:-r}]:i.has("left")&&i.has("down")?[{x:n,y:0},{x:0,y:0},{x:n,y:-r}]:i.has("right")?[{x:s,y:-c},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r+c}]:i.has("left")?[{x:s,y:0},{x:s,y:-c},{x:n-s,y:-c},{x:n-s,y:-r+c},{x:s,y:-r+c},{x:s,y:-r},{x:0,y:-r/2}]:i.has("up")?[{x:s,y:-c},{x:s,y:-r+c},{x:0,y:-r+c},{x:n/2,y:-r},{x:n,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c}]:i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:s,y:-c},{x:s,y:-r+c},{x:n-s,y:-r+c},{x:n-s,y:-c},{x:n,y:-c}]:[{x:0,y:0}]},K=e=>e?" "+e:"",_=(e,t)=>`node default${K(e.classes)} ${K(e.class)}`,P=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=l+r,n=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];g.info("Question main (Circle)");const c=I(a,s,s,n);return c.attr("style",t.style),m(t,c),t.intersect=function(o){return g.warn("Intersect called"),w.polygon(t,n,o)},a},Ht=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=28,l=[{x:0,y:i/2},{x:i/2,y:0},{x:0,y:-i/2},{x:-i/2,y:0}];return a.insert("polygon",":first-child").attr("points",l.map(function(s){return s.x+","+s.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(s){return w.circle(t,14,s)},a},It=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=4,r=i.height+t.padding,s=r/l,n=i.width+2*s+t.padding,c=[{x:s,y:0},{x:n-s,y:0},{x:n,y:-r/2},{x:n-s,y:-r},{x:s,y:-r},{x:0,y:-r/2}],o=I(a,n,r,c);return o.attr("style",t.style),m(t,o),t.intersect=function(h){return w.polygon(t,c,h)},a},Nt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,void 0,!0),l=2,r=i.height+2*t.padding,s=r/l,n=i.width+2*s+t.padding,c=Rt(t.directions,i,t),o=I(a,n,r,c);return o.attr("style",t.style),m(t,o),t.intersect=function(h){return w.polygon(t,c,h)},a},Ot=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-r/2,y:0},{x:l,y:0},{x:l,y:-r},{x:-r/2,y:-r},{x:0,y:-r/2}];return I(a,l,r,s).attr("style",t.style),t.width=l+r,t.height=r,t.intersect=function(c){return w.polygon(t,s,c)},a},Wt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-2*r/6,y:0},{x:l-r/6,y:0},{x:l+2*r/6,y:-r},{x:r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Xt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:2*r/6,y:0},{x:l+r/6,y:0},{x:l-2*r/6,y:-r},{x:-r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Yt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:-2*r/6,y:0},{x:l+2*r/6,y:0},{x:l-r/6,y:-r},{x:r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Dt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:r/6,y:0},{x:l-r/6,y:0},{x:l+2*r/6,y:-r},{x:-2*r/6,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},At=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:0,y:0},{x:l+r/2,y:0},{x:l,y:-r/2},{x:l+r/2,y:-r},{x:0,y:-r}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},jt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=l/2,s=r/(2.5+l/50),n=i.height+s+t.padding,c="M 0,"+s+" a "+r+","+s+" 0,0,0 "+l+" 0 a "+r+","+s+" 0,0,0 "+-l+" 0 l 0,"+n+" a "+r+","+s+" 0,0,0 "+l+" 0 l 0,"+-n,o=a.attr("label-offset-y",s).insert("path",":first-child").attr("style",t.style).attr("d",c).attr("transform","translate("+-l/2+","+-(n/2+s)+")");return m(t,o),t.intersect=function(h){const y=w.rect(t,h),f=y.x-t.x;if(r!=0&&(Math.abs(f)t.height/2-s)){let p=s*s*(1-f*f/(r*r));p!=0&&(p=Math.sqrt(p)),p=s-p,h.y-t.y>0&&(p=-p),y.y+=p}return y},a},Ut=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,"node "+t.classes+" "+t.class,!0),r=a.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-s/2:-i.width/2-l,o=t.positioned?-n/2:-i.height/2-l;if(r.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",o).attr("width",s).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(Q(r,t.props.borders,s,n),h.delete("borders")),h.forEach(y=>{g.warn(`Unknown node property ${y}`)})}return m(t,r),t.intersect=function(h){return w.rect(t,h)},a},zt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,"node "+t.classes,!0),r=a.insert("rect",":first-child"),s=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-s/2:-i.width/2-l,o=t.positioned?-n/2:-i.height/2-l;if(r.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",o).attr("width",s).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(Q(r,t.props.borders,s,n),h.delete("borders")),h.forEach(y=>{g.warn(`Unknown node property ${y}`)})}return m(t,r),t.intersect=function(h){return w.rect(t,h)},a},Zt=async(e,t)=>{const{shapeSvg:a}=await M(e,t,"label",!0);g.trace("Classes = ",t.class);const i=a.insert("rect",":first-child"),l=0,r=0;if(i.attr("width",l).attr("height",r),a.attr("class","label edgeLabel"),t.props){const s=new Set(Object.keys(t.props));t.props.borders&&(Q(i,t.props.borders,l,r),s.delete("borders")),s.forEach(n=>{g.warn(`Unknown node property ${n}`)})}return m(t,i),t.intersect=function(s){return w.rect(t,s)},a};function Q(e,t,a,i){const l=[],r=n=>{l.push(n,0)},s=n=>{l.push(0,n)};t.includes("t")?(g.debug("add top border"),r(a)):s(a),t.includes("r")?(g.debug("add right border"),r(i)):s(i),t.includes("b")?(g.debug("add bottom border"),r(a)):s(a),t.includes("l")?(g.debug("add left border"),r(i)):s(i),e.attr("stroke-dasharray",l.join(" "))}const Gt=(e,t)=>{let a;t.classes?a="node "+t.classes:a="node default";const i=e.insert("g").attr("class",a).attr("id",t.domId||t.id),l=i.insert("rect",":first-child"),r=i.insert("line"),s=i.insert("g").attr("class","label"),n=t.labelText.flat?t.labelText.flat():t.labelText;let c="";typeof n=="object"?c=n[0]:c=n,g.info("Label text abc79",c,n,typeof n=="object");const o=s.node().appendChild(R(c,t.labelStyle,!0,!0));let h={width:0,height:0};if(H(b().flowchart.htmlLabels)){const k=o.children[0],x=E(o);h=k.getBoundingClientRect(),x.attr("width",h.width),x.attr("height",h.height)}g.info("Text 2",n);const y=n.slice(1,n.length);let f=o.getBBox();const p=s.node().appendChild(R(y.join?y.join("
"):y,t.labelStyle,!0,!0));if(H(b().flowchart.htmlLabels)){const k=p.children[0],x=E(p);h=k.getBoundingClientRect(),x.attr("width",h.width),x.attr("height",h.height)}const d=t.padding/2;return E(p).attr("transform","translate( "+(h.width>f.width?0:(f.width-h.width)/2)+", "+(f.height+d+5)+")"),E(o).attr("transform","translate( "+(h.width{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.height+t.padding,r=i.width+l/4+t.padding,s=a.insert("rect",":first-child").attr("style",t.style).attr("rx",l/2).attr("ry",l/2).attr("x",-r/2).attr("y",-l/2).attr("width",r).attr("height",l);return m(t,s),t.intersect=function(n){return w.rect(t,n)},a},qt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,_(t),!0),r=a.insert("circle",":first-child");return r.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),g.info("Circle main"),m(t,r),t.intersect=function(s){return g.info("Circle intersect",t,i.width/2+l,s),w.circle(t,i.width/2+l,s)},a},Qt=async(e,t)=>{const{shapeSvg:a,bbox:i,halfPadding:l}=await M(e,t,_(t),!0),r=5,s=a.insert("g",":first-child"),n=s.insert("circle"),c=s.insert("circle");return s.attr("class",t.class),n.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l+r).attr("width",i.width+t.padding+r*2).attr("height",i.height+t.padding+r*2),c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),g.info("DoubleCircle main"),m(t,n),t.intersect=function(o){return g.info("DoubleCircle intersect",t,i.width/2+l+r,o),w.circle(t,i.width/2+l+r,o)},a},Vt=async(e,t)=>{const{shapeSvg:a,bbox:i}=await M(e,t,_(t),!0),l=i.width+t.padding,r=i.height+t.padding,s=[{x:0,y:0},{x:l,y:0},{x:l,y:-r},{x:0,y:-r},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-r},{x:-8,y:-r},{x:-8,y:0}],n=I(a,l,r,s);return n.attr("style",t.style),m(t,n),t.intersect=function(c){return w.polygon(t,s,c)},a},Jt=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),m(t,i),t.intersect=function(l){return w.circle(t,7,l)},a},tt=(e,t,a)=>{const i=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let l=70,r=10;a==="LR"&&(l=10,r=70);const s=i.append("rect").attr("x",-1*l/2).attr("y",-1*r/2).attr("width",l).attr("height",r).attr("class","fork-join");return m(t,s),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(n){return w.rect(t,n)},i},Kt=(e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child"),l=a.insert("circle",":first-child");return l.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),m(t,l),t.intersect=function(r){return w.circle(t,7,r)},a},Pt=(e,t)=>{const a=t.padding/2,i=4,l=8;let r;t.classes?r="node "+t.classes:r="node default";const s=e.insert("g").attr("class",r).attr("id",t.domId||t.id),n=s.insert("rect",":first-child"),c=s.insert("line"),o=s.insert("line");let h=0,y=i;const f=s.insert("g").attr("class","label");let p=0;const d=t.classData.annotations&&t.classData.annotations[0],k=t.classData.annotations[0]?"«"+t.classData.annotations[0]+"»":"",x=f.node().appendChild(R(k,t.labelStyle,!0,!0));let u=x.getBBox();if(H(b().flowchart.htmlLabels)){const v=x.children[0],L=E(x);u=v.getBoundingClientRect(),L.attr("width",u.width),L.attr("height",u.height)}t.classData.annotations[0]&&(y+=u.height+i,h+=u.width);let S=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(b().flowchart.htmlLabels?S+="<"+t.classData.type+">":S+="<"+t.classData.type+">");const B=f.node().appendChild(R(S,t.labelStyle,!0,!0));E(B).attr("class","classTitle");let C=B.getBBox();if(H(b().flowchart.htmlLabels)){const v=B.children[0],L=E(B);C=v.getBoundingClientRect(),L.attr("width",C.width),L.attr("height",C.height)}y+=C.height+i,C.width>h&&(h=C.width);const X=[];t.classData.members.forEach(v=>{const L=v.getDisplayDetails();let W=L.displayText;b().flowchart.htmlLabels&&(W=W.replace(//g,">"));const N=f.node().appendChild(R(W,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0));let $=N.getBBox();if(H(b().flowchart.htmlLabels)){const F=N.children[0],A=E(N);$=F.getBoundingClientRect(),A.attr("width",$.width),A.attr("height",$.height)}$.width>h&&(h=$.width),y+=$.height+i,X.push(N)}),y+=l;const D=[];if(t.classData.methods.forEach(v=>{const L=v.getDisplayDetails();let W=L.displayText;b().flowchart.htmlLabels&&(W=W.replace(//g,">"));const N=f.node().appendChild(R(W,L.cssStyle?L.cssStyle:t.labelStyle,!0,!0));let $=N.getBBox();if(H(b().flowchart.htmlLabels)){const F=N.children[0],A=E(N);$=F.getBoundingClientRect(),A.attr("width",$.width),A.attr("height",$.height)}$.width>h&&(h=$.width),y+=$.height+i,D.push(N)}),y+=l,d){let v=(h-u.width)/2;E(x).attr("transform","translate( "+(-1*h/2+v)+", "+-1*y/2+")"),p=u.height+i}let nt=(h-C.width)/2;return E(B).attr("transform","translate( "+(-1*h/2+nt)+", "+(-1*y/2+p)+")"),p+=C.height+i,c.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+p).attr("y2",-y/2-a+l+p),p+=l,X.forEach(v=>{E(v).attr("transform","translate( "+-h/2+", "+(-1*y/2+p+l/2)+")");const L=v==null?void 0:v.getBBox();p+=((L==null?void 0:L.height)??0)+i}),p+=l,o.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-y/2-a+l+p).attr("y2",-y/2-a+l+p),p+=l,D.forEach(v=>{E(v).attr("transform","translate( "+-h/2+", "+(-1*y/2+p)+")");const L=v==null?void 0:v.getBBox();p+=((L==null?void 0:L.height)??0)+i}),n.attr("style",t.style).attr("class","outer title-state").attr("x",-h/2-a).attr("y",-(y/2)-a).attr("width",h+t.padding).attr("height",y+t.padding),m(t,n),t.intersect=function(v){return w.rect(t,v)},s},rt={rhombus:P,composite:zt,question:P,rect:Ut,labelRect:Zt,rectWithTitle:Gt,choice:Ht,circle:qt,doublecircle:Qt,stadium:Ft,hexagon:It,block_arrow:Nt,rect_left_inv_arrow:Ot,lean_right:Wt,lean_left:Xt,trapezoid:Yt,inv_trapezoid:Dt,rect_right_inv_arrow:At,cylinder:jt,start:Jt,end:Kt,note:$t,subroutine:Vt,fork:tt,join:tt,class_box:Pt};let Y={};const or=async(e,t,a)=>{let i,l;if(t.link){let r;b().securityLevel==="sandbox"?r="_top":t.linkTarget&&(r=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",r),l=await rt[t.shape](i,t,a)}else l=await rt[t.shape](e,t,a),i=l;return t.tooltip&&l.attr("title",t.tooltip),t.class&&l.attr("class","node default "+t.class),i.attr("data-node","true"),i.attr("data-id",t.id),Y[t.id]=i,t.haveCallback&&Y[t.id].attr("class",Y[t.id].attr("class")+" clickable"),i},yr=(e,t)=>{Y[t.id]=e},pr=()=>{Y={}},fr=e=>{const t=Y[e.id];g.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const a=8,i=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+i-e.width/2)+", "+(e.y-e.height/2-a)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),i},tr=({flowchart:e})=>{var t,a;const i=((t=e==null?void 0:e.subGraphTitleMargin)==null?void 0:t.top)??0,l=((a=e==null?void 0:e.subGraphTitleMargin)==null?void 0:a.bottom)??0,r=i+l;return{subGraphTitleTopMargin:i,subGraphTitleBottomMargin:l,subGraphTitleTotalMargin:r}},O={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:5.3};function U(e,t){if(e===void 0||t===void 0)return{angle:0,deltaX:0,deltaY:0};e=Z(e),t=Z(t);const[a,i]=[e.x,e.y],[l,r]=[t.x,t.y],s=l-a,n=r-i;return{angle:Math.atan(n/s),deltaX:s,deltaY:n}}const Z=e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,rr=e=>({x:function(t,a,i){let l=0;if(a===0&&Object.hasOwn(O,e.arrowTypeStart)){const{angle:r,deltaX:s}=U(i[0],i[1]);l=O[e.arrowTypeStart]*Math.cos(r)*(s>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){const{angle:r,deltaX:s}=U(i[i.length-1],i[i.length-2]);l=O[e.arrowTypeEnd]*Math.cos(r)*(s>=0?1:-1)}return Z(t).x+l},y:function(t,a,i){let l=0;if(a===0&&Object.hasOwn(O,e.arrowTypeStart)){const{angle:r,deltaY:s}=U(i[0],i[1]);l=O[e.arrowTypeStart]*Math.abs(Math.sin(r))*(s>=0?1:-1)}else if(a===i.length-1&&Object.hasOwn(O,e.arrowTypeEnd)){const{angle:r,deltaY:s}=U(i[i.length-1],i[i.length-2]);l=O[e.arrowTypeEnd]*Math.abs(Math.sin(r))*(s>=0?1:-1)}return Z(t).y+l}}),ar=(e,t,a,i,l)=>{t.arrowTypeStart&&at(e,"start",t.arrowTypeStart,a,i,l),t.arrowTypeEnd&&at(e,"end",t.arrowTypeEnd,a,i,l)},er={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},at=(e,t,a,i,l,r)=>{const s=er[a];if(!s){g.warn(`Unknown arrow type: ${a}`);return}const n=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${i}#${l}_${r}-${s}${n})`)};let G={},T={};const xr=()=>{G={},T={}},dr=(e,t)=>{const a=H(b().flowchart.htmlLabels),i=t.labelType==="markdown"?st(e,t.label,{style:t.labelStyle,useHtmlLabels:a,addSvgBackground:!0}):R(t.label,t.labelStyle),l=e.insert("g").attr("class","edgeLabel"),r=l.insert("g").attr("class","label");r.node().appendChild(i);let s=i.getBBox();if(a){const c=i.children[0],o=E(i);s=c.getBoundingClientRect(),o.attr("width",s.width),o.attr("height",s.height)}r.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),G[t.id]=l,t.width=s.width,t.height=s.height;let n;if(t.startLabelLeft){const c=R(t.startLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),T[t.id]||(T[t.id]={}),T[t.id].startLeft=o,z(n,t.startLabelLeft)}if(t.startLabelRight){const c=R(t.startLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=o.node().appendChild(c),h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),T[t.id]||(T[t.id]={}),T[t.id].startRight=o,z(n,t.startLabelRight)}if(t.endLabelLeft){const c=R(t.endLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),o.node().appendChild(c),T[t.id]||(T[t.id]={}),T[t.id].endLeft=o,z(n,t.endLabelLeft)}if(t.endLabelRight){const c=R(t.endLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),h=o.insert("g").attr("class","inner");n=h.node().appendChild(c);const y=c.getBBox();h.attr("transform","translate("+-y.width/2+", "+-y.height/2+")"),o.node().appendChild(c),T[t.id]||(T[t.id]={}),T[t.id].endRight=o,z(n,t.endLabelRight)}return i};function z(e,t){b().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}const gr=(e,t)=>{g.debug("Moving label abc88 ",e.id,e.label,G[e.id],t);let a=t.updatedPath?t.updatedPath:t.originalPath;const i=b(),{subGraphTitleTotalMargin:l}=tr(i);if(e.label){const r=G[e.id];let s=e.x,n=e.y;if(a){const c=j.calcLabelPosition(a);g.debug("Moving label "+e.label+" from (",s,",",n,") to (",c.x,",",c.y,") abc88"),t.updatedPath&&(s=c.x,n=c.y)}r.attr("transform",`translate(${s}, ${n+l/2})`)}if(e.startLabelLeft){const r=T[e.id].startLeft;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.startLabelRight){const r=T[e.id].startRight;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.endLabelLeft){const r=T[e.id].endLeft;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}if(e.endLabelRight){const r=T[e.id].endRight;let s=e.x,n=e.y;if(a){const c=j.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",a);s=c.x,n=c.y}r.attr("transform",`translate(${s}, ${n})`)}},sr=(e,t)=>{const a=e.x,i=e.y,l=Math.abs(t.x-a),r=Math.abs(t.y-i),s=e.width/2,n=e.height/2;return l>=s||r>=n},ir=(e,t,a)=>{g.debug(`intersection calc abc89: outsidePoint: ${JSON.stringify(t)} insidePoint : ${JSON.stringify(a)} node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const i=e.x,l=e.y,r=Math.abs(i-a.x),s=e.width/2;let n=a.xMath.abs(i-t.x)*c){let y=a.y{g.debug("abc88 cutPathAtIntersect",e,t);let a=[],i=e[0],l=!1;return e.forEach(r=>{if(!sr(t,r)&&!l){const s=ir(t,i,r);let n=!1;a.forEach(c=>{n=n||c.x===s.x&&c.y===s.y}),a.some(c=>c.x===s.x&&c.y===s.y)||a.push(s),l=!0}else i=r,l||a.push(r)}),a},ur=function(e,t,a,i,l,r,s){let n=a.points;g.debug("abc88 InsertEdge: edge=",a,"e=",t);let c=!1;const o=r.node(t.v);var h=r.node(t.w);h!=null&&h.intersect&&(o!=null&&o.intersect)&&(n=n.slice(1,a.points.length-1),n.unshift(o.intersect(n[0])),n.push(h.intersect(n[n.length-1]))),a.toCluster&&(g.debug("to cluster abc88",i[a.toCluster]),n=et(a.points,i[a.toCluster].node),c=!0),a.fromCluster&&(g.debug("from cluster abc88",i[a.fromCluster]),n=et(n.reverse(),i[a.fromCluster].node).reverse(),c=!0);const y=n.filter(C=>!Number.isNaN(C.y));let f=lt;a.curve&&(l==="graph"||l==="flowchart")&&(f=a.curve);const{x:p,y:d}=rr(a),k=ct().x(p).y(d).curve(f);let x;switch(a.thickness){case"normal":x="edge-thickness-normal";break;case"thick":x="edge-thickness-thick";break;case"invisible":x="edge-thickness-thick";break;default:x=""}switch(a.pattern){case"solid":x+=" edge-pattern-solid";break;case"dotted":x+=" edge-pattern-dotted";break;case"dashed":x+=" edge-pattern-dashed";break}const u=e.append("path").attr("d",k(y)).attr("id",a.id).attr("class"," "+x+(a.classes?" "+a.classes:"")).attr("style",a.style);let S="";(b().flowchart.arrowMarkerAbsolute||b().state.arrowMarkerAbsolute)&&(S=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,S=S.replace(/\(/g,"\\("),S=S.replace(/\)/g,"\\)")),ar(u,a,S,s,l);let B={};return c&&(B.updatedPath=n),B.originalPath=a.points,B};export{or as a,dr as b,ur as c,gr as d,pr as e,xr as f,tr as g,R as h,hr as i,Et as j,rr as k,M as l,ar as m,fr as p,yr as s,m as u}; diff --git a/assets/erDiagram-09d1c15f-HbBTHeac.js b/assets/erDiagram-09d1c15f-Cq02I8yw.js similarity index 99% rename from assets/erDiagram-09d1c15f-HbBTHeac.js rename to assets/erDiagram-09d1c15f-Cq02I8yw.js index 5791832..41837ec 100644 --- a/assets/erDiagram-09d1c15f-HbBTHeac.js +++ b/assets/erDiagram-09d1c15f-Cq02I8yw.js @@ -1,4 +1,4 @@ -import{c as Z,s as Et,g as mt,b as gt,a as kt,x as xt,y as Rt,l as V,A as Ot,h as rt,z as bt,i as Nt,ao as Tt,ar as At}from"./mermaid.core-Cio1iadR.js";import{G as Mt}from"./graph-k1ojK0f-.js";import{l as St}from"./layout-CbxIxNpL.js";import{l as wt}from"./line-DOPC82El.js";import"./app-BQ_RvZRm.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const It=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Dt(t){return typeof t=="string"&&It.test(t)}const A=[];for(let t=0;t<256;++t)A.push((t+256).toString(16).slice(1));function vt(t,e=0){return A[t[e+0]]+A[t[e+1]]+A[t[e+2]]+A[t[e+3]]+"-"+A[t[e+4]]+A[t[e+5]]+"-"+A[t[e+6]]+A[t[e+7]]+"-"+A[t[e+8]]+A[t[e+9]]+"-"+A[t[e+10]]+A[t[e+11]]+A[t[e+12]]+A[t[e+13]]+A[t[e+14]]+A[t[e+15]]}function Lt(t){if(!Dt(t))throw TypeError("Invalid UUID");let e;const r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=e&255,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=e&255,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=e&255,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=e&255,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=e&255,r}function Bt(t){t=unescape(encodeURIComponent(t));const e=[];for(let r=0;r>>32-e}function Ft(t){const e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof t=="string"){const f=unescape(encodeURIComponent(t));t=[];for(let o=0;o>>0;x=g,g=m,m=it(_,30)>>>0,_=h,h=I}r[0]=r[0]+h>>>0,r[1]=r[1]+_>>>0,r[2]=r[2]+m>>>0,r[3]=r[3]+g>>>0,r[4]=r[4]+x>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,r[0]&255,r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,r[1]&255,r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,r[2]&255,r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,r[3]&255,r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,r[4]&255]}const Wt=Yt("v5",80,Ft);var at=function(){var t=function(S,a,n,c){for(n=n||{},c=S.length;c--;n[S[c]]=a);return n},e=[6,8,10,20,22,24,26,27,28],r=[1,10],u=[1,11],l=[1,12],p=[1,13],f=[1,14],o=[1,15],h=[1,21],_=[1,22],m=[1,23],g=[1,24],x=[1,25],y=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],N=[1,34],I=[27,28,46,47],F=[41,42,43,44,45],W=[17,34],C=[1,54],T=[1,53],M=[17,34,36,38],R={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:function(a,n,c,d,E,i,K){var s=i.length-1;switch(E){case 1:break;case 2:this.$=[];break;case 3:i[s-1].push(i[s]),this.$=i[s-1];break;case 4:case 5:this.$=i[s];break;case 6:case 7:this.$=[];break;case 8:d.addEntity(i[s-4]),d.addEntity(i[s-2]),d.addRelationship(i[s-4],i[s],i[s-2],i[s-3]);break;case 9:d.addEntity(i[s-3]),d.addAttributes(i[s-3],i[s-1]);break;case 10:d.addEntity(i[s-2]);break;case 11:d.addEntity(i[s]);break;case 12:d.addEntity(i[s-6],i[s-4]),d.addAttributes(i[s-6],i[s-1]);break;case 13:d.addEntity(i[s-5],i[s-3]);break;case 14:d.addEntity(i[s-3],i[s-1]);break;case 15:case 16:this.$=i[s].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=i[s].trim(),d.setAccDescription(this.$);break;case 19:case 43:this.$=i[s];break;case 20:case 41:case 42:this.$=i[s].replace(/"/g,"");break;case 21:case 29:this.$=[i[s]];break;case 22:i[s].push(i[s-1]),this.$=i[s];break;case 23:this.$={attributeType:i[s-1],attributeName:i[s]};break;case 24:this.$={attributeType:i[s-2],attributeName:i[s-1],attributeKeyTypeList:i[s]};break;case 25:this.$={attributeType:i[s-2],attributeName:i[s-1],attributeComment:i[s]};break;case 26:this.$={attributeType:i[s-3],attributeName:i[s-2],attributeKeyTypeList:i[s-1],attributeComment:i[s]};break;case 27:case 28:case 31:this.$=i[s];break;case 30:i[s-2].push(i[s]),this.$=i[s-2];break;case 32:this.$=i[s].replace(/"/g,"");break;case 33:this.$={cardA:i[s],relType:i[s-1],cardB:i[s-2]};break;case 34:this.$=d.Cardinality.ZERO_OR_ONE;break;case 35:this.$=d.Cardinality.ZERO_OR_MORE;break;case 36:this.$=d.Cardinality.ONE_OR_MORE;break;case 37:this.$=d.Cardinality.ONLY_ONE;break;case 38:this.$=d.Cardinality.MD_PARENT;break;case 39:this.$=d.Identification.NON_IDENTIFYING;break;case 40:this.$=d.Identification.IDENTIFYING;break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:r,22:u,24:l,26:p,27:f,28:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:16,11:9,20:r,22:u,24:l,26:p,27:f,28:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:h,42:_,43:m,44:g,45:x}),{21:[1,26]},{23:[1,27]},{25:[1,28]},t(e,[2,18]),t(y,[2,19]),t(y,[2,20]),t(e,[2,4]),{11:29,27:f,28:o},{16:30,17:[1,31],29:32,30:33,34:N},{11:35,27:f,28:o},{40:36,46:[1,37],47:[1,38]},t(I,[2,34]),t(I,[2,35]),t(I,[2,36]),t(I,[2,37]),t(I,[2,38]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),{13:[1,39]},{17:[1,40]},t(e,[2,10]),{16:41,17:[2,21],29:32,30:33,34:N},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:h,42:_,43:m,44:g,45:x},t(F,[2,39]),t(F,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},t(e,[2,9]),{17:[2,22]},t(W,[2,23],{32:50,33:51,35:52,37:C,38:T}),t([17,34,37,38],[2,28]),t(e,[2,14],{15:[1,55]}),t([27,28],[2,33]),t(e,[2,8]),t(e,[2,41]),t(e,[2,42]),t(e,[2,43]),t(W,[2,24],{33:56,36:[1,57],38:T}),t(W,[2,25]),t(M,[2,29]),t(W,[2,32]),t(M,[2,31]),{16:58,17:[1,59],29:32,30:33,34:N},t(W,[2,26]),{35:60,37:C},{17:[1,61]},t(e,[2,13]),t(M,[2,30]),t(e,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:function(a,n){if(n.recoverable)this.trace(a);else{var c=new Error(a);throw c.hash=n,c}},parse:function(a){var n=this,c=[0],d=[],E=[null],i=[],K=this.table,s="",Q=0,st=0,ft=2,ot=1,yt=i.slice.call(arguments,1),b=Object.create(this.lexer),z={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(z.yy[J]=this.yy[J]);b.setInput(a,z.yy),z.yy.lexer=b,z.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var $=b.yylloc;i.push($);var pt=b.options&&b.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _t(){var Y;return Y=d.pop()||b.lex()||ot,typeof Y!="number"&&(Y instanceof Array&&(d=Y,Y=d.pop()),Y=n.symbols_[Y]||Y),Y}for(var w,H,D,tt,G={},j,P,lt,q;;){if(H=c[c.length-1],this.defaultActions[H]?D=this.defaultActions[H]:((w===null||typeof w>"u")&&(w=_t()),D=K[H]&&K[H][w]),typeof D>"u"||!D.length||!D[0]){var et="";q=[];for(j in K[H])this.terminals_[j]&&j>ft&&q.push("'"+this.terminals_[j]+"'");b.showPosition?et="Parse error on line "+(Q+1)+`: +import{c as Z,s as Et,g as mt,b as gt,a as kt,x as xt,y as Rt,l as V,A as Ot,h as rt,z as bt,i as Nt,ao as Tt,ar as At}from"./mermaid.core-D8sVPjx9.js";import{G as Mt}from"./graph-BKQChTdx.js";import{l as St}from"./layout-Bwrh1hP1.js";import{l as wt}from"./line-Dh5t0evl.js";import"./app-B7rxM88G.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const It=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Dt(t){return typeof t=="string"&&It.test(t)}const A=[];for(let t=0;t<256;++t)A.push((t+256).toString(16).slice(1));function vt(t,e=0){return A[t[e+0]]+A[t[e+1]]+A[t[e+2]]+A[t[e+3]]+"-"+A[t[e+4]]+A[t[e+5]]+"-"+A[t[e+6]]+A[t[e+7]]+"-"+A[t[e+8]]+A[t[e+9]]+"-"+A[t[e+10]]+A[t[e+11]]+A[t[e+12]]+A[t[e+13]]+A[t[e+14]]+A[t[e+15]]}function Lt(t){if(!Dt(t))throw TypeError("Invalid UUID");let e;const r=new Uint8Array(16);return r[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=e&255,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=e&255,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=e&255,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=e&255,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=e&255,r}function Bt(t){t=unescape(encodeURIComponent(t));const e=[];for(let r=0;r>>32-e}function Ft(t){const e=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof t=="string"){const f=unescape(encodeURIComponent(t));t=[];for(let o=0;o>>0;x=g,g=m,m=it(_,30)>>>0,_=h,h=I}r[0]=r[0]+h>>>0,r[1]=r[1]+_>>>0,r[2]=r[2]+m>>>0,r[3]=r[3]+g>>>0,r[4]=r[4]+x>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,r[0]&255,r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,r[1]&255,r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,r[2]&255,r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,r[3]&255,r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,r[4]&255]}const Wt=Yt("v5",80,Ft);var at=function(){var t=function(S,a,n,c){for(n=n||{},c=S.length;c--;n[S[c]]=a);return n},e=[6,8,10,20,22,24,26,27,28],r=[1,10],u=[1,11],l=[1,12],p=[1,13],f=[1,14],o=[1,15],h=[1,21],_=[1,22],m=[1,23],g=[1,24],x=[1,25],y=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],N=[1,34],I=[27,28,46,47],F=[41,42,43,44,45],W=[17,34],C=[1,54],T=[1,53],M=[17,34,36,38],R={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:function(a,n,c,d,E,i,K){var s=i.length-1;switch(E){case 1:break;case 2:this.$=[];break;case 3:i[s-1].push(i[s]),this.$=i[s-1];break;case 4:case 5:this.$=i[s];break;case 6:case 7:this.$=[];break;case 8:d.addEntity(i[s-4]),d.addEntity(i[s-2]),d.addRelationship(i[s-4],i[s],i[s-2],i[s-3]);break;case 9:d.addEntity(i[s-3]),d.addAttributes(i[s-3],i[s-1]);break;case 10:d.addEntity(i[s-2]);break;case 11:d.addEntity(i[s]);break;case 12:d.addEntity(i[s-6],i[s-4]),d.addAttributes(i[s-6],i[s-1]);break;case 13:d.addEntity(i[s-5],i[s-3]);break;case 14:d.addEntity(i[s-3],i[s-1]);break;case 15:case 16:this.$=i[s].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=i[s].trim(),d.setAccDescription(this.$);break;case 19:case 43:this.$=i[s];break;case 20:case 41:case 42:this.$=i[s].replace(/"/g,"");break;case 21:case 29:this.$=[i[s]];break;case 22:i[s].push(i[s-1]),this.$=i[s];break;case 23:this.$={attributeType:i[s-1],attributeName:i[s]};break;case 24:this.$={attributeType:i[s-2],attributeName:i[s-1],attributeKeyTypeList:i[s]};break;case 25:this.$={attributeType:i[s-2],attributeName:i[s-1],attributeComment:i[s]};break;case 26:this.$={attributeType:i[s-3],attributeName:i[s-2],attributeKeyTypeList:i[s-1],attributeComment:i[s]};break;case 27:case 28:case 31:this.$=i[s];break;case 30:i[s-2].push(i[s]),this.$=i[s-2];break;case 32:this.$=i[s].replace(/"/g,"");break;case 33:this.$={cardA:i[s],relType:i[s-1],cardB:i[s-2]};break;case 34:this.$=d.Cardinality.ZERO_OR_ONE;break;case 35:this.$=d.Cardinality.ZERO_OR_MORE;break;case 36:this.$=d.Cardinality.ONE_OR_MORE;break;case 37:this.$=d.Cardinality.ONLY_ONE;break;case 38:this.$=d.Cardinality.MD_PARENT;break;case 39:this.$=d.Identification.NON_IDENTIFYING;break;case 40:this.$=d.Identification.IDENTIFYING;break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:r,22:u,24:l,26:p,27:f,28:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:16,11:9,20:r,22:u,24:l,26:p,27:f,28:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:h,42:_,43:m,44:g,45:x}),{21:[1,26]},{23:[1,27]},{25:[1,28]},t(e,[2,18]),t(y,[2,19]),t(y,[2,20]),t(e,[2,4]),{11:29,27:f,28:o},{16:30,17:[1,31],29:32,30:33,34:N},{11:35,27:f,28:o},{40:36,46:[1,37],47:[1,38]},t(I,[2,34]),t(I,[2,35]),t(I,[2,36]),t(I,[2,37]),t(I,[2,38]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),{13:[1,39]},{17:[1,40]},t(e,[2,10]),{16:41,17:[2,21],29:32,30:33,34:N},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:h,42:_,43:m,44:g,45:x},t(F,[2,39]),t(F,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},t(e,[2,9]),{17:[2,22]},t(W,[2,23],{32:50,33:51,35:52,37:C,38:T}),t([17,34,37,38],[2,28]),t(e,[2,14],{15:[1,55]}),t([27,28],[2,33]),t(e,[2,8]),t(e,[2,41]),t(e,[2,42]),t(e,[2,43]),t(W,[2,24],{33:56,36:[1,57],38:T}),t(W,[2,25]),t(M,[2,29]),t(W,[2,32]),t(M,[2,31]),{16:58,17:[1,59],29:32,30:33,34:N},t(W,[2,26]),{35:60,37:C},{17:[1,61]},t(e,[2,13]),t(M,[2,30]),t(e,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:function(a,n){if(n.recoverable)this.trace(a);else{var c=new Error(a);throw c.hash=n,c}},parse:function(a){var n=this,c=[0],d=[],E=[null],i=[],K=this.table,s="",Q=0,st=0,ft=2,ot=1,yt=i.slice.call(arguments,1),b=Object.create(this.lexer),z={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(z.yy[J]=this.yy[J]);b.setInput(a,z.yy),z.yy.lexer=b,z.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var $=b.yylloc;i.push($);var pt=b.options&&b.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function _t(){var Y;return Y=d.pop()||b.lex()||ot,typeof Y!="number"&&(Y instanceof Array&&(d=Y,Y=d.pop()),Y=n.symbols_[Y]||Y),Y}for(var w,H,D,tt,G={},j,P,lt,q;;){if(H=c[c.length-1],this.defaultActions[H]?D=this.defaultActions[H]:((w===null||typeof w>"u")&&(w=_t()),D=K[H]&&K[H][w]),typeof D>"u"||!D.length||!D[0]){var et="";q=[];for(j in K[H])this.terminals_[j]&&j>ft&&q.push("'"+this.terminals_[j]+"'");b.showPosition?et="Parse error on line "+(Q+1)+`: `+b.showPosition()+` Expecting `+q.join(", ")+", got '"+(this.terminals_[w]||w)+"'":et="Parse error on line "+(Q+1)+": Unexpected "+(w==ot?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(et,{text:b.match,token:this.terminals_[w]||w,line:b.yylineno,loc:$,expected:q})}if(D[0]instanceof Array&&D.length>1)throw new Error("Parse Error: multiple actions possible at state: "+H+", token: "+w);switch(D[0]){case 1:c.push(w),E.push(b.yytext),i.push(b.yylloc),c.push(D[1]),w=null,st=b.yyleng,s=b.yytext,Q=b.yylineno,$=b.yylloc;break;case 2:if(P=this.productions_[D[1]][1],G.$=E[E.length-P],G._$={first_line:i[i.length-(P||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(P||1)].first_column,last_column:i[i.length-1].last_column},pt&&(G._$.range=[i[i.length-(P||1)].range[0],i[i.length-1].range[1]]),tt=this.performAction.apply(G,[s,st,Q,z.yy,D[1],E,i].concat(yt)),typeof tt<"u")return tt;P&&(c=c.slice(0,-1*P*2),E=E.slice(0,-1*P),i=i.slice(0,-1*P)),c.push(this.productions_[D[1]][0]),E.push(G.$),i.push(G._$),lt=K[c[c.length-2]][c[c.length-1]],c.push(lt);break;case 3:return!0}}return!0}},O=function(){var S={EOF:1,parseError:function(n,c){if(this.yy.parser)this.yy.parser.parseError(n,c);else throw new Error(n)},setInput:function(a,n){return this.yy=n||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var n=a.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var n=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var E=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),n=new Array(a.length+1).join("-");return a+this.upcomingInput()+` diff --git a/assets/faststream.html-EaaabuO6.js b/assets/faststream.html-Chb2k470.js similarity index 89% rename from assets/faststream.html-EaaabuO6.js rename to assets/faststream.html-Chb2k470.js index e760993..50bb7c6 100644 --- a/assets/faststream.html-EaaabuO6.js +++ b/assets/faststream.html-Chb2k470.js @@ -1,4 +1,4 @@ -import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o,c as i,b as e,d as t,e as s,a as c}from"./app-BQ_RvZRm.js";const l={},p=e("h1",{id:"taskiq-faststream",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#taskiq-faststream"},[e("span",null,"Taskiq + FastStream")])],-1),m={href:"https://faststream.airt.ai/latest/",target:"_blank",rel:"noopener noreferrer"},d=c(`

If you want to declare communication between different projects you can use taskiq, but it might be a bit more complex than using FastStream.

Although these libraries solve different problems, they have integration between each other, so you can use FastStream as a broker for taskiq. It allows FastStream to use taskiq's scheduler along with its own features.

To use FastStream as a broker for taskiq you need to install the taskiq-faststream library:

pip install "taskiq-faststream"
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o,c as i,b as e,d as t,e as s,a as c}from"./app-B7rxM88G.js";const l={},p=e("h1",{id:"taskiq-faststream",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#taskiq-faststream"},[e("span",null,"Taskiq + FastStream")])],-1),m={href:"https://faststream.airt.ai/latest/",target:"_blank",rel:"noopener noreferrer"},d=c(`

If you want to declare communication between different projects you can use taskiq, but it might be a bit more complex than using FastStream.

Although these libraries solve different problems, they have integration between each other, so you can use FastStream as a broker for taskiq. It allows FastStream to use taskiq's scheduler along with its own features.

To use FastStream as a broker for taskiq you need to install the taskiq-faststream library:

pip install "taskiq-faststream"
 

And you can use it like this:

from faststream import FastStream
 from faststream.kafka import KafkaBroker
 from taskiq_faststream import BrokerWrapper
@@ -7,4 +7,4 @@ broker = KafkaBroker= FastStream(broker)
 
 taskiq_broker = BrokerWrapper(broker)
-
`,6),u={href:"https://faststream.airt.ai/latest/scheduling/?h=schedule",target:"_blank",rel:"noopener noreferrer"};function k(f,h){const a=n("ExternalLinkIcon");return o(),i("div",null,[p,e("p",null,[e("a",m,[t("FastStream"),s(a)]),t(" is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq is more focused on tasks for a specific project and more like celery but async, while FastStream is more focused on events and defining how different systems communicate with each other using distributed brokers.")]),d,e("p",null,[t("You can read more about scheduling tasks for FastStream in the "),e("a",u,[t("FastStream documentation"),s(a)]),t(".")])])}const y=r(l,[["render",k],["__file","faststream.html.vue"]]),_=JSON.parse('{"path":"/framework_integrations/faststream.html","title":"Taskiq + FastStream","lang":"en-US","frontmatter":{"order":3,"description":"Taskiq + FastStream FastStream is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/framework_integrations/faststream.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Taskiq + FastStream"}],["meta",{"property":"og:description","content":"Taskiq + FastStream FastStream is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Taskiq + FastStream\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"framework_integrations/faststream.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

FastStream is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq is more focused on tasks for a specific project and more like celery but async, while FastStream is more focused on events and defining how different systems communicate with each other using distributed brokers.

"}');export{y as comp,_ as data}; +
`,6),u={href:"https://faststream.airt.ai/latest/scheduling/?h=schedule",target:"_blank",rel:"noopener noreferrer"};function k(f,h){const a=n("ExternalLinkIcon");return o(),i("div",null,[p,e("p",null,[e("a",m,[t("FastStream"),s(a)]),t(" is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq is more focused on tasks for a specific project and more like celery but async, while FastStream is more focused on events and defining how different systems communicate with each other using distributed brokers.")]),d,e("p",null,[t("You can read more about scheduling tasks for FastStream in the "),e("a",u,[t("FastStream documentation"),s(a)]),t(".")])])}const y=r(l,[["render",k],["__file","faststream.html.vue"]]),_=JSON.parse('{"path":"/framework_integrations/faststream.html","title":"Taskiq + FastStream","lang":"en-US","frontmatter":{"order":3,"description":"Taskiq + FastStream FastStream is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/framework_integrations/faststream.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Taskiq + FastStream"}],["meta",{"property":"og:description","content":"Taskiq + FastStream FastStream is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Taskiq + FastStream\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"framework_integrations/faststream.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

FastStream is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq is more focused on tasks for a specific project and more like celery but async, while FastStream is more focused on events and defining how different systems communicate with each other using distributed brokers.

"}');export{y as comp,_ as data}; diff --git a/assets/flowDb-c1833063-B3SS7hvs.js b/assets/flowDb-c1833063-BJUkj5Yh.js similarity index 99% rename from assets/flowDb-c1833063-B3SS7hvs.js rename to assets/flowDb-c1833063-BJUkj5Yh.js index ff33c60..1c8b40e 100644 --- a/assets/flowDb-c1833063-B3SS7hvs.js +++ b/assets/flowDb-c1833063-BJUkj5Yh.js @@ -1,4 +1,4 @@ -import{c as et,v as me,s as ye,g as ve,a as Ve,b as Le,x as Ie,y as Re,l as J1,z as dt,A as Ne,j as we,h as w1}from"./mermaid.core-Cio1iadR.js";var pt=function(){var e=function(f1,a,o,f){for(o=o||{},f=f1.length;f--;o[f1[f]]=a);return o},u=[1,4],i=[1,3],n=[1,5],c=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],l=[2,2],h=[1,13],U=[1,14],F=[1,15],w=[1,16],X=[1,23],o1=[1,25],p1=[1,26],A1=[1,27],C=[1,49],k=[1,48],l1=[1,29],U1=[1,30],G1=[1,31],M1=[1,32],K1=[1,33],x=[1,44],B=[1,46],m=[1,42],y=[1,47],v=[1,43],V=[1,50],L=[1,45],I=[1,51],R=[1,52],Y1=[1,34],j1=[1,35],z1=[1,36],X1=[1,37],I1=[1,57],b=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],q=[1,61],Q=[1,60],Z=[1,62],H1=[8,9,11,73,75],k1=[1,88],b1=[1,93],g1=[1,92],D1=[1,89],F1=[1,85],T1=[1,91],S1=[1,87],C1=[1,94],_1=[1,90],x1=[1,95],B1=[1,86],W1=[8,9,10,11,73,75],N=[8,9,10,11,44,73,75],M=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],Et=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],R1=[42,58,86,99,102,103,106,108,111,112,113],kt=[1,121],bt=[1,120],gt=[1,128],Dt=[1,142],Ft=[1,143],Tt=[1,144],St=[1,145],Ct=[1,130],_t=[1,132],xt=[1,136],Bt=[1,137],mt=[1,138],yt=[1,139],vt=[1,140],Vt=[1,141],Lt=[1,146],It=[1,147],Rt=[1,126],Nt=[1,127],wt=[1,134],Ot=[1,129],Pt=[1,133],Ut=[1,131],nt=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],Gt=[1,149],T=[8,9,11],K=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],p=[1,169],O=[1,165],P=[1,166],A=[1,170],d=[1,167],E=[1,168],m1=[75,113,116],g=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],Mt=[10,103],h1=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],J=[1,235],$=[1,233],t1=[1,237],e1=[1,231],s1=[1,232],u1=[1,234],i1=[1,236],r1=[1,238],y1=[1,255],Kt=[8,9,11,103],W=[8,9,10,11,58,81,102,103,106,107,108,109],at={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(a,o,f,r,S,t,N1){var s=t.length-1;switch(S){case 2:this.$=[];break;case 3:(!Array.isArray(t[s])||t[s].length>0)&&t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 176:this.$=t[s];break;case 11:r.setDirection("TB"),this.$="TB";break;case 12:r.setDirection(t[s-1]),this.$=t[s-1];break;case 27:this.$=t[s-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=r.addSubGraph(t[s-6],t[s-1],t[s-4]);break;case 34:this.$=r.addSubGraph(t[s-3],t[s-1],t[s-3]);break;case 35:this.$=r.addSubGraph(void 0,t[s-1],void 0);break;case 37:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 38:case 39:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 43:r.addLink(t[s-2].stmt,t[s],t[s-1]),this.$={stmt:t[s],nodes:t[s].concat(t[s-2].nodes)};break;case 44:r.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 45:this.$={stmt:t[s-1],nodes:t[s-1]};break;case 46:this.$={stmt:t[s],nodes:t[s]};break;case 47:this.$=[t[s]];break;case 48:this.$=t[s-4].concat(t[s]);break;case 49:this.$=t[s];break;case 50:this.$=t[s-2],r.setClass(t[s-2],t[s]);break;case 51:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"square");break;case 52:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"doublecircle");break;case 53:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"circle");break;case 54:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"ellipse");break;case 55:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"stadium");break;case 56:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"subroutine");break;case 57:this.$=t[s-7],r.addVertex(t[s-7],t[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[t[s-5],t[s-3]]]));break;case 58:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"cylinder");break;case 59:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"round");break;case 60:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"diamond");break;case 61:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"hexagon");break;case 62:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"odd");break;case 63:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"trapezoid");break;case 64:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"inv_trapezoid");break;case 65:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_right");break;case 66:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_left");break;case 67:this.$=t[s],r.addVertex(t[s]);break;case 68:t[s-1].text=t[s],this.$=t[s-1];break;case 69:case 70:t[s-2].text=t[s-1],this.$=t[s-2];break;case 71:this.$=t[s];break;case 72:var Y=r.destructLink(t[s],t[s-2]);this.$={type:Y.type,stroke:Y.stroke,length:Y.length,text:t[s-1]};break;case 73:this.$={text:t[s],type:"text"};break;case 74:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 75:this.$={text:t[s],type:"string"};break;case 76:this.$={text:t[s],type:"markdown"};break;case 77:var Y=r.destructLink(t[s]);this.$={type:Y.type,stroke:Y.stroke,length:Y.length};break;case 78:this.$=t[s-1];break;case 79:this.$={text:t[s],type:"text"};break;case 80:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 81:this.$={text:t[s],type:"string"};break;case 82:case 97:this.$={text:t[s],type:"markdown"};break;case 94:this.$={text:t[s],type:"text"};break;case 95:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 96:this.$={text:t[s],type:"text"};break;case 98:this.$=t[s-4],r.addClass(t[s-2],t[s]);break;case 99:this.$=t[s-4],r.setClass(t[s-2],t[s]);break;case 100:case 108:this.$=t[s-1],r.setClickEvent(t[s-1],t[s]);break;case 101:case 109:this.$=t[s-3],r.setClickEvent(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 102:this.$=t[s-2],r.setClickEvent(t[s-2],t[s-1],t[s]);break;case 103:this.$=t[s-4],r.setClickEvent(t[s-4],t[s-3],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 104:this.$=t[s-2],r.setLink(t[s-2],t[s]);break;case 105:this.$=t[s-4],r.setLink(t[s-4],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 106:this.$=t[s-4],r.setLink(t[s-4],t[s-2],t[s]);break;case 107:this.$=t[s-6],r.setLink(t[s-6],t[s-4],t[s]),r.setTooltip(t[s-6],t[s-2]);break;case 110:this.$=t[s-1],r.setLink(t[s-1],t[s]);break;case 111:this.$=t[s-3],r.setLink(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 112:this.$=t[s-3],r.setLink(t[s-3],t[s-2],t[s]);break;case 113:this.$=t[s-5],r.setLink(t[s-5],t[s-4],t[s]),r.setTooltip(t[s-5],t[s-2]);break;case 114:this.$=t[s-4],r.addVertex(t[s-2],void 0,void 0,t[s]);break;case 115:this.$=t[s-4],r.updateLink([t[s-2]],t[s]);break;case 116:this.$=t[s-4],r.updateLink(t[s-2],t[s]);break;case 117:this.$=t[s-8],r.updateLinkInterpolate([t[s-6]],t[s-2]),r.updateLink([t[s-6]],t[s]);break;case 118:this.$=t[s-8],r.updateLinkInterpolate(t[s-6],t[s-2]),r.updateLink(t[s-6],t[s]);break;case 119:this.$=t[s-6],r.updateLinkInterpolate([t[s-4]],t[s]);break;case 120:this.$=t[s-6],r.updateLinkInterpolate(t[s-4],t[s]);break;case 121:case 123:this.$=[t[s]];break;case 122:case 124:t[s-2].push(t[s]),this.$=t[s-2];break;case 126:this.$=t[s-1]+t[s];break;case 174:this.$=t[s];break;case 175:this.$=t[s-1]+""+t[s];break;case 177:this.$=t[s-1]+""+t[s];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"};break}},table:[{3:1,4:2,9:u,10:i,12:n},{1:[3]},e(c,l,{5:6}),{4:7,9:u,10:i,12:n},{4:8,9:u,10:i,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},e(c,[2,9]),e(c,[2,10]),e(c,[2,11]),{8:[1,54],9:[1,55],10:I1,15:53,18:56},e(b,[2,3]),e(b,[2,4]),e(b,[2,5]),e(b,[2,6]),e(b,[2,7]),e(b,[2,8]),{8:q,9:Q,11:Z,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:q,9:Q,11:Z,21:66},{8:q,9:Q,11:Z,21:67},{8:q,9:Q,11:Z,21:68},{8:q,9:Q,11:Z,21:69},{8:q,9:Q,11:Z,21:70},{8:q,9:Q,10:[1,71],11:Z,21:72},e(b,[2,36]),{35:[1,73]},{37:[1,74]},e(b,[2,39]),e(H1,[2,46],{18:75,10:I1}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:k1,42:b1,58:g1,77:[1,83],86:D1,92:[1,80],94:[1,81],98:82,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},e(b,[2,178]),e(b,[2,179]),e(b,[2,180]),e(b,[2,181]),e(W1,[2,47]),e(W1,[2,49],{44:[1,96]}),e(N,[2,67],{110:109,29:[1,97],42:C,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:k,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),e(M,[2,174]),e(M,[2,135]),e(M,[2,136]),e(M,[2,137]),e(M,[2,138]),e(M,[2,139]),e(M,[2,140]),e(M,[2,141]),e(M,[2,142]),e(M,[2,143]),e(M,[2,144]),e(M,[2,145]),e(c,[2,12]),e(c,[2,18]),e(c,[2,19]),{9:[1,110]},e(Et,[2,26],{18:111,10:I1}),e(b,[2,27]),{40:112,41:38,42:C,43:39,45:40,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(b,[2,40]),e(b,[2,41]),e(b,[2,42]),e(R1,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:kt,116:bt},e([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),e(b,[2,28]),e(b,[2,29]),e(b,[2,30]),e(b,[2,31]),e(b,[2,32]),{10:gt,12:Dt,14:Ft,27:Tt,28:122,32:St,42:Ct,58:_t,73:xt,77:[1,124],78:[1,125],80:135,81:Bt,82:mt,83:yt,84:vt,85:Vt,86:Lt,87:It,88:123,102:Rt,106:Nt,108:wt,111:Ot,112:Pt,113:Ut},e(nt,l,{5:148}),e(b,[2,37]),e(b,[2,38]),e(H1,[2,45],{42:Gt}),{42:C,45:150,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{99:[1,151],100:152,102:[1,153]},{42:C,45:154,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{42:C,45:155,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},e(T,[2,108],{117:160,10:[1,159],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,110],{10:[1,161]}),e(K,[2,176]),e(K,[2,163]),e(K,[2,164]),e(K,[2,165]),e(K,[2,166]),e(K,[2,167]),e(K,[2,168]),e(K,[2,169]),e(K,[2,170]),e(K,[2,171]),e(K,[2,172]),e(K,[2,173]),{42:C,45:162,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{30:163,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:171,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:173,48:[1,172],65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:174,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:175,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:176,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{106:[1,177]},{30:178,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:179,63:[1,180],65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:181,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:182,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:183,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(M,[2,175]),e(c,[2,20]),e(Et,[2,25]),e(H1,[2,43],{18:184,10:I1}),e(R1,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{75:[1,188],76:189,113:kt,116:bt},e(m1,[2,73]),e(m1,[2,75]),e(m1,[2,76]),e(m1,[2,161]),e(m1,[2,162]),{8:q,9:Q,10:gt,11:Z,12:Dt,14:Ft,21:191,27:Tt,29:[1,190],32:St,42:Ct,58:_t,73:xt,80:135,81:Bt,82:mt,83:yt,84:vt,85:Vt,86:Lt,87:It,88:192,102:Rt,106:Nt,108:wt,111:Ot,112:Pt,113:Ut},e(g,[2,94]),e(g,[2,96]),e(g,[2,97]),e(g,[2,150]),e(g,[2,151]),e(g,[2,152]),e(g,[2,153]),e(g,[2,154]),e(g,[2,155]),e(g,[2,156]),e(g,[2,157]),e(g,[2,158]),e(g,[2,159]),e(g,[2,160]),e(g,[2,83]),e(g,[2,84]),e(g,[2,85]),e(g,[2,86]),e(g,[2,87]),e(g,[2,88]),e(g,[2,89]),e(g,[2,90]),e(g,[2,91]),e(g,[2,92]),e(g,[2,93]),{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,193],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},{10:I1,18:194},{10:[1,195],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,196]},{10:[1,197],103:[1,198]},e(Mt,[2,121]),{10:[1,199],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,200],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{77:[1,201]},e(T,[2,102],{10:[1,202]}),e(T,[2,104],{10:[1,203]}),{77:[1,204]},e(K,[2,177]),{77:[1,205],95:[1,206]},e(W1,[2,50],{110:109,42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),{31:[1,207],65:p,79:208,113:A,114:d,115:E},e(h1,[2,79]),e(h1,[2,81]),e(h1,[2,82]),e(h1,[2,146]),e(h1,[2,147]),e(h1,[2,148]),e(h1,[2,149]),{47:[1,209],65:p,79:208,113:A,114:d,115:E},{30:210,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{49:[1,211],65:p,79:208,113:A,114:d,115:E},{51:[1,212],65:p,79:208,113:A,114:d,115:E},{53:[1,213],65:p,79:208,113:A,114:d,115:E},{55:[1,214],65:p,79:208,113:A,114:d,115:E},{58:[1,215]},{62:[1,216],65:p,79:208,113:A,114:d,115:E},{64:[1,217],65:p,79:208,113:A,114:d,115:E},{30:218,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{31:[1,219],65:p,79:208,113:A,114:d,115:E},{65:p,67:[1,220],69:[1,221],79:208,113:A,114:d,115:E},{65:p,67:[1,223],69:[1,222],79:208,113:A,114:d,115:E},e(H1,[2,44],{42:Gt}),e(R1,[2,70]),e(R1,[2,69]),{60:[1,224],65:p,79:208,113:A,114:d,115:E},e(R1,[2,72]),e(m1,[2,74]),{30:225,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(nt,l,{5:226}),e(g,[2,95]),e(b,[2,35]),{41:227,42:C,43:39,45:40,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{10:J,58:$,81:t1,89:228,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:239,101:[1,240],102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:241,101:[1,242],102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{102:[1,243]},{10:J,58:$,81:t1,89:244,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{42:C,45:245,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},e(T,[2,109]),e(T,[2,111],{10:[1,249]}),e(T,[2,112]),e(N,[2,51]),e(h1,[2,80]),e(N,[2,52]),{49:[1,250],65:p,79:208,113:A,114:d,115:E},e(N,[2,59]),e(N,[2,54]),e(N,[2,55]),e(N,[2,56]),{106:[1,251]},e(N,[2,58]),e(N,[2,60]),{64:[1,252],65:p,79:208,113:A,114:d,115:E},e(N,[2,62]),e(N,[2,63]),e(N,[2,65]),e(N,[2,64]),e(N,[2,66]),e([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:p,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,254],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},e(W1,[2,48]),e(T,[2,114],{103:y1}),e(Kt,[2,123],{105:256,10:J,58:$,81:t1,102:e1,106:s1,107:u1,108:i1,109:r1}),e(W,[2,125]),e(W,[2,127]),e(W,[2,128]),e(W,[2,129]),e(W,[2,130]),e(W,[2,131]),e(W,[2,132]),e(W,[2,133]),e(W,[2,134]),e(T,[2,115],{103:y1}),{10:[1,257]},e(T,[2,116],{103:y1}),{10:[1,258]},e(Mt,[2,122]),e(T,[2,98],{103:y1}),e(T,[2,99],{110:109,42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),e(T,[2,103]),e(T,[2,105],{10:[1,259]}),e(T,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:q,9:Q,11:Z,21:264},e(b,[2,34]),{10:J,58:$,81:t1,102:e1,104:265,105:230,106:s1,107:u1,108:i1,109:r1},e(W,[2,126]),{14:k1,42:b1,58:g1,86:D1,98:266,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},{14:k1,42:b1,58:g1,86:D1,98:267,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},{95:[1,268]},e(T,[2,113]),e(N,[2,53]),{30:269,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(N,[2,61]),e(nt,l,{5:270}),e(Kt,[2,124],{105:256,10:J,58:$,81:t1,102:e1,106:s1,107:u1,108:i1,109:r1}),e(T,[2,119],{117:160,10:[1,271],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,120],{117:160,10:[1,272],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,107]),{31:[1,273],65:p,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,274],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},{10:J,58:$,81:t1,89:275,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:276,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},e(N,[2,57]),e(b,[2,33]),e(T,[2,117],{103:y1}),e(T,[2,118],{103:y1})],defaultActions:{},parseError:function(a,o){if(o.recoverable)this.trace(a);else{var f=new Error(a);throw f.hash=o,f}},parse:function(a){var o=this,f=[0],r=[],S=[null],t=[],N1=this.table,s="",Y=0,Yt=0,Ce=2,jt=1,_e=t.slice.call(arguments,1),_=Object.create(this.lexer),d1={yy:{}};for(var ot in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ot)&&(d1.yy[ot]=this.yy[ot]);_.setInput(a,d1.yy),d1.yy.lexer=_,d1.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var lt=_.yylloc;t.push(lt);var xe=_.options&&_.options.ranges;typeof d1.yy.parseError=="function"?this.parseError=d1.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Be(){var a1;return a1=r.pop()||_.lex()||jt,typeof a1!="number"&&(a1 instanceof Array&&(r=a1,a1=r.pop()),a1=o.symbols_[a1]||a1),a1}for(var G,E1,j,ht,v1={},q1,n1,zt,Q1;;){if(E1=f[f.length-1],this.defaultActions[E1]?j=this.defaultActions[E1]:((G===null||typeof G>"u")&&(G=Be()),j=N1[E1]&&N1[E1][G]),typeof j>"u"||!j.length||!j[0]){var ft="";Q1=[];for(q1 in N1[E1])this.terminals_[q1]&&q1>Ce&&Q1.push("'"+this.terminals_[q1]+"'");_.showPosition?ft="Parse error on line "+(Y+1)+`: +import{c as et,v as me,s as ye,g as ve,a as Ve,b as Le,x as Ie,y as Re,l as J1,z as dt,A as Ne,j as we,h as w1}from"./mermaid.core-D8sVPjx9.js";var pt=function(){var e=function(f1,a,o,f){for(o=o||{},f=f1.length;f--;o[f1[f]]=a);return o},u=[1,4],i=[1,3],n=[1,5],c=[1,8,9,10,11,27,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],l=[2,2],h=[1,13],U=[1,14],F=[1,15],w=[1,16],X=[1,23],o1=[1,25],p1=[1,26],A1=[1,27],C=[1,49],k=[1,48],l1=[1,29],U1=[1,30],G1=[1,31],M1=[1,32],K1=[1,33],x=[1,44],B=[1,46],m=[1,42],y=[1,47],v=[1,43],V=[1,50],L=[1,45],I=[1,51],R=[1,52],Y1=[1,34],j1=[1,35],z1=[1,36],X1=[1,37],I1=[1,57],b=[1,8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],q=[1,61],Q=[1,60],Z=[1,62],H1=[8,9,11,73,75],k1=[1,88],b1=[1,93],g1=[1,92],D1=[1,89],F1=[1,85],T1=[1,91],S1=[1,87],C1=[1,94],_1=[1,90],x1=[1,95],B1=[1,86],W1=[8,9,10,11,73,75],N=[8,9,10,11,44,73,75],M=[8,9,10,11,29,42,44,46,48,50,52,54,56,58,61,63,65,66,68,73,75,86,99,102,103,106,108,111,112,113],Et=[8,9,11,42,58,73,75,86,99,102,103,106,108,111,112,113],R1=[42,58,86,99,102,103,106,108,111,112,113],kt=[1,121],bt=[1,120],gt=[1,128],Dt=[1,142],Ft=[1,143],Tt=[1,144],St=[1,145],Ct=[1,130],_t=[1,132],xt=[1,136],Bt=[1,137],mt=[1,138],yt=[1,139],vt=[1,140],Vt=[1,141],Lt=[1,146],It=[1,147],Rt=[1,126],Nt=[1,127],wt=[1,134],Ot=[1,129],Pt=[1,133],Ut=[1,131],nt=[8,9,10,11,27,32,34,36,38,42,58,81,82,83,84,85,86,99,102,103,106,108,111,112,113,118,119,120,121],Gt=[1,149],T=[8,9,11],K=[8,9,10,11,14,42,58,86,102,103,106,108,111,112,113],p=[1,169],O=[1,165],P=[1,166],A=[1,170],d=[1,167],E=[1,168],m1=[75,113,116],g=[8,9,10,11,12,14,27,29,32,42,58,73,81,82,83,84,85,86,87,102,106,108,111,112,113],Mt=[10,103],h1=[31,47,49,51,53,55,60,62,64,65,67,69,113,114,115],J=[1,235],$=[1,233],t1=[1,237],e1=[1,231],s1=[1,232],u1=[1,234],i1=[1,236],r1=[1,238],y1=[1,255],Kt=[8,9,11,103],W=[8,9,10,11,58,81,102,103,106,107,108,109],at={trace:function(){},yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,link:39,node:40,styledVertex:41,AMP:42,vertex:43,STYLE_SEPARATOR:44,idString:45,DOUBLECIRCLESTART:46,DOUBLECIRCLEEND:47,PS:48,PE:49,"(-":50,"-)":51,STADIUMSTART:52,STADIUMEND:53,SUBROUTINESTART:54,SUBROUTINEEND:55,VERTEX_WITH_PROPS_START:56,"NODE_STRING[field]":57,COLON:58,"NODE_STRING[value]":59,PIPE:60,CYLINDERSTART:61,CYLINDEREND:62,DIAMOND_START:63,DIAMOND_STOP:64,TAGEND:65,TRAPSTART:66,TRAPEND:67,INVTRAPSTART:68,INVTRAPEND:69,linkStatement:70,arrowText:71,TESTSTR:72,START_LINK:73,edgeText:74,LINK:75,edgeTextToken:76,STR:77,MD_STR:78,textToken:79,keywords:80,STYLE:81,LINKSTYLE:82,CLASSDEF:83,CLASS:84,CLICK:85,DOWN:86,UP:87,textNoTagsToken:88,stylesOpt:89,"idString[vertex]":90,"idString[class]":91,CALLBACKNAME:92,CALLBACKARGS:93,HREF:94,LINK_TARGET:95,"STR[link]":96,"STR[tooltip]":97,alphaNum:98,DEFAULT:99,numList:100,INTERPOLATE:101,NUM:102,COMMA:103,style:104,styleComponent:105,NODE_STRING:106,UNIT:107,BRKT:108,PCT:109,idStringToken:110,MINUS:111,MULT:112,UNICODE_TEXT:113,TEXT:114,TAGSTART:115,EDGE_TEXT:116,alphaNumToken:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",42:"AMP",44:"STYLE_SEPARATOR",46:"DOUBLECIRCLESTART",47:"DOUBLECIRCLEEND",48:"PS",49:"PE",50:"(-",51:"-)",52:"STADIUMSTART",53:"STADIUMEND",54:"SUBROUTINESTART",55:"SUBROUTINEEND",56:"VERTEX_WITH_PROPS_START",57:"NODE_STRING[field]",58:"COLON",59:"NODE_STRING[value]",60:"PIPE",61:"CYLINDERSTART",62:"CYLINDEREND",63:"DIAMOND_START",64:"DIAMOND_STOP",65:"TAGEND",66:"TRAPSTART",67:"TRAPEND",68:"INVTRAPSTART",69:"INVTRAPEND",72:"TESTSTR",73:"START_LINK",75:"LINK",77:"STR",78:"MD_STR",81:"STYLE",82:"LINKSTYLE",83:"CLASSDEF",84:"CLASS",85:"CLICK",86:"DOWN",87:"UP",90:"idString[vertex]",91:"idString[class]",92:"CALLBACKNAME",93:"CALLBACKARGS",94:"HREF",95:"LINK_TARGET",96:"STR[link]",97:"STR[tooltip]",99:"DEFAULT",101:"INTERPOLATE",102:"NUM",103:"COMMA",106:"NODE_STRING",107:"UNIT",108:"BRKT",109:"PCT",111:"MINUS",112:"MULT",113:"UNICODE_TEXT",114:"TEXT",115:"TAGSTART",116:"EDGE_TEXT",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[20,3],[20,4],[20,2],[20,1],[40,1],[40,5],[41,1],[41,3],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,8],[43,4],[43,4],[43,4],[43,6],[43,4],[43,4],[43,4],[43,4],[43,4],[43,1],[39,2],[39,3],[39,3],[39,1],[39,3],[74,1],[74,2],[74,1],[74,1],[70,1],[71,3],[30,1],[30,2],[30,1],[30,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[100,1],[100,3],[89,1],[89,3],[104,1],[104,2],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[105,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[110,1],[79,1],[79,1],[79,1],[79,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[76,1],[76,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[117,1],[45,1],[45,2],[98,1],[98,2],[33,1],[33,1],[33,1],[33,1]],performAction:function(a,o,f,r,S,t,N1){var s=t.length-1;switch(S){case 2:this.$=[];break;case 3:(!Array.isArray(t[s])||t[s].length>0)&&t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 176:this.$=t[s];break;case 11:r.setDirection("TB"),this.$="TB";break;case 12:r.setDirection(t[s-1]),this.$=t[s-1];break;case 27:this.$=t[s-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=r.addSubGraph(t[s-6],t[s-1],t[s-4]);break;case 34:this.$=r.addSubGraph(t[s-3],t[s-1],t[s-3]);break;case 35:this.$=r.addSubGraph(void 0,t[s-1],void 0);break;case 37:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 38:case 39:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 43:r.addLink(t[s-2].stmt,t[s],t[s-1]),this.$={stmt:t[s],nodes:t[s].concat(t[s-2].nodes)};break;case 44:r.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 45:this.$={stmt:t[s-1],nodes:t[s-1]};break;case 46:this.$={stmt:t[s],nodes:t[s]};break;case 47:this.$=[t[s]];break;case 48:this.$=t[s-4].concat(t[s]);break;case 49:this.$=t[s];break;case 50:this.$=t[s-2],r.setClass(t[s-2],t[s]);break;case 51:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"square");break;case 52:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"doublecircle");break;case 53:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"circle");break;case 54:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"ellipse");break;case 55:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"stadium");break;case 56:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"subroutine");break;case 57:this.$=t[s-7],r.addVertex(t[s-7],t[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[t[s-5],t[s-3]]]));break;case 58:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"cylinder");break;case 59:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"round");break;case 60:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"diamond");break;case 61:this.$=t[s-5],r.addVertex(t[s-5],t[s-2],"hexagon");break;case 62:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"odd");break;case 63:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"trapezoid");break;case 64:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"inv_trapezoid");break;case 65:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_right");break;case 66:this.$=t[s-3],r.addVertex(t[s-3],t[s-1],"lean_left");break;case 67:this.$=t[s],r.addVertex(t[s]);break;case 68:t[s-1].text=t[s],this.$=t[s-1];break;case 69:case 70:t[s-2].text=t[s-1],this.$=t[s-2];break;case 71:this.$=t[s];break;case 72:var Y=r.destructLink(t[s],t[s-2]);this.$={type:Y.type,stroke:Y.stroke,length:Y.length,text:t[s-1]};break;case 73:this.$={text:t[s],type:"text"};break;case 74:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 75:this.$={text:t[s],type:"string"};break;case 76:this.$={text:t[s],type:"markdown"};break;case 77:var Y=r.destructLink(t[s]);this.$={type:Y.type,stroke:Y.stroke,length:Y.length};break;case 78:this.$=t[s-1];break;case 79:this.$={text:t[s],type:"text"};break;case 80:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 81:this.$={text:t[s],type:"string"};break;case 82:case 97:this.$={text:t[s],type:"markdown"};break;case 94:this.$={text:t[s],type:"text"};break;case 95:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 96:this.$={text:t[s],type:"text"};break;case 98:this.$=t[s-4],r.addClass(t[s-2],t[s]);break;case 99:this.$=t[s-4],r.setClass(t[s-2],t[s]);break;case 100:case 108:this.$=t[s-1],r.setClickEvent(t[s-1],t[s]);break;case 101:case 109:this.$=t[s-3],r.setClickEvent(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 102:this.$=t[s-2],r.setClickEvent(t[s-2],t[s-1],t[s]);break;case 103:this.$=t[s-4],r.setClickEvent(t[s-4],t[s-3],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 104:this.$=t[s-2],r.setLink(t[s-2],t[s]);break;case 105:this.$=t[s-4],r.setLink(t[s-4],t[s-2]),r.setTooltip(t[s-4],t[s]);break;case 106:this.$=t[s-4],r.setLink(t[s-4],t[s-2],t[s]);break;case 107:this.$=t[s-6],r.setLink(t[s-6],t[s-4],t[s]),r.setTooltip(t[s-6],t[s-2]);break;case 110:this.$=t[s-1],r.setLink(t[s-1],t[s]);break;case 111:this.$=t[s-3],r.setLink(t[s-3],t[s-2]),r.setTooltip(t[s-3],t[s]);break;case 112:this.$=t[s-3],r.setLink(t[s-3],t[s-2],t[s]);break;case 113:this.$=t[s-5],r.setLink(t[s-5],t[s-4],t[s]),r.setTooltip(t[s-5],t[s-2]);break;case 114:this.$=t[s-4],r.addVertex(t[s-2],void 0,void 0,t[s]);break;case 115:this.$=t[s-4],r.updateLink([t[s-2]],t[s]);break;case 116:this.$=t[s-4],r.updateLink(t[s-2],t[s]);break;case 117:this.$=t[s-8],r.updateLinkInterpolate([t[s-6]],t[s-2]),r.updateLink([t[s-6]],t[s]);break;case 118:this.$=t[s-8],r.updateLinkInterpolate(t[s-6],t[s-2]),r.updateLink(t[s-6],t[s]);break;case 119:this.$=t[s-6],r.updateLinkInterpolate([t[s-4]],t[s]);break;case 120:this.$=t[s-6],r.updateLinkInterpolate(t[s-4],t[s]);break;case 121:case 123:this.$=[t[s]];break;case 122:case 124:t[s-2].push(t[s]),this.$=t[s-2];break;case 126:this.$=t[s-1]+t[s];break;case 174:this.$=t[s];break;case 175:this.$=t[s-1]+""+t[s];break;case 177:this.$=t[s-1]+""+t[s];break;case 178:this.$={stmt:"dir",value:"TB"};break;case 179:this.$={stmt:"dir",value:"BT"};break;case 180:this.$={stmt:"dir",value:"RL"};break;case 181:this.$={stmt:"dir",value:"LR"};break}},table:[{3:1,4:2,9:u,10:i,12:n},{1:[3]},e(c,l,{5:6}),{4:7,9:u,10:i,12:n},{4:8,9:u,10:i,12:n},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},e(c,[2,9]),e(c,[2,10]),e(c,[2,11]),{8:[1,54],9:[1,55],10:I1,15:53,18:56},e(b,[2,3]),e(b,[2,4]),e(b,[2,5]),e(b,[2,6]),e(b,[2,7]),e(b,[2,8]),{8:q,9:Q,11:Z,21:58,39:59,70:63,73:[1,64],75:[1,65]},{8:q,9:Q,11:Z,21:66},{8:q,9:Q,11:Z,21:67},{8:q,9:Q,11:Z,21:68},{8:q,9:Q,11:Z,21:69},{8:q,9:Q,11:Z,21:70},{8:q,9:Q,10:[1,71],11:Z,21:72},e(b,[2,36]),{35:[1,73]},{37:[1,74]},e(b,[2,39]),e(H1,[2,46],{18:75,10:I1}),{10:[1,76]},{10:[1,77]},{10:[1,78]},{10:[1,79]},{14:k1,42:b1,58:g1,77:[1,83],86:D1,92:[1,80],94:[1,81],98:82,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},e(b,[2,178]),e(b,[2,179]),e(b,[2,180]),e(b,[2,181]),e(W1,[2,47]),e(W1,[2,49],{44:[1,96]}),e(N,[2,67],{110:109,29:[1,97],42:C,46:[1,98],48:[1,99],50:[1,100],52:[1,101],54:[1,102],56:[1,103],58:k,61:[1,104],63:[1,105],65:[1,106],66:[1,107],68:[1,108],86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),e(M,[2,174]),e(M,[2,135]),e(M,[2,136]),e(M,[2,137]),e(M,[2,138]),e(M,[2,139]),e(M,[2,140]),e(M,[2,141]),e(M,[2,142]),e(M,[2,143]),e(M,[2,144]),e(M,[2,145]),e(c,[2,12]),e(c,[2,18]),e(c,[2,19]),{9:[1,110]},e(Et,[2,26],{18:111,10:I1}),e(b,[2,27]),{40:112,41:38,42:C,43:39,45:40,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(b,[2,40]),e(b,[2,41]),e(b,[2,42]),e(R1,[2,71],{71:113,60:[1,115],72:[1,114]}),{74:116,76:117,77:[1,118],78:[1,119],113:kt,116:bt},e([42,58,60,72,86,99,102,103,106,108,111,112,113],[2,77]),e(b,[2,28]),e(b,[2,29]),e(b,[2,30]),e(b,[2,31]),e(b,[2,32]),{10:gt,12:Dt,14:Ft,27:Tt,28:122,32:St,42:Ct,58:_t,73:xt,77:[1,124],78:[1,125],80:135,81:Bt,82:mt,83:yt,84:vt,85:Vt,86:Lt,87:It,88:123,102:Rt,106:Nt,108:wt,111:Ot,112:Pt,113:Ut},e(nt,l,{5:148}),e(b,[2,37]),e(b,[2,38]),e(H1,[2,45],{42:Gt}),{42:C,45:150,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{99:[1,151],100:152,102:[1,153]},{42:C,45:154,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{42:C,45:155,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,100],{10:[1,156],93:[1,157]}),{77:[1,158]},e(T,[2,108],{117:160,10:[1,159],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,110],{10:[1,161]}),e(K,[2,176]),e(K,[2,163]),e(K,[2,164]),e(K,[2,165]),e(K,[2,166]),e(K,[2,167]),e(K,[2,168]),e(K,[2,169]),e(K,[2,170]),e(K,[2,171]),e(K,[2,172]),e(K,[2,173]),{42:C,45:162,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{30:163,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:171,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:173,48:[1,172],65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:174,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:175,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:176,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{106:[1,177]},{30:178,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:179,63:[1,180],65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:181,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:182,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{30:183,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(M,[2,175]),e(c,[2,20]),e(Et,[2,25]),e(H1,[2,43],{18:184,10:I1}),e(R1,[2,68],{10:[1,185]}),{10:[1,186]},{30:187,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{75:[1,188],76:189,113:kt,116:bt},e(m1,[2,73]),e(m1,[2,75]),e(m1,[2,76]),e(m1,[2,161]),e(m1,[2,162]),{8:q,9:Q,10:gt,11:Z,12:Dt,14:Ft,21:191,27:Tt,29:[1,190],32:St,42:Ct,58:_t,73:xt,80:135,81:Bt,82:mt,83:yt,84:vt,85:Vt,86:Lt,87:It,88:192,102:Rt,106:Nt,108:wt,111:Ot,112:Pt,113:Ut},e(g,[2,94]),e(g,[2,96]),e(g,[2,97]),e(g,[2,150]),e(g,[2,151]),e(g,[2,152]),e(g,[2,153]),e(g,[2,154]),e(g,[2,155]),e(g,[2,156]),e(g,[2,157]),e(g,[2,158]),e(g,[2,159]),e(g,[2,160]),e(g,[2,83]),e(g,[2,84]),e(g,[2,85]),e(g,[2,86]),e(g,[2,87]),e(g,[2,88]),e(g,[2,89]),e(g,[2,90]),e(g,[2,91]),e(g,[2,92]),e(g,[2,93]),{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,193],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},{10:I1,18:194},{10:[1,195],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,196]},{10:[1,197],103:[1,198]},e(Mt,[2,121]),{10:[1,199],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{10:[1,200],42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:109,111:L,112:I,113:R},{77:[1,201]},e(T,[2,102],{10:[1,202]}),e(T,[2,104],{10:[1,203]}),{77:[1,204]},e(K,[2,177]),{77:[1,205],95:[1,206]},e(W1,[2,50],{110:109,42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),{31:[1,207],65:p,79:208,113:A,114:d,115:E},e(h1,[2,79]),e(h1,[2,81]),e(h1,[2,82]),e(h1,[2,146]),e(h1,[2,147]),e(h1,[2,148]),e(h1,[2,149]),{47:[1,209],65:p,79:208,113:A,114:d,115:E},{30:210,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{49:[1,211],65:p,79:208,113:A,114:d,115:E},{51:[1,212],65:p,79:208,113:A,114:d,115:E},{53:[1,213],65:p,79:208,113:A,114:d,115:E},{55:[1,214],65:p,79:208,113:A,114:d,115:E},{58:[1,215]},{62:[1,216],65:p,79:208,113:A,114:d,115:E},{64:[1,217],65:p,79:208,113:A,114:d,115:E},{30:218,65:p,77:O,78:P,79:164,113:A,114:d,115:E},{31:[1,219],65:p,79:208,113:A,114:d,115:E},{65:p,67:[1,220],69:[1,221],79:208,113:A,114:d,115:E},{65:p,67:[1,223],69:[1,222],79:208,113:A,114:d,115:E},e(H1,[2,44],{42:Gt}),e(R1,[2,70]),e(R1,[2,69]),{60:[1,224],65:p,79:208,113:A,114:d,115:E},e(R1,[2,72]),e(m1,[2,74]),{30:225,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(nt,l,{5:226}),e(g,[2,95]),e(b,[2,35]),{41:227,42:C,43:39,45:40,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},{10:J,58:$,81:t1,89:228,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:239,101:[1,240],102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:241,101:[1,242],102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{102:[1,243]},{10:J,58:$,81:t1,89:244,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{42:C,45:245,58:k,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R},e(T,[2,101]),{77:[1,246]},{77:[1,247],95:[1,248]},e(T,[2,109]),e(T,[2,111],{10:[1,249]}),e(T,[2,112]),e(N,[2,51]),e(h1,[2,80]),e(N,[2,52]),{49:[1,250],65:p,79:208,113:A,114:d,115:E},e(N,[2,59]),e(N,[2,54]),e(N,[2,55]),e(N,[2,56]),{106:[1,251]},e(N,[2,58]),e(N,[2,60]),{64:[1,252],65:p,79:208,113:A,114:d,115:E},e(N,[2,62]),e(N,[2,63]),e(N,[2,65]),e(N,[2,64]),e(N,[2,66]),e([10,42,58,86,99,102,103,106,108,111,112,113],[2,78]),{31:[1,253],65:p,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,254],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},e(W1,[2,48]),e(T,[2,114],{103:y1}),e(Kt,[2,123],{105:256,10:J,58:$,81:t1,102:e1,106:s1,107:u1,108:i1,109:r1}),e(W,[2,125]),e(W,[2,127]),e(W,[2,128]),e(W,[2,129]),e(W,[2,130]),e(W,[2,131]),e(W,[2,132]),e(W,[2,133]),e(W,[2,134]),e(T,[2,115],{103:y1}),{10:[1,257]},e(T,[2,116],{103:y1}),{10:[1,258]},e(Mt,[2,122]),e(T,[2,98],{103:y1}),e(T,[2,99],{110:109,42:C,58:k,86:x,99:B,102:m,103:y,106:v,108:V,111:L,112:I,113:R}),e(T,[2,103]),e(T,[2,105],{10:[1,259]}),e(T,[2,106]),{95:[1,260]},{49:[1,261]},{60:[1,262]},{64:[1,263]},{8:q,9:Q,11:Z,21:264},e(b,[2,34]),{10:J,58:$,81:t1,102:e1,104:265,105:230,106:s1,107:u1,108:i1,109:r1},e(W,[2,126]),{14:k1,42:b1,58:g1,86:D1,98:266,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},{14:k1,42:b1,58:g1,86:D1,98:267,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1,117:84},{95:[1,268]},e(T,[2,113]),e(N,[2,53]),{30:269,65:p,77:O,78:P,79:164,113:A,114:d,115:E},e(N,[2,61]),e(nt,l,{5:270}),e(Kt,[2,124],{105:256,10:J,58:$,81:t1,102:e1,106:s1,107:u1,108:i1,109:r1}),e(T,[2,119],{117:160,10:[1,271],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,120],{117:160,10:[1,272],14:k1,42:b1,58:g1,86:D1,102:F1,103:T1,106:S1,108:C1,111:_1,112:x1,113:B1}),e(T,[2,107]),{31:[1,273],65:p,79:208,113:A,114:d,115:E},{6:11,7:12,8:h,9:U,10:F,11:w,20:17,22:18,23:19,24:20,25:21,26:22,27:X,32:[1,274],33:24,34:o1,36:p1,38:A1,40:28,41:38,42:C,43:39,45:40,58:k,81:l1,82:U1,83:G1,84:M1,85:K1,86:x,99:B,102:m,103:y,106:v,108:V,110:41,111:L,112:I,113:R,118:Y1,119:j1,120:z1,121:X1},{10:J,58:$,81:t1,89:275,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},{10:J,58:$,81:t1,89:276,102:e1,104:229,105:230,106:s1,107:u1,108:i1,109:r1},e(N,[2,57]),e(b,[2,33]),e(T,[2,117],{103:y1}),e(T,[2,118],{103:y1})],defaultActions:{},parseError:function(a,o){if(o.recoverable)this.trace(a);else{var f=new Error(a);throw f.hash=o,f}},parse:function(a){var o=this,f=[0],r=[],S=[null],t=[],N1=this.table,s="",Y=0,Yt=0,Ce=2,jt=1,_e=t.slice.call(arguments,1),_=Object.create(this.lexer),d1={yy:{}};for(var ot in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ot)&&(d1.yy[ot]=this.yy[ot]);_.setInput(a,d1.yy),d1.yy.lexer=_,d1.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var lt=_.yylloc;t.push(lt);var xe=_.options&&_.options.ranges;typeof d1.yy.parseError=="function"?this.parseError=d1.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Be(){var a1;return a1=r.pop()||_.lex()||jt,typeof a1!="number"&&(a1 instanceof Array&&(r=a1,a1=r.pop()),a1=o.symbols_[a1]||a1),a1}for(var G,E1,j,ht,v1={},q1,n1,zt,Q1;;){if(E1=f[f.length-1],this.defaultActions[E1]?j=this.defaultActions[E1]:((G===null||typeof G>"u")&&(G=Be()),j=N1[E1]&&N1[E1][G]),typeof j>"u"||!j.length||!j[0]){var ft="";Q1=[];for(q1 in N1[E1])this.terminals_[q1]&&q1>Ce&&Q1.push("'"+this.terminals_[q1]+"'");_.showPosition?ft="Parse error on line "+(Y+1)+`: `+_.showPosition()+` Expecting `+Q1.join(", ")+", got '"+(this.terminals_[G]||G)+"'":ft="Parse error on line "+(Y+1)+": Unexpected "+(G==jt?"end of input":"'"+(this.terminals_[G]||G)+"'"),this.parseError(ft,{text:_.match,token:this.terminals_[G]||G,line:_.yylineno,loc:lt,expected:Q1})}if(j[0]instanceof Array&&j.length>1)throw new Error("Parse Error: multiple actions possible at state: "+E1+", token: "+G);switch(j[0]){case 1:f.push(G),S.push(_.yytext),t.push(_.yylloc),f.push(j[1]),G=null,Yt=_.yyleng,s=_.yytext,Y=_.yylineno,lt=_.yylloc;break;case 2:if(n1=this.productions_[j[1]][1],v1.$=S[S.length-n1],v1._$={first_line:t[t.length-(n1||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(n1||1)].first_column,last_column:t[t.length-1].last_column},xe&&(v1._$.range=[t[t.length-(n1||1)].range[0],t[t.length-1].range[1]]),ht=this.performAction.apply(v1,[s,Yt,Y,d1.yy,j[1],S,t].concat(_e)),typeof ht<"u")return ht;n1&&(f=f.slice(0,-1*n1*2),S=S.slice(0,-1*n1),t=t.slice(0,-1*n1)),f.push(this.productions_[j[1]][0]),S.push(v1.$),t.push(v1._$),zt=N1[f[f.length-2]][f[f.length-1]],f.push(zt);break;case 3:return!0}}return!0}},Se=function(){var f1={EOF:1,parseError:function(o,f){if(this.yy.parser)this.yy.parser.parseError(o,f);else throw new Error(o)},setInput:function(a,o){return this.yy=o||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var o=a.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var o=a.length,f=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===r.length?this.yylloc.first_column:0)+r[r.length-f.length].length-f[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),o=new Array(a.length+1).join("-");return a+this.upcomingInput()+` diff --git a/assets/flowDiagram-b222e15a-EQMov2Ka.js b/assets/flowDiagram-b222e15a-C05KrNLm.js similarity index 97% rename from assets/flowDiagram-b222e15a-EQMov2Ka.js rename to assets/flowDiagram-b222e15a-C05KrNLm.js index aeb9791..c8d34f7 100644 --- a/assets/flowDiagram-b222e15a-EQMov2Ka.js +++ b/assets/flowDiagram-b222e15a-C05KrNLm.js @@ -1,4 +1,4 @@ -import{p as Lt,f as V}from"./flowDb-c1833063-B3SS7hvs.js";import{h as S,f as tt,G as _t}from"./graph-k1ojK0f-.js";import{h as x,o as U,p as Y,q as et,c as G,r as rt,j as at,l as R,t as z,u as Et}from"./mermaid.core-Cio1iadR.js";import{u as Tt,r as Nt,p as At,l as Ct,d as M}from"./layout-CbxIxNpL.js";import{a as N,b as nt,i as st,c as E,e as it,d as ot,f as It,g as Bt,s as Mt}from"./styles-483fbfea-Dbx9RFKS.js";import{l as Dt}from"./line-DOPC82El.js";import"./app-BQ_RvZRm.js";import"./index-01f381cb-DBfo_-ML.js";import"./clone-B4YCsPuJ.js";import"./edges-066a5561-31kAkIJ0.js";import"./createText-ca0c5216-BYApgeQh.js";import"./channel-It_pefhc.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";function Rt(r){if(!r.ok)throw new Error(r.status+" "+r.statusText);return r.text()}function Gt(r,e){return fetch(r,e).then(Rt)}function Pt(r){return(e,t)=>Gt(e,t).then(n=>new DOMParser().parseFromString(n,r))}var Ut=Pt("image/svg+xml"),H={normal:Wt,vee:Vt,undirected:zt};function $t(r){H=r}function Wt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Vt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function zt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Yt(r,e){var t=r;return t.node().appendChild(e.label),N(t,e.labelStyle),t}function Ht(r,e){for(var t=r.append("text"),n=Xt(e.label).split(` +import{p as Lt,f as V}from"./flowDb-c1833063-BJUkj5Yh.js";import{h as S,f as tt,G as _t}from"./graph-BKQChTdx.js";import{h as x,o as U,p as Y,q as et,c as G,r as rt,j as at,l as R,t as z,u as Et}from"./mermaid.core-D8sVPjx9.js";import{u as Tt,r as Nt,p as At,l as Ct,d as M}from"./layout-Bwrh1hP1.js";import{a as N,b as nt,i as st,c as E,e as it,d as ot,f as It,g as Bt,s as Mt}from"./styles-483fbfea-BbaBfEuf.js";import{l as Dt}from"./line-Dh5t0evl.js";import"./app-B7rxM88G.js";import"./index-01f381cb-CtMJaTFR.js";import"./clone-SNQTcLae.js";import"./edges-066a5561-Cesv2_yT.js";import"./createText-ca0c5216-zqCXB1ps.js";import"./channel-tiY1AyWJ.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";function Rt(r){if(!r.ok)throw new Error(r.status+" "+r.statusText);return r.text()}function Gt(r,e){return fetch(r,e).then(Rt)}function Pt(r){return(e,t)=>Gt(e,t).then(n=>new DOMParser().parseFromString(n,r))}var Ut=Pt("image/svg+xml"),H={normal:Wt,vee:Vt,undirected:zt};function $t(r){H=r}function Wt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Vt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function zt(r,e,t,n){var a=r.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto"),s=a.append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");N(s,t[n+"Style"]),t[n+"Class"]&&s.attr("class",t[n+"Class"])}function Yt(r,e){var t=r;return t.node().appendChild(e.label),N(t,e.labelStyle),t}function Ht(r,e){for(var t=r.append("text"),n=Xt(e.label).split(` `),a=0;a0}function T(r,e,t){var n=r.x,a=r.y,s=[],i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;e.forEach(function(p){i=Math.min(i,p.x),o=Math.min(o,p.y)});for(var c=n-r.width/2-i,d=a-r.height/2-o,l=0;l1&&s.sort(function(p,y){var f=p.x-t.x,g=p.y-t.y,k=Math.sqrt(f*f+g*g),I=y.x-t.x,_=y.y-t.y,$=Math.sqrt(I*I+_*_);return k<$?-1:k===$?0:1}),s[0]):(console.log("NO INTERSECTION FOUND, RETURN NODE CENTER",r),r)}function Z(r,e){var t=r.x,n=r.y,a=e.x-t,s=e.y-n,i=r.width/2,o=r.height/2,c,d;return Math.abs(s)*i>Math.abs(a)*o?(s<0&&(o=-o),c=s===0?0:o*a/s,d=o):(a<0&&(i=-i),c=i,d=a===0?0:i*s/a),{x:t+c,y:n+d}}var K={rect:oe,ellipse:le,circle:ce,diamond:de};function ie(r){K=r}function oe(r,e,t){var n=r.insert("rect",":first-child").attr("rx",t.rx).attr("ry",t.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return t.intersect=function(a){return Z(t,a)},n}function le(r,e,t){var n=e.width/2,a=e.height/2,s=r.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",n).attr("ry",a);return t.intersect=function(i){return ct(t,n,a,i)},s}function ce(r,e,t){var n=Math.max(e.width,e.height)/2,a=r.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",n);return t.intersect=function(s){return ne(t,n,s)},a}function de(r,e,t){var n=e.width*Math.SQRT2/2,a=e.height*Math.SQRT2/2,s=[{x:0,y:-a},{x:-n,y:0},{x:0,y:a},{x:n,y:0}],i=r.insert("polygon",":first-child").attr("points",s.map(function(o){return o.x+","+o.y}).join(" "));return t.intersect=function(o){return T(t,s,o)},i}function he(){var r=function(e,t){pe(t);var n=D(e,"output"),a=D(n,"clusters"),s=D(n,"edgePaths"),i=F(D(n,"edgeLabels"),t),o=Q(D(n,"nodes"),t,K);Ct(t),ae(o,t),re(i,t),q(s,t,H);var c=X(a,t);ee(c,t),ve(t)};return r.createNodes=function(e){return arguments.length?(te(e),r):Q},r.createClusters=function(e){return arguments.length?(Ft(e),r):X},r.createEdgeLabels=function(e){return arguments.length?(qt(e),r):F},r.createEdgePaths=function(e){return arguments.length?(Qt(e),r):q},r.shapes=function(e){return arguments.length?(ie(e),r):K},r.arrows=function(e){return arguments.length?($t(e),r):H},r}var ue={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},fe={arrowhead:"normal",curve:U};function pe(r){r.nodes().forEach(function(e){var t=r.node(e);!S(t,"label")&&!r.children(e).length&&(t.label=e),S(t,"paddingX")&&M(t,{paddingLeft:t.paddingX,paddingRight:t.paddingX}),S(t,"paddingY")&&M(t,{paddingTop:t.paddingY,paddingBottom:t.paddingY}),S(t,"padding")&&M(t,{paddingLeft:t.padding,paddingRight:t.padding,paddingTop:t.padding,paddingBottom:t.padding}),M(t,ue),tt(["paddingLeft","paddingRight","paddingTop","paddingBottom"],function(n){t[n]=Number(t[n])}),S(t,"width")&&(t._prevWidth=t.width),S(t,"height")&&(t._prevHeight=t.height)}),r.edges().forEach(function(e){var t=r.edge(e);S(t,"label")||(t.label=""),M(t,fe)})}function ve(r){tt(r.nodes(),function(e){var t=r.node(e);S(t,"_prevWidth")?t.width=t._prevWidth:delete t.width,S(t,"_prevHeight")?t.height=t._prevHeight:delete t.height,delete t._prevWidth,delete t._prevHeight})}function D(r,e){var t=r.select("g."+e);return t.empty()&&(t=r.append("g").attr("class",e)),t}function dt(r,e,t){const n=e.width,a=e.height,s=(n+a)*.9,i=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}],o=A(r,s,s,i);return t.intersect=function(c){return T(t,i,c)},o}function ht(r,e,t){const a=e.height,s=a/4,i=e.width+2*s,o=[{x:s,y:0},{x:i-s,y:0},{x:i,y:-a/2},{x:i-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}],c=A(r,i,a,o);return t.intersect=function(d){return T(t,o,d)},c}function ut(r,e,t){const n=e.width,a=e.height,s=[{x:-a/2,y:0},{x:n,y:0},{x:n,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function ft(r,e,t){const n=e.width,a=e.height,s=[{x:-2*a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function pt(r,e,t){const n=e.width,a=e.height,s=[{x:2*a/6,y:0},{x:n+a/6,y:0},{x:n-2*a/6,y:-a},{x:-a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function vt(r,e,t){const n=e.width,a=e.height,s=[{x:-2*a/6,y:0},{x:n+2*a/6,y:0},{x:n-a/6,y:-a},{x:a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function gt(r,e,t){const n=e.width,a=e.height,s=[{x:a/6,y:0},{x:n-a/6,y:0},{x:n+2*a/6,y:-a},{x:-2*a/6,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function yt(r,e,t){const n=e.width,a=e.height,s=[{x:0,y:0},{x:n+a/2,y:0},{x:n,y:-a/2},{x:n+a/2,y:-a},{x:0,y:-a}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function wt(r,e,t){const n=e.height,a=e.width+n/4,s=r.insert("rect",":first-child").attr("rx",n/2).attr("ry",n/2).attr("x",-a/2).attr("y",-n/2).attr("width",a).attr("height",n);return t.intersect=function(i){return Z(t,i)},s}function mt(r,e,t){const n=e.width,a=e.height,s=[{x:0,y:0},{x:n,y:0},{x:n,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:n+8,y:0},{x:n+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],i=A(r,n,a,s);return t.intersect=function(o){return T(t,s,o)},i}function xt(r,e,t){const n=e.width,a=n/2,s=a/(2.5+n/50),i=e.height+s,o="M 0,"+s+" a "+a+","+s+" 0,0,0 "+n+" 0 a "+a+","+s+" 0,0,0 "+-n+" 0 l 0,"+i+" a "+a+","+s+" 0,0,0 "+n+" 0 l 0,"+-i,c=r.attr("label-offset-y",s).insert("path",":first-child").attr("d",o).attr("transform","translate("+-n/2+","+-(i/2+s)+")");return t.intersect=function(d){const l=Z(t,d),v=l.x-t.x;if(a!=0&&(Math.abs(v)t.height/2-s)){let h=s*s*(1-v*v/(a*a));h!=0&&(h=Math.sqrt(h)),h=s-h,d.y-t.y>0&&(h=-h),l.y+=h}return l},c}function ge(r){r.shapes().question=dt,r.shapes().hexagon=ht,r.shapes().stadium=wt,r.shapes().subroutine=mt,r.shapes().cylinder=xt,r.shapes().rect_left_inv_arrow=ut,r.shapes().lean_right=ft,r.shapes().lean_left=pt,r.shapes().trapezoid=vt,r.shapes().inv_trapezoid=gt,r.shapes().rect_right_inv_arrow=yt}function ye(r){r({question:dt}),r({hexagon:ht}),r({stadium:wt}),r({subroutine:mt}),r({cylinder:xt}),r({rect_left_inv_arrow:ut}),r({lean_right:ft}),r({lean_left:pt}),r({trapezoid:vt}),r({inv_trapezoid:gt}),r({rect_right_inv_arrow:yt})}function A(r,e,t,n){return r.insert("polygon",":first-child").attr("points",n.map(function(a){return a.x+","+a.y}).join(" ")).attr("transform","translate("+-e/2+","+t/2+")")}const we={addToRender:ge,addToRenderV2:ye},bt={},me=function(r){const e=Object.keys(r);for(const t of e)bt[t]=r[t]},kt=async function(r,e,t,n,a,s){const i=n?n.select(`[id="${t}"]`):x(`[id="${t}"]`),o=a||document,c=Object.keys(r);for(const d of c){const l=r[d];let v="default";l.classes.length>0&&(v=l.classes.join(" "));const h=Y(l.styles);let u=l.text!==void 0?l.text:l.id,p;if(et(G().flowchart.htmlLabels)){const g={label:await rt(u.replace(/fa[blrs]?:fa-[\w-]+/g,k=>``),G())};p=nt(i,g).node(),p.parentNode.removeChild(p)}else{const g=o.createElementNS("http://www.w3.org/2000/svg","text");g.setAttribute("style",h.labelStyle.replace("color:","fill:"));const k=u.split(at.lineBreakRegex);for(const I of k){const _=o.createElementNS("http://www.w3.org/2000/svg","tspan");_.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),_.setAttribute("dy","1em"),_.setAttribute("x","1"),_.textContent=I,g.appendChild(_)}p=g}let y=0,f="";switch(l.type){case"round":y=5,f="rect";break;case"square":f="rect";break;case"diamond":f="question";break;case"hexagon":f="hexagon";break;case"odd":f="rect_left_inv_arrow";break;case"lean_right":f="lean_right";break;case"lean_left":f="lean_left";break;case"trapezoid":f="trapezoid";break;case"inv_trapezoid":f="inv_trapezoid";break;case"odd_right":f="rect_left_inv_arrow";break;case"circle":f="circle";break;case"ellipse":f="ellipse";break;case"stadium":f="stadium";break;case"subroutine":f="subroutine";break;case"cylinder":f="cylinder";break;case"group":f="rect";break;default:f="rect"}R.warn("Adding node",l.id,l.domId),e.setNode(s.db.lookUpDomId(l.id),{labelType:"svg",labelStyle:h.labelStyle,shape:f,label:p,rx:y,ry:y,class:v,style:h.style,id:s.db.lookUpDomId(l.id)})}},St=async function(r,e,t){let n=0,a,s;if(r.defaultStyle!==void 0){const i=Y(r.defaultStyle);a=i.style,s=i.labelStyle}for(const i of r){n++;const o="L-"+i.start+"-"+i.end,c="LS-"+i.start,d="LE-"+i.end,l={};i.type==="arrow_open"?l.arrowhead="none":l.arrowhead="normal";let v="",h="";if(i.style!==void 0){const u=Y(i.style);v=u.style,h=u.labelStyle}else switch(i.stroke){case"normal":v="fill:none",a!==void 0&&(v=a),s!==void 0&&(h=s);break;case"dotted":v="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":v=" stroke-width: 3.5px;fill:none";break}l.style=v,l.labelStyle=h,i.interpolate!==void 0?l.curve=z(i.interpolate,U):r.defaultInterpolate!==void 0?l.curve=z(r.defaultInterpolate,U):l.curve=z(bt.curve,U),i.text===void 0?i.style!==void 0&&(l.arrowheadStyle="fill: #333"):(l.arrowheadStyle="fill: #333",l.labelpos="c",et(G().flowchart.htmlLabels)?(l.labelType="html",l.label=`${await rt(i.text.replace(/fa[blrs]?:fa-[\w-]+/g,u=>``),G())}`):(l.labelType="text",l.label=i.text.replace(at.lineBreakRegex,` `),i.style===void 0&&(l.style=l.style||"stroke: #333; stroke-width: 1.5px;fill:none"),l.labelStyle=l.labelStyle.replace("color:","fill:"))),l.id=o,l.class=c+" "+d,l.minlen=i.length||1,e.setEdge(t.db.lookUpDomId(i.start),t.db.lookUpDomId(i.end),l,n)}},xe=function(r,e){return R.info("Extracting classes"),e.db.getClasses()},be=async function(r,e,t,n){R.info("Drawing flowchart");const{securityLevel:a,flowchart:s}=G();let i;a==="sandbox"&&(i=x("#i"+e));const o=a==="sandbox"?x(i.nodes()[0].contentDocument.body):x("body"),c=a==="sandbox"?i.nodes()[0].contentDocument:document;let d=n.db.getDirection();d===void 0&&(d="TD");const l=s.nodeSpacing||50,v=s.rankSpacing||50,h=new _t({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:l,ranksep:v,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});let u;const p=n.db.getSubGraphs();for(let w=p.length-1;w>=0;w--)u=p[w],n.db.addVertex(u.id,u.title,"group",void 0,u.classes);const y=n.db.getVertices();R.warn("Get vertices",y);const f=n.db.getEdges();let g=0;for(g=p.length-1;g>=0;g--){u=p[g],Mt("cluster").append("text");for(let w=0;w{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,ke.setConf(r.flowchart),V.clear(),V.setGen("gen-1")}};export{Pe as diagram}; diff --git a/assets/flowDiagram-v2-13329dc7-08uOBUsR.js b/assets/flowDiagram-v2-13329dc7-08uOBUsR.js deleted file mode 100644 index 3a0a729..0000000 --- a/assets/flowDiagram-v2-13329dc7-08uOBUsR.js +++ /dev/null @@ -1 +0,0 @@ -import{p as e,f as o}from"./flowDb-c1833063-B3SS7hvs.js";import{f as t,g as a}from"./styles-483fbfea-Dbx9RFKS.js";import{aq as i}from"./mermaid.core-Cio1iadR.js";import"./graph-k1ojK0f-.js";import"./layout-CbxIxNpL.js";import"./index-01f381cb-DBfo_-ML.js";import"./clone-B4YCsPuJ.js";import"./edges-066a5561-31kAkIJ0.js";import"./createText-ca0c5216-BYApgeQh.js";import"./line-DOPC82El.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./channel-It_pefhc.js";import"./app-BQ_RvZRm.js";const n={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{n as diagram}; diff --git a/assets/flowDiagram-v2-13329dc7-D1675DB6.js b/assets/flowDiagram-v2-13329dc7-D1675DB6.js new file mode 100644 index 0000000..ce90a12 --- /dev/null +++ b/assets/flowDiagram-v2-13329dc7-D1675DB6.js @@ -0,0 +1 @@ +import{p as e,f as o}from"./flowDb-c1833063-BJUkj5Yh.js";import{f as t,g as a}from"./styles-483fbfea-BbaBfEuf.js";import{aq as i}from"./mermaid.core-D8sVPjx9.js";import"./graph-BKQChTdx.js";import"./layout-Bwrh1hP1.js";import"./index-01f381cb-CtMJaTFR.js";import"./clone-SNQTcLae.js";import"./edges-066a5561-Cesv2_yT.js";import"./createText-ca0c5216-zqCXB1ps.js";import"./line-Dh5t0evl.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";import"./channel-tiY1AyWJ.js";import"./app-B7rxM88G.js";const n={parser:e,db:o,renderer:t,styles:a,init:r=>{r.flowchart||(r.flowchart={}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,i({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}}),t.setConf(r.flowchart),o.clear(),o.setGen("gen-2")}};export{n as diagram}; diff --git a/assets/flowchart-elk-definition-ae0efee6-BvF1eOFQ.js b/assets/flowchart-elk-definition-ae0efee6-CfLg3myy.js similarity index 99% rename from assets/flowchart-elk-definition-ae0efee6-BvF1eOFQ.js rename to assets/flowchart-elk-definition-ae0efee6-CfLg3myy.js index 41420cf..ad4db4f 100644 --- a/assets/flowchart-elk-definition-ae0efee6-BvF1eOFQ.js +++ b/assets/flowchart-elk-definition-ae0efee6-CfLg3myy.js @@ -1,4 +1,4 @@ -import{d as xNe,p as FNe}from"./flowDb-c1833063-B3SS7hvs.js";import{aB as Nse,aC as BNe,l as Ba,h as IO,a$ as xU,u as RNe,p as E0n,t as j0n,o as $U,j as KNe}from"./mermaid.core-Cio1iadR.js";import{i as _Ne,a as HNe,l as qNe,b as UNe,k as GNe,m as zNe}from"./edges-066a5561-31kAkIJ0.js";import{l as XNe}from"./line-DOPC82El.js";import"./app-BQ_RvZRm.js";import"./createText-ca0c5216-BYApgeQh.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";function NU(ct){throw new Error('Could not dynamically require "'+ct+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Bse={exports:{}};(function(ct,_t){(function(Xt){ct.exports=Xt()})(function(){return function(){function Xt(gt,Sr,Di){function y(Ht,Jt){if(!Sr[Ht]){if(!gt[Ht]){var ze=typeof NU=="function"&&NU;if(!Jt&&ze)return ze(Ht,!0);if(Wt)return Wt(Ht,!0);var Yi=new Error("Cannot find module '"+Ht+"'");throw Yi.code="MODULE_NOT_FOUND",Yi}var Ri=Sr[Ht]={exports:{}};gt[Ht][0].call(Ri.exports,function(En){var hu=gt[Ht][1][En];return y(hu||En)},Ri,Ri.exports,Xt,gt,Sr,Di)}return Sr[Ht].exports}for(var Wt=typeof NU=="function"&&NU,Bu=0;Bu0&&arguments[0]!==void 0?arguments[0]:{},Yi=ze.defaultLayoutOptions,Ri=Yi===void 0?{}:Yi,En=ze.algorithms,hu=En===void 0?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:En,Qc=ze.workerFactory,Ru=ze.workerUrl;if(y(this,Ht),this.defaultLayoutOptions=Ri,this.initialized=!1,typeof Ru>"u"&&typeof Qc>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var Pr=Qc;typeof Ru<"u"&&typeof Qc>"u"&&(Pr=function(N1){return new Worker(N1)});var Cf=Pr(Ru);if(typeof Cf.postMessage!="function")throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new Bu(Cf),this.worker.postMessage({cmd:"register",algorithms:hu}).then(function(L1){return Jt.initialized=!0}).catch(console.err)}return Di(Ht,[{key:"layout",value:function(ze){var Yi=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ri=Yi.layoutOptions,En=Ri===void 0?this.defaultLayoutOptions:Ri,hu=Yi.logging,Qc=hu===void 0?!1:hu,Ru=Yi.measureExecutionTime,Pr=Ru===void 0?!1:Ru;return ze?this.worker.postMessage({cmd:"layout",graph:ze,layoutOptions:En,options:{logging:Qc,measureExecutionTime:Pr}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker&&this.worker.terminate()}}]),Ht}();Sr.default=Wt;var Bu=function(){function Ht(Jt){var ze=this;if(y(this,Ht),Jt===void 0)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=Jt,this.worker.onmessage=function(Yi){setTimeout(function(){ze.receive(ze,Yi)},0)}}return Di(Ht,[{key:"postMessage",value:function(ze){var Yi=this.id||0;this.id=Yi+1,ze.id=Yi;var Ri=this;return new Promise(function(En,hu){Ri.resolvers[Yi]=function(Qc,Ru){Qc?(Ri.convertGwtStyleError(Qc),hu(Qc)):En(Ru)},Ri.worker.postMessage(ze)})}},{key:"receive",value:function(ze,Yi){var Ri=Yi.data,En=ze.resolvers[Ri.id];En&&(delete ze.resolvers[Ri.id],Ri.error?En(Ri.error):En(null,Ri.data))}},{key:"terminate",value:function(){this.worker&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(ze){if(ze){var Yi=ze.__java$exception;Yi&&(Yi.cause&&Yi.cause.backingJsObject&&(ze.cause=Yi.cause.backingJsObject,this.convertGwtStyleError(ze.cause)),delete ze.__java$exception)}}}]),Ht}()},{}],2:[function(Xt,gt,Sr){(function(Di){(function(){var y;typeof window<"u"?y=window:typeof Di<"u"?y=Di:typeof self<"u"&&(y=self);var Wt;function Bu(){}function Ht(){}function Jt(){}function ze(){}function Yi(){}function Ri(){}function En(){}function hu(){}function Qc(){}function Ru(){}function Pr(){}function Cf(){}function L1(){}function N1(){}function og(){}function V3(){}function $1(){}function ul(){}function C0n(){}function M0n(){}function J2(){}function F(){}function T0n(){}function mE(){}function A0n(){}function S0n(){}function P0n(){}function I0n(){}function O0n(){}function FU(){}function D0n(){}function L0n(){}function N0n(){}function OO(){}function $0n(){}function x0n(){}function F0n(){}function DO(){}function B0n(){}function R0n(){}function BU(){}function K0n(){}function _0n(){}function yu(){}function ju(){}function Q2(){}function Y2(){}function H0n(){}function q0n(){}function U0n(){}function G0n(){}function RU(){}function Eu(){}function Z2(){}function np(){}function z0n(){}function X0n(){}function LO(){}function V0n(){}function W0n(){}function J0n(){}function Q0n(){}function Y0n(){}function Z0n(){}function nbn(){}function ebn(){}function tbn(){}function ibn(){}function rbn(){}function cbn(){}function ubn(){}function obn(){}function sbn(){}function fbn(){}function hbn(){}function lbn(){}function abn(){}function dbn(){}function bbn(){}function wbn(){}function gbn(){}function pbn(){}function mbn(){}function vbn(){}function kbn(){}function ybn(){}function jbn(){}function Ebn(){}function Cbn(){}function Mbn(){}function Tbn(){}function KU(){}function Abn(){}function Sbn(){}function Pbn(){}function Ibn(){}function NO(){}function $O(){}function vE(){}function Obn(){}function Dbn(){}function xO(){}function Lbn(){}function Nbn(){}function $bn(){}function kE(){}function xbn(){}function Fbn(){}function Bbn(){}function Rbn(){}function Kbn(){}function _bn(){}function Hbn(){}function qbn(){}function Ubn(){}function _U(){}function Gbn(){}function zbn(){}function HU(){}function Xbn(){}function Vbn(){}function Wbn(){}function Jbn(){}function Qbn(){}function Ybn(){}function Zbn(){}function nwn(){}function ewn(){}function twn(){}function iwn(){}function rwn(){}function cwn(){}function FO(){}function uwn(){}function own(){}function swn(){}function fwn(){}function hwn(){}function lwn(){}function awn(){}function dwn(){}function bwn(){}function qU(){}function UU(){}function wwn(){}function gwn(){}function pwn(){}function mwn(){}function vwn(){}function kwn(){}function ywn(){}function jwn(){}function Ewn(){}function Cwn(){}function Mwn(){}function Twn(){}function Awn(){}function Swn(){}function Pwn(){}function Iwn(){}function Own(){}function Dwn(){}function Lwn(){}function Nwn(){}function $wn(){}function xwn(){}function Fwn(){}function Bwn(){}function Rwn(){}function Kwn(){}function _wn(){}function Hwn(){}function qwn(){}function Uwn(){}function Gwn(){}function zwn(){}function Xwn(){}function Vwn(){}function Wwn(){}function Jwn(){}function Qwn(){}function Ywn(){}function Zwn(){}function ngn(){}function egn(){}function tgn(){}function ign(){}function rgn(){}function cgn(){}function ugn(){}function ogn(){}function sgn(){}function fgn(){}function hgn(){}function lgn(){}function agn(){}function dgn(){}function bgn(){}function wgn(){}function ggn(){}function pgn(){}function mgn(){}function vgn(){}function kgn(){}function ygn(){}function jgn(){}function Egn(){}function Cgn(){}function Mgn(){}function Tgn(){}function Agn(){}function Sgn(){}function Pgn(){}function Ign(){}function Ogn(){}function Dgn(){}function Lgn(){}function Ngn(){}function $gn(){}function xgn(){}function Fgn(){}function Bgn(){}function Rgn(){}function Kgn(){}function _gn(){}function Hgn(){}function qgn(){}function Ugn(){}function Ggn(){}function zgn(){}function Xgn(){}function Vgn(){}function Wgn(){}function Jgn(){}function Qgn(){}function Ygn(){}function Zgn(){}function n2n(){}function e2n(){}function t2n(){}function i2n(){}function r2n(){}function c2n(){}function u2n(){}function GU(){}function o2n(){}function s2n(){}function f2n(){}function h2n(){}function l2n(){}function a2n(){}function d2n(){}function b2n(){}function w2n(){}function g2n(){}function p2n(){}function m2n(){}function v2n(){}function k2n(){}function y2n(){}function j2n(){}function E2n(){}function C2n(){}function M2n(){}function T2n(){}function A2n(){}function S2n(){}function P2n(){}function I2n(){}function O2n(){}function D2n(){}function L2n(){}function N2n(){}function $2n(){}function x2n(){}function F2n(){}function B2n(){}function R2n(){}function K2n(){}function _2n(){}function H2n(){}function q2n(){}function U2n(){}function G2n(){}function z2n(){}function X2n(){}function V2n(){}function W2n(){}function J2n(){}function Q2n(){}function Y2n(){}function Z2n(){}function npn(){}function epn(){}function tpn(){}function ipn(){}function rpn(){}function cpn(){}function upn(){}function opn(){}function spn(){}function fpn(){}function hpn(){}function lpn(){}function apn(){}function dpn(){}function bpn(){}function wpn(){}function gpn(){}function ppn(){}function mpn(){}function vpn(){}function kpn(){}function ypn(){}function jpn(){}function Epn(){}function Cpn(){}function Mpn(){}function zU(){}function Tpn(){}function Apn(){}function Spn(){}function Ppn(){}function Ipn(){}function Opn(){}function Dpn(){}function Lpn(){}function Npn(){}function $pn(){}function XU(){}function xpn(){}function Fpn(){}function Bpn(){}function Rpn(){}function Kpn(){}function _pn(){}function VU(){}function WU(){}function Hpn(){}function JU(){}function QU(){}function qpn(){}function Upn(){}function Gpn(){}function zpn(){}function Xpn(){}function Vpn(){}function Wpn(){}function Jpn(){}function Qpn(){}function Ypn(){}function Zpn(){}function YU(){}function n3n(){}function e3n(){}function t3n(){}function i3n(){}function r3n(){}function c3n(){}function u3n(){}function o3n(){}function s3n(){}function f3n(){}function h3n(){}function l3n(){}function a3n(){}function d3n(){}function b3n(){}function w3n(){}function g3n(){}function p3n(){}function m3n(){}function v3n(){}function k3n(){}function y3n(){}function j3n(){}function E3n(){}function C3n(){}function M3n(){}function T3n(){}function A3n(){}function S3n(){}function P3n(){}function I3n(){}function O3n(){}function D3n(){}function L3n(){}function N3n(){}function $3n(){}function x3n(){}function F3n(){}function B3n(){}function R3n(){}function K3n(){}function _3n(){}function H3n(){}function q3n(){}function U3n(){}function G3n(){}function z3n(){}function X3n(){}function V3n(){}function W3n(){}function J3n(){}function Q3n(){}function Y3n(){}function Z3n(){}function n4n(){}function e4n(){}function t4n(){}function i4n(){}function r4n(){}function c4n(){}function u4n(){}function o4n(){}function s4n(){}function f4n(){}function h4n(){}function l4n(){}function a4n(){}function d4n(){}function b4n(){}function w4n(){}function g4n(){}function p4n(){}function m4n(){}function v4n(){}function k4n(){}function y4n(){}function j4n(){}function E4n(){}function C4n(){}function M4n(){}function T4n(){}function A4n(){}function S4n(){}function P4n(){}function I4n(){}function O4n(){}function _se(){}function D4n(){}function L4n(){}function N4n(){}function $4n(){}function x4n(){}function F4n(){}function B4n(){}function R4n(){}function K4n(){}function _4n(){}function H4n(){}function q4n(){}function U4n(){}function G4n(){}function z4n(){}function X4n(){}function V4n(){}function W4n(){}function J4n(){}function Q4n(){}function Y4n(){}function Z4n(){}function nmn(){}function emn(){}function tmn(){}function imn(){}function rmn(){}function BO(){}function RO(){}function cmn(){}function KO(){}function umn(){}function omn(){}function smn(){}function fmn(){}function hmn(){}function lmn(){}function amn(){}function dmn(){}function bmn(){}function wmn(){}function ZU(){}function gmn(){}function pmn(){}function mmn(){}function Hse(){}function vmn(){}function kmn(){}function ymn(){}function jmn(){}function Emn(){}function Cmn(){}function Mmn(){}function Ra(){}function Tmn(){}function ep(){}function nG(){}function Amn(){}function Smn(){}function Pmn(){}function Imn(){}function Omn(){}function Dmn(){}function Lmn(){}function Nmn(){}function $mn(){}function xmn(){}function Fmn(){}function Bmn(){}function Rmn(){}function Kmn(){}function _mn(){}function Hmn(){}function qmn(){}function Umn(){}function Gmn(){}function hn(){}function zmn(){}function Xmn(){}function Vmn(){}function Wmn(){}function Jmn(){}function Qmn(){}function Ymn(){}function Zmn(){}function nvn(){}function evn(){}function tvn(){}function ivn(){}function rvn(){}function _O(){}function cvn(){}function uvn(){}function ovn(){}function yE(){}function svn(){}function HO(){}function jE(){}function fvn(){}function eG(){}function hvn(){}function lvn(){}function avn(){}function dvn(){}function bvn(){}function wvn(){}function EE(){}function gvn(){}function pvn(){}function CE(){}function mvn(){}function ME(){}function vvn(){}function tG(){}function kvn(){}function qO(){}function iG(){}function yvn(){}function jvn(){}function Evn(){}function Cvn(){}function qse(){}function Mvn(){}function Tvn(){}function Avn(){}function Svn(){}function Pvn(){}function Ivn(){}function Ovn(){}function Dvn(){}function Lvn(){}function Nvn(){}function W3(){}function UO(){}function $vn(){}function xvn(){}function Fvn(){}function Bvn(){}function Rvn(){}function Kvn(){}function _vn(){}function Hvn(){}function qvn(){}function Uvn(){}function Gvn(){}function zvn(){}function Xvn(){}function Vvn(){}function Wvn(){}function Jvn(){}function Qvn(){}function Yvn(){}function Zvn(){}function n6n(){}function e6n(){}function t6n(){}function i6n(){}function r6n(){}function c6n(){}function u6n(){}function o6n(){}function s6n(){}function f6n(){}function h6n(){}function l6n(){}function a6n(){}function d6n(){}function b6n(){}function w6n(){}function g6n(){}function p6n(){}function m6n(){}function v6n(){}function k6n(){}function y6n(){}function j6n(){}function E6n(){}function C6n(){}function M6n(){}function T6n(){}function A6n(){}function S6n(){}function P6n(){}function I6n(){}function O6n(){}function D6n(){}function L6n(){}function N6n(){}function $6n(){}function x6n(){}function F6n(){}function B6n(){}function R6n(){}function K6n(){}function _6n(){}function H6n(){}function q6n(){}function U6n(){}function G6n(){}function z6n(){}function X6n(){}function V6n(){}function W6n(){}function J6n(){}function Q6n(){}function Y6n(){}function Z6n(){}function n5n(){}function e5n(){}function t5n(){}function i5n(){}function r5n(){}function c5n(){}function u5n(){}function o5n(){}function s5n(){}function f5n(){}function h5n(){}function l5n(){}function a5n(){}function d5n(){}function b5n(){}function w5n(){}function g5n(){}function p5n(){}function m5n(){}function v5n(){}function k5n(){}function y5n(){}function j5n(){}function E5n(){}function C5n(){}function M5n(){}function T5n(){}function A5n(){}function rG(){}function S5n(){}function P5n(){}function GO(){n6()}function I5n(){u7()}function O5n(){aA()}function D5n(){Q$()}function L5n(){M5()}function N5n(){ann()}function $5n(){qs()}function x5n(){jZ()}function F5n(){zk()}function B5n(){o7()}function R5n(){$7()}function K5n(){aCn()}function _5n(){Hp()}function H5n(){KLn()}function q5n(){yQ()}function U5n(){SOn()}function G5n(){jQ()}function z5n(){pNn()}function X5n(){AOn()}function V5n(){cm()}function W5n(){nxn()}function J5n(){Z$n()}function Q5n(){EDn()}function Y5n(){exn()}function Z5n(){ca()}function n8n(){ZE()}function e8n(){ltn()}function t8n(){cn()}function i8n(){txn()}function r8n(){Pxn()}function c8n(){POn()}function u8n(){nKn()}function o8n(){IOn()}function s8n(){bUn()}function f8n(){qnn()}function h8n(){kl()}function l8n(){wBn()}function a8n(){lc()}function d8n(){ROn()}function b8n(){_p()}function w8n(){Men()}function g8n(){ua()}function p8n(){Ten()}function m8n(){Bf()}function v8n(){Qk()}function k8n(){EF()}function y8n(){Dx()}function cf(){wSn()}function j8n(){YM()}function E8n(){mA()}function cG(){qe()}function C8n(){NT()}function M8n(){YY()}function uG(){D$()}function oG(){KA()}function T8n(){Fen()}function sG(n){Jn(n)}function A8n(n){this.a=n}function TE(n){this.a=n}function S8n(n){this.a=n}function P8n(n){this.a=n}function I8n(n){this.a=n}function O8n(n){this.a=n}function D8n(n){this.a=n}function L8n(n){this.a=n}function fG(n){this.a=n}function hG(n){this.a=n}function N8n(n){this.a=n}function $8n(n){this.a=n}function zO(n){this.a=n}function x8n(n){this.a=n}function F8n(n){this.a=n}function XO(n){this.a=n}function VO(n){this.a=n}function B8n(n){this.a=n}function WO(n){this.a=n}function R8n(n){this.a=n}function K8n(n){this.a=n}function _8n(n){this.a=n}function lG(n){this.b=n}function H8n(n){this.c=n}function q8n(n){this.a=n}function U8n(n){this.a=n}function G8n(n){this.a=n}function z8n(n){this.a=n}function X8n(n){this.a=n}function V8n(n){this.a=n}function W8n(n){this.a=n}function J8n(n){this.a=n}function Q8n(n){this.a=n}function Y8n(n){this.a=n}function Z8n(n){this.a=n}function n9n(n){this.a=n}function e9n(n){this.a=n}function aG(n){this.a=n}function dG(n){this.a=n}function AE(n){this.a=n}function z9(n){this.a=n}function Ka(){this.a=[]}function t9n(n,e){n.a=e}function Use(n,e){n.a=e}function Gse(n,e){n.b=e}function zse(n,e){n.b=e}function Xse(n,e){n.b=e}function bG(n,e){n.j=e}function Vse(n,e){n.g=e}function Wse(n,e){n.i=e}function Jse(n,e){n.c=e}function Qse(n,e){n.c=e}function Yse(n,e){n.d=e}function Zse(n,e){n.d=e}function _a(n,e){n.k=e}function nfe(n,e){n.c=e}function wG(n,e){n.c=e}function gG(n,e){n.a=e}function efe(n,e){n.a=e}function tfe(n,e){n.f=e}function ife(n,e){n.a=e}function rfe(n,e){n.b=e}function JO(n,e){n.d=e}function SE(n,e){n.i=e}function pG(n,e){n.o=e}function cfe(n,e){n.r=e}function ufe(n,e){n.a=e}function ofe(n,e){n.b=e}function i9n(n,e){n.e=e}function sfe(n,e){n.f=e}function mG(n,e){n.g=e}function ffe(n,e){n.e=e}function hfe(n,e){n.f=e}function lfe(n,e){n.f=e}function QO(n,e){n.a=e}function YO(n,e){n.b=e}function afe(n,e){n.n=e}function dfe(n,e){n.a=e}function bfe(n,e){n.c=e}function wfe(n,e){n.c=e}function gfe(n,e){n.c=e}function pfe(n,e){n.a=e}function mfe(n,e){n.a=e}function vfe(n,e){n.d=e}function kfe(n,e){n.d=e}function yfe(n,e){n.e=e}function jfe(n,e){n.e=e}function Efe(n,e){n.g=e}function Cfe(n,e){n.f=e}function Mfe(n,e){n.j=e}function Tfe(n,e){n.a=e}function Afe(n,e){n.a=e}function Sfe(n,e){n.b=e}function r9n(n){n.b=n.a}function c9n(n){n.c=n.d.d}function vG(n){this.a=n}function kG(n){this.a=n}function yG(n){this.a=n}function Ha(n){this.a=n}function qa(n){this.a=n}function X9(n){this.a=n}function u9n(n){this.a=n}function jG(n){this.a=n}function V9(n){this.a=n}function PE(n){this.a=n}function ol(n){this.a=n}function Sb(n){this.a=n}function o9n(n){this.a=n}function s9n(n){this.a=n}function ZO(n){this.b=n}function J3(n){this.b=n}function Q3(n){this.b=n}function nD(n){this.a=n}function f9n(n){this.a=n}function eD(n){this.c=n}function C(n){this.c=n}function h9n(n){this.c=n}function Xv(n){this.d=n}function EG(n){this.a=n}function Te(n){this.a=n}function l9n(n){this.a=n}function CG(n){this.a=n}function MG(n){this.a=n}function TG(n){this.a=n}function AG(n){this.a=n}function SG(n){this.a=n}function PG(n){this.a=n}function Y3(n){this.a=n}function a9n(n){this.a=n}function d9n(n){this.a=n}function Z3(n){this.a=n}function b9n(n){this.a=n}function w9n(n){this.a=n}function g9n(n){this.a=n}function p9n(n){this.a=n}function m9n(n){this.a=n}function v9n(n){this.a=n}function k9n(n){this.a=n}function y9n(n){this.a=n}function j9n(n){this.a=n}function E9n(n){this.a=n}function C9n(n){this.a=n}function M9n(n){this.a=n}function T9n(n){this.a=n}function A9n(n){this.a=n}function S9n(n){this.a=n}function Vv(n){this.a=n}function P9n(n){this.a=n}function I9n(n){this.a=n}function O9n(n){this.a=n}function D9n(n){this.a=n}function IE(n){this.a=n}function L9n(n){this.a=n}function N9n(n){this.a=n}function n4(n){this.a=n}function IG(n){this.a=n}function $9n(n){this.a=n}function x9n(n){this.a=n}function F9n(n){this.a=n}function B9n(n){this.a=n}function R9n(n){this.a=n}function K9n(n){this.a=n}function OG(n){this.a=n}function DG(n){this.a=n}function LG(n){this.a=n}function Wv(n){this.a=n}function OE(n){this.e=n}function e4(n){this.a=n}function _9n(n){this.a=n}function tp(n){this.a=n}function NG(n){this.a=n}function H9n(n){this.a=n}function q9n(n){this.a=n}function U9n(n){this.a=n}function G9n(n){this.a=n}function z9n(n){this.a=n}function X9n(n){this.a=n}function V9n(n){this.a=n}function W9n(n){this.a=n}function J9n(n){this.a=n}function Q9n(n){this.a=n}function Y9n(n){this.a=n}function $G(n){this.a=n}function Z9n(n){this.a=n}function n7n(n){this.a=n}function e7n(n){this.a=n}function t7n(n){this.a=n}function i7n(n){this.a=n}function r7n(n){this.a=n}function c7n(n){this.a=n}function u7n(n){this.a=n}function o7n(n){this.a=n}function s7n(n){this.a=n}function f7n(n){this.a=n}function h7n(n){this.a=n}function l7n(n){this.a=n}function a7n(n){this.a=n}function d7n(n){this.a=n}function b7n(n){this.a=n}function w7n(n){this.a=n}function g7n(n){this.a=n}function p7n(n){this.a=n}function m7n(n){this.a=n}function v7n(n){this.a=n}function k7n(n){this.a=n}function y7n(n){this.a=n}function j7n(n){this.a=n}function E7n(n){this.a=n}function C7n(n){this.a=n}function M7n(n){this.a=n}function T7n(n){this.a=n}function A7n(n){this.a=n}function S7n(n){this.a=n}function P7n(n){this.a=n}function I7n(n){this.a=n}function O7n(n){this.a=n}function D7n(n){this.a=n}function L7n(n){this.a=n}function N7n(n){this.a=n}function $7n(n){this.a=n}function x7n(n){this.a=n}function F7n(n){this.c=n}function B7n(n){this.b=n}function R7n(n){this.a=n}function K7n(n){this.a=n}function _7n(n){this.a=n}function H7n(n){this.a=n}function q7n(n){this.a=n}function U7n(n){this.a=n}function G7n(n){this.a=n}function z7n(n){this.a=n}function X7n(n){this.a=n}function V7n(n){this.a=n}function W7n(n){this.a=n}function J7n(n){this.a=n}function Q7n(n){this.a=n}function Y7n(n){this.a=n}function Z7n(n){this.a=n}function nkn(n){this.a=n}function ekn(n){this.a=n}function tkn(n){this.a=n}function ikn(n){this.a=n}function rkn(n){this.a=n}function ckn(n){this.a=n}function ukn(n){this.a=n}function okn(n){this.a=n}function skn(n){this.a=n}function fkn(n){this.a=n}function hkn(n){this.a=n}function lkn(n){this.a=n}function sl(n){this.a=n}function sg(n){this.a=n}function akn(n){this.a=n}function dkn(n){this.a=n}function bkn(n){this.a=n}function wkn(n){this.a=n}function gkn(n){this.a=n}function pkn(n){this.a=n}function mkn(n){this.a=n}function vkn(n){this.a=n}function kkn(n){this.a=n}function ykn(n){this.a=n}function jkn(n){this.a=n}function Ekn(n){this.a=n}function Ckn(n){this.a=n}function Mkn(n){this.a=n}function Tkn(n){this.a=n}function Akn(n){this.a=n}function Skn(n){this.a=n}function Pkn(n){this.a=n}function Ikn(n){this.a=n}function Okn(n){this.a=n}function Dkn(n){this.a=n}function Lkn(n){this.a=n}function Nkn(n){this.a=n}function $kn(n){this.a=n}function xkn(n){this.a=n}function Fkn(n){this.a=n}function DE(n){this.a=n}function Bkn(n){this.f=n}function Rkn(n){this.a=n}function Kkn(n){this.a=n}function _kn(n){this.a=n}function Hkn(n){this.a=n}function qkn(n){this.a=n}function Ukn(n){this.a=n}function Gkn(n){this.a=n}function zkn(n){this.a=n}function Xkn(n){this.a=n}function Vkn(n){this.a=n}function Wkn(n){this.a=n}function Jkn(n){this.a=n}function Qkn(n){this.a=n}function Ykn(n){this.a=n}function Zkn(n){this.a=n}function nyn(n){this.a=n}function eyn(n){this.a=n}function tyn(n){this.a=n}function iyn(n){this.a=n}function ryn(n){this.a=n}function cyn(n){this.a=n}function uyn(n){this.a=n}function oyn(n){this.a=n}function syn(n){this.a=n}function fyn(n){this.a=n}function hyn(n){this.a=n}function lyn(n){this.a=n}function ayn(n){this.a=n}function tD(n){this.a=n}function xG(n){this.a=n}function lt(n){this.b=n}function dyn(n){this.a=n}function byn(n){this.a=n}function wyn(n){this.a=n}function gyn(n){this.a=n}function pyn(n){this.a=n}function myn(n){this.a=n}function vyn(n){this.a=n}function kyn(n){this.b=n}function yyn(n){this.a=n}function W9(n){this.a=n}function jyn(n){this.a=n}function Eyn(n){this.a=n}function FG(n){this.c=n}function LE(n){this.e=n}function NE(n){this.a=n}function $E(n){this.a=n}function iD(n){this.a=n}function Cyn(n){this.d=n}function Myn(n){this.a=n}function BG(n){this.a=n}function RG(n){this.a=n}function Wd(n){this.e=n}function Pfe(){this.a=0}function de(){Hu(this)}function Z(){pL(this)}function rD(){sIn(this)}function Tyn(){}function Jd(){this.c=Gdn}function Ayn(n,e){n.b+=e}function Ife(n,e){e.Wb(n)}function Ofe(n){return n.a}function Dfe(n){return n.a}function Lfe(n){return n.a}function Nfe(n){return n.a}function $fe(n){return n.a}function M(n){return n.e}function xfe(){return null}function Ffe(){return null}function Bfe(){Cz(),pLe()}function Rfe(n){n.b.Of(n.e)}function Syn(n){n.b=new CD}function Jv(n,e){n.b=e-n.b}function Qv(n,e){n.a=e-n.a}function Bn(n,e){n.push(e)}function Pyn(n,e){n.sort(e)}function Iyn(n,e){e.jd(n.a)}function Kfe(n,e){gi(e,n)}function _fe(n,e,t){n.Yd(t,e)}function J9(n,e){n.e=e,e.b=n}function KG(n){uh(),this.a=n}function Oyn(n){uh(),this.a=n}function Dyn(n){uh(),this.a=n}function cD(n){m0(),this.a=n}function Lyn(n){O4(),VK.le(n)}function _G(){_G=F,new de}function Ua(){YTn.call(this)}function HG(){YTn.call(this)}function qG(){Ua.call(this)}function uD(){Ua.call(this)}function Nyn(){Ua.call(this)}function Q9(){Ua.call(this)}function Cu(){Ua.call(this)}function ip(){Ua.call(this)}function Pe(){Ua.call(this)}function Bo(){Ua.call(this)}function $yn(){Ua.call(this)}function nc(){Ua.call(this)}function xyn(){Ua.call(this)}function Fyn(){this.a=this}function xE(){this.Bb|=256}function Byn(){this.b=new GMn}function Pb(n,e){n.length=e}function FE(n,e){nn(n.a,e)}function Hfe(n,e){bnn(n.c,e)}function qfe(n,e){fi(n.b,e)}function Ufe(n,e){uA(n.a,e)}function Gfe(n,e){cx(n.a,e)}function t4(n,e){it(n.e,e)}function rp(n){jA(n.c,n.b)}function zfe(n,e){n.kc().Nb(e)}function UG(n){this.a=B5e(n)}function ni(){this.a=new de}function Ryn(){this.a=new de}function GG(){this.a=new rCn}function BE(){this.a=new Z}function oD(){this.a=new Z}function zG(){this.a=new Z}function hs(){this.a=new cbn}function Ga(){this.a=new NLn}function XG(){this.a=new _U}function VG(){this.a=new TOn}function WG(){this.a=new BAn}function Kyn(){this.a=new Z}function _yn(){this.a=new Z}function Hyn(){this.a=new Z}function JG(){this.a=new Z}function qyn(){this.d=new Z}function Uyn(){this.a=new zOn}function Gyn(){this.a=new ni}function zyn(){this.a=new de}function Xyn(){this.b=new de}function Vyn(){this.b=new Z}function QG(){this.e=new Z}function Wyn(){this.a=new Z5n}function Jyn(){this.d=new Z}function Qyn(){QIn.call(this)}function Yyn(){QIn.call(this)}function Zyn(){Z.call(this)}function YG(){qG.call(this)}function ZG(){BE.call(this)}function njn(){qC.call(this)}function ejn(){JG.call(this)}function Yv(){Tyn.call(this)}function sD(){Yv.call(this)}function cp(){Tyn.call(this)}function nz(){cp.call(this)}function tjn(){rz.call(this)}function ijn(){rz.call(this)}function rjn(){rz.call(this)}function cjn(){cz.call(this)}function Zv(){svn.call(this)}function ez(){svn.call(this)}function Mu(){Ct.call(this)}function ujn(){yjn.call(this)}function ojn(){yjn.call(this)}function sjn(){de.call(this)}function fjn(){de.call(this)}function hjn(){de.call(this)}function fD(){cxn.call(this)}function ljn(){ni.call(this)}function ajn(){xE.call(this)}function hD(){BX.call(this)}function tz(){de.call(this)}function lD(){BX.call(this)}function aD(){de.call(this)}function djn(){de.call(this)}function iz(){ME.call(this)}function bjn(){iz.call(this)}function wjn(){ME.call(this)}function gjn(){rG.call(this)}function rz(){this.a=new ni}function pjn(){this.a=new de}function mjn(){this.a=new Z}function cz(){this.a=new de}function up(){this.a=new Ct}function vjn(){this.j=new Z}function kjn(){this.a=new mEn}function yjn(){this.a=new mvn}function uz(){this.a=new Z4n}function n6(){n6=F,KK=new Ht}function dD(){dD=F,_K=new Ejn}function bD(){bD=F,HK=new jjn}function jjn(){XO.call(this,"")}function Ejn(){XO.call(this,"")}function Cjn(n){S$n.call(this,n)}function Mjn(n){S$n.call(this,n)}function oz(n){fG.call(this,n)}function sz(n){XEn.call(this,n)}function Xfe(n){XEn.call(this,n)}function Vfe(n){sz.call(this,n)}function Wfe(n){sz.call(this,n)}function Jfe(n){sz.call(this,n)}function Tjn(n){zN.call(this,n)}function Ajn(n){zN.call(this,n)}function Sjn(n){uSn.call(this,n)}function Pjn(n){Oz.call(this,n)}function e6(n){WE.call(this,n)}function fz(n){WE.call(this,n)}function Ijn(n){WE.call(this,n)}function hz(n){mje.call(this,n)}function lz(n){hz.call(this,n)}function ec(n){APn.call(this,n)}function Ojn(n){ec.call(this,n)}function op(){z9.call(this,{})}function Djn(){Djn=F,dQn=new M0n}function RE(){RE=F,GK=new STn}function Ljn(){Ljn=F,oun=new Bu}function az(){az=F,sun=new N1}function KE(){KE=F,P8=new $1}function wD(n){b4(),this.a=n}function gD(n){RQ(),this.a=n}function Qd(n){nN(),this.f=n}function pD(n){nN(),this.f=n}function Njn(n){bSn(),this.a=n}function $jn(n){n.b=null,n.c=0}function Qfe(n,e){n.e=e,bqn(n,e)}function Yfe(n,e){n.a=e,cEe(n)}function mD(n,e,t){n.a[e.g]=t}function Zfe(n,e,t){kke(t,n,e)}function nhe(n,e){Wae(e.i,n.n)}function xjn(n,e){v6e(n).Cd(e)}function ehe(n,e){n.a.ec().Mc(e)}function Fjn(n,e){return n.g-e.g}function the(n,e){return n*n/e}function on(n){return Jn(n),n}function $(n){return Jn(n),n}function Y9(n){return Jn(n),n}function ihe(n){return new AE(n)}function rhe(n){return new qb(n)}function dz(n){return Jn(n),n}function che(n){return Jn(n),n}function _E(n){ec.call(this,n)}function Ir(n){ec.call(this,n)}function Bjn(n){ec.call(this,n)}function vD(n){APn.call(this,n)}function i4(n){ec.call(this,n)}function Gn(n){ec.call(this,n)}function Or(n){ec.call(this,n)}function Rjn(n){ec.call(this,n)}function sp(n){ec.call(this,n)}function Kl(n){ec.call(this,n)}function _l(n){ec.call(this,n)}function fp(n){ec.call(this,n)}function nh(n){ec.call(this,n)}function kD(n){ec.call(this,n)}function Le(n){ec.call(this,n)}function Ku(n){Jn(n),this.a=n}function bz(n){return ld(n),n}function t6(n){TW(n,n.length)}function i6(n){return n.b==n.c}function Ib(n){return!!n&&n.b}function uhe(n){return!!n&&n.k}function ohe(n){return!!n&&n.j}function she(n,e,t){n.c.Ef(e,t)}function Kjn(n,e){n.be(e),e.ae(n)}function hp(n){uh(),this.a=Se(n)}function yD(){this.a=Oe(Se(ur))}function _jn(){throw M(new Pe)}function fhe(){throw M(new Pe)}function wz(){throw M(new Pe)}function Hjn(){throw M(new Pe)}function hhe(){throw M(new Pe)}function lhe(){throw M(new Pe)}function HE(){HE=F,O4()}function Hl(){X9.call(this,"")}function r6(){X9.call(this,"")}function x1(){X9.call(this,"")}function lp(){X9.call(this,"")}function gz(n){Ir.call(this,n)}function pz(n){Ir.call(this,n)}function eh(n){Gn.call(this,n)}function r4(n){Q3.call(this,n)}function qjn(n){r4.call(this,n)}function jD(n){BC.call(this,n)}function ED(n){JX.call(this,n,0)}function CD(){sJ.call(this,12,3)}function T(n,e){return kOn(n,e)}function qE(n,e){return o$(n,e)}function ahe(n,e){return n.a-e.a}function dhe(n,e){return n.a-e.a}function bhe(n,e){return n.a-e.a}function whe(n,e){return e in n.a}function Ujn(n){return n.a?n.b:0}function ghe(n){return n.a?n.b:0}function phe(n,e,t){e.Cd(n.a[t])}function mhe(n,e,t){e.Pe(n.a[t])}function vhe(n,e){n.b=new rr(e)}function khe(n,e){return n.b=e,n}function Gjn(n,e){return n.c=e,n}function zjn(n,e){return n.f=e,n}function yhe(n,e){return n.g=e,n}function mz(n,e){return n.a=e,n}function vz(n,e){return n.f=e,n}function jhe(n,e){return n.k=e,n}function kz(n,e){return n.a=e,n}function Ehe(n,e){return n.e=e,n}function yz(n,e){return n.e=e,n}function Che(n,e){return n.f=e,n}function Mhe(n,e){n.b=!0,n.d=e}function The(n,e){return n.b-e.b}function Ahe(n,e){return n.g-e.g}function She(n,e){return n?0:e-1}function Xjn(n,e){return n?0:e-1}function Phe(n,e){return n?e-1:0}function Ihe(n,e){return n.s-e.s}function Ohe(n,e){return e.rg(n)}function Yd(n,e){return n.b=e,n}function UE(n,e){return n.a=e,n}function Zd(n,e){return n.c=e,n}function n0(n,e){return n.d=e,n}function e0(n,e){return n.e=e,n}function jz(n,e){return n.f=e,n}function c6(n,e){return n.a=e,n}function c4(n,e){return n.b=e,n}function u4(n,e){return n.c=e,n}function an(n,e){return n.c=e,n}function Sn(n,e){return n.b=e,n}function dn(n,e){return n.d=e,n}function bn(n,e){return n.e=e,n}function Dhe(n,e){return n.f=e,n}function wn(n,e){return n.g=e,n}function gn(n,e){return n.a=e,n}function pn(n,e){return n.i=e,n}function mn(n,e){return n.j=e,n}function Lhe(n,e){ca(),ic(e,n)}function Nhe(n,e,t){Jbe(n.a,e,t)}function GE(n){$L.call(this,n)}function Vjn(n){Z5e.call(this,n)}function Wjn(n){SIn.call(this,n)}function Ez(n){SIn.call(this,n)}function F1(n){S0.call(this,n)}function Jjn(n){CN.call(this,n)}function Qjn(n){CN.call(this,n)}function Yjn(){DX.call(this,"")}function Li(){this.a=0,this.b=0}function Zjn(){this.b=0,this.a=0}function nEn(n,e){n.b=0,Zb(n,e)}function eEn(n,e){return n.k=e,n}function $he(n,e){return n.j=e,n}function xhe(n,e){n.c=e,n.b=!0}function tEn(){tEn=F,TQn=Xke()}function B1(){B1=F,voe=rke()}function iEn(){iEn=F,Ti=gye()}function Cz(){Cz=F,Oa=z4()}function o4(){o4=F,Udn=cke()}function rEn(){rEn=F,ise=uke()}function Mz(){Mz=F,yc=tEe()}function uf(n){return n.e&&n.e()}function cEn(n){return n.l|n.m<<22}function uEn(n,e){return n.c._b(e)}function oEn(n,e){return rBn(n.b,e)}function MD(n){return n?n.d:null}function Fhe(n){return n?n.g:null}function Bhe(n){return n?n.i:null}function za(n){return ll(n),n.o}function fg(n,e){return n.a+=e,n}function TD(n,e){return n.a+=e,n}function ql(n,e){return n.a+=e,n}function t0(n,e){return n.a+=e,n}function Tz(n,e){for(;n.Bd(e););}function zE(n){this.a=new ap(n)}function sEn(){throw M(new Pe)}function fEn(){throw M(new Pe)}function hEn(){throw M(new Pe)}function lEn(){throw M(new Pe)}function aEn(){throw M(new Pe)}function dEn(){throw M(new Pe)}function Ul(n){this.a=new iN(n)}function bEn(){this.a=new K5(Rln)}function wEn(){this.b=new K5(rln)}function gEn(){this.a=new K5(f1n)}function pEn(){this.b=new K5(Fq)}function mEn(){this.b=new K5(Fq)}function XE(n){this.a=0,this.b=n}function Az(n){zGn(),ILe(this,n)}function s4(n){return z1(n),n.a}function Z9(n){return n.b!=n.d.c}function Sz(n,e){return n.d[e.p]}function vEn(n,e){return XTe(n,e)}function Pz(n,e,t){n.splice(e,t)}function hg(n,e){for(;n.Re(e););}function kEn(n){n.c?Dqn(n):Lqn(n)}function yEn(){throw M(new Pe)}function jEn(){throw M(new Pe)}function EEn(){throw M(new Pe)}function CEn(){throw M(new Pe)}function MEn(){throw M(new Pe)}function TEn(){throw M(new Pe)}function AEn(){throw M(new Pe)}function SEn(){throw M(new Pe)}function PEn(){throw M(new Pe)}function IEn(){throw M(new Pe)}function Rhe(){throw M(new nc)}function Khe(){throw M(new nc)}function n7(n){this.a=new OEn(n)}function OEn(n){Ume(this,n,jje())}function e7(n){return!n||oIn(n)}function t7(n){return Zf[n]!=-1}function _he(){cP!=0&&(cP=0),uP=-1}function DEn(){RK==null&&(RK=[])}function i7(n,e){Cg.call(this,n,e)}function f4(n,e){i7.call(this,n,e)}function LEn(n,e){this.a=n,this.b=e}function NEn(n,e){this.a=n,this.b=e}function $En(n,e){this.a=n,this.b=e}function xEn(n,e){this.a=n,this.b=e}function FEn(n,e){this.a=n,this.b=e}function BEn(n,e){this.a=n,this.b=e}function REn(n,e){this.a=n,this.b=e}function h4(n,e){this.e=n,this.d=e}function Iz(n,e){this.b=n,this.c=e}function KEn(n,e){this.b=n,this.a=e}function _En(n,e){this.b=n,this.a=e}function HEn(n,e){this.b=n,this.a=e}function qEn(n,e){this.b=n,this.a=e}function UEn(n,e){this.a=n,this.b=e}function AD(n,e){this.a=n,this.b=e}function GEn(n,e){this.a=n,this.f=e}function i0(n,e){this.g=n,this.i=e}function je(n,e){this.f=n,this.g=e}function zEn(n,e){this.b=n,this.c=e}function XEn(n){KX(n.dc()),this.c=n}function Hhe(n,e){this.a=n,this.b=e}function VEn(n,e){this.a=n,this.b=e}function WEn(n){this.a=u(Se(n),15)}function Oz(n){this.a=u(Se(n),15)}function JEn(n){this.a=u(Se(n),85)}function VE(n){this.b=u(Se(n),85)}function WE(n){this.b=u(Se(n),51)}function JE(){this.q=new y.Date}function SD(n,e){this.a=n,this.b=e}function QEn(n,e){return Zc(n.b,e)}function r7(n,e){return n.b.Hc(e)}function YEn(n,e){return n.b.Ic(e)}function ZEn(n,e){return n.b.Qc(e)}function nCn(n,e){return n.b.Hc(e)}function eCn(n,e){return n.c.uc(e)}function tCn(n,e){return rt(n.c,e)}function of(n,e){return n.a._b(e)}function iCn(n,e){return n>e&&e0}function ND(n,e){return Ec(n,e)<0}function vCn(n,e){return JL(n.a,e)}function ole(n,e){yOn.call(this,n,e)}function Bz(n){wN(),uSn.call(this,n)}function Rz(n,e){bPn(n,n.length,e)}function s7(n,e){HPn(n,n.length,e)}function d6(n,e){return n.a.get(e)}function kCn(n,e){return Zc(n.e,e)}function Kz(n){return Jn(n),!1}function _z(n){this.a=u(Se(n),229)}function cC(n){In.call(this,n,21)}function uC(n,e){je.call(this,n,e)}function $D(n,e){je.call(this,n,e)}function yCn(n,e){this.b=n,this.a=e}function oC(n,e){this.d=n,this.e=e}function jCn(n,e){this.a=n,this.b=e}function ECn(n,e){this.a=n,this.b=e}function CCn(n,e){this.a=n,this.b=e}function MCn(n,e){this.a=n,this.b=e}function bp(n,e){this.a=n,this.b=e}function TCn(n,e){this.b=n,this.a=e}function Hz(n,e){this.b=n,this.a=e}function qz(n,e){je.call(this,n,e)}function Uz(n,e){je.call(this,n,e)}function lg(n,e){je.call(this,n,e)}function xD(n,e){je.call(this,n,e)}function FD(n,e){je.call(this,n,e)}function BD(n,e){je.call(this,n,e)}function sC(n,e){je.call(this,n,e)}function Gz(n,e){this.b=n,this.a=e}function fC(n,e){je.call(this,n,e)}function zz(n,e){this.b=n,this.a=e}function hC(n,e){je.call(this,n,e)}function ACn(n,e){this.b=n,this.a=e}function Xz(n,e){je.call(this,n,e)}function RD(n,e){je.call(this,n,e)}function f7(n,e){je.call(this,n,e)}function b6(n,e,t){n.splice(e,0,t)}function sle(n,e,t){n.Mb(t)&&e.Cd(t)}function fle(n,e,t){e.Pe(n.a.Ye(t))}function hle(n,e,t){e.Dd(n.a.Ze(t))}function lle(n,e,t){e.Cd(n.a.Kb(t))}function ale(n,e){return Au(n.c,e)}function dle(n,e){return Au(n.e,e)}function lC(n,e){je.call(this,n,e)}function aC(n,e){je.call(this,n,e)}function w6(n,e){je.call(this,n,e)}function Vz(n,e){je.call(this,n,e)}function ei(n,e){je.call(this,n,e)}function dC(n,e){je.call(this,n,e)}function SCn(n,e){this.a=n,this.b=e}function PCn(n,e){this.a=n,this.b=e}function ICn(n,e){this.a=n,this.b=e}function OCn(n,e){this.a=n,this.b=e}function DCn(n,e){this.a=n,this.b=e}function LCn(n,e){this.a=n,this.b=e}function NCn(n,e){this.b=n,this.a=e}function $Cn(n,e){this.b=n,this.a=e}function Wz(n,e){this.b=n,this.a=e}function d4(n,e){this.c=n,this.d=e}function xCn(n,e){this.e=n,this.d=e}function FCn(n,e){this.a=n,this.b=e}function BCn(n,e){this.a=n,this.b=e}function RCn(n,e){this.a=n,this.b=e}function KCn(n,e){this.b=n,this.a=e}function _Cn(n,e){this.b=e,this.c=n}function bC(n,e){je.call(this,n,e)}function h7(n,e){je.call(this,n,e)}function KD(n,e){je.call(this,n,e)}function Jz(n,e){je.call(this,n,e)}function g6(n,e){je.call(this,n,e)}function _D(n,e){je.call(this,n,e)}function HD(n,e){je.call(this,n,e)}function l7(n,e){je.call(this,n,e)}function Qz(n,e){je.call(this,n,e)}function qD(n,e){je.call(this,n,e)}function p6(n,e){je.call(this,n,e)}function Yz(n,e){je.call(this,n,e)}function m6(n,e){je.call(this,n,e)}function v6(n,e){je.call(this,n,e)}function Db(n,e){je.call(this,n,e)}function UD(n,e){je.call(this,n,e)}function GD(n,e){je.call(this,n,e)}function Zz(n,e){je.call(this,n,e)}function a7(n,e){je.call(this,n,e)}function ag(n,e){je.call(this,n,e)}function zD(n,e){je.call(this,n,e)}function wC(n,e){je.call(this,n,e)}function d7(n,e){je.call(this,n,e)}function Lb(n,e){je.call(this,n,e)}function gC(n,e){je.call(this,n,e)}function nX(n,e){je.call(this,n,e)}function XD(n,e){je.call(this,n,e)}function VD(n,e){je.call(this,n,e)}function WD(n,e){je.call(this,n,e)}function JD(n,e){je.call(this,n,e)}function QD(n,e){je.call(this,n,e)}function YD(n,e){je.call(this,n,e)}function ZD(n,e){je.call(this,n,e)}function HCn(n,e){this.b=n,this.a=e}function eX(n,e){je.call(this,n,e)}function qCn(n,e){this.a=n,this.b=e}function UCn(n,e){this.a=n,this.b=e}function GCn(n,e){this.a=n,this.b=e}function tX(n,e){je.call(this,n,e)}function iX(n,e){je.call(this,n,e)}function zCn(n,e){this.a=n,this.b=e}function ble(n,e){return k4(),e!=n}function b7(n){return oe(n.a),n.b}function nL(n){return yCe(n,n.c),n}function XCn(){return tEn(),new TQn}function VCn(){VC(),this.a=new kV}function WCn(){OA(),this.a=new ni}function JCn(){NN(),this.b=new ni}function QCn(n,e){this.b=n,this.d=e}function YCn(n,e){this.a=n,this.b=e}function ZCn(n,e){this.a=n,this.b=e}function nMn(n,e){this.a=n,this.b=e}function eMn(n,e){this.b=n,this.a=e}function rX(n,e){je.call(this,n,e)}function cX(n,e){je.call(this,n,e)}function pC(n,e){je.call(this,n,e)}function u0(n,e){je.call(this,n,e)}function eL(n,e){je.call(this,n,e)}function mC(n,e){je.call(this,n,e)}function uX(n,e){je.call(this,n,e)}function oX(n,e){je.call(this,n,e)}function w7(n,e){je.call(this,n,e)}function sX(n,e){je.call(this,n,e)}function tL(n,e){je.call(this,n,e)}function vC(n,e){je.call(this,n,e)}function iL(n,e){je.call(this,n,e)}function rL(n,e){je.call(this,n,e)}function cL(n,e){je.call(this,n,e)}function uL(n,e){je.call(this,n,e)}function fX(n,e){je.call(this,n,e)}function oL(n,e){je.call(this,n,e)}function hX(n,e){je.call(this,n,e)}function g7(n,e){je.call(this,n,e)}function sL(n,e){je.call(this,n,e)}function lX(n,e){je.call(this,n,e)}function p7(n,e){je.call(this,n,e)}function aX(n,e){je.call(this,n,e)}function tMn(n,e){this.b=n,this.a=e}function iMn(n,e){this.b=n,this.a=e}function rMn(n,e){this.b=n,this.a=e}function cMn(n,e){this.b=n,this.a=e}function dX(n,e){this.a=n,this.b=e}function uMn(n,e){this.a=n,this.b=e}function oMn(n,e){this.a=n,this.b=e}function V(n,e){this.a=n,this.b=e}function k6(n,e){je.call(this,n,e)}function m7(n,e){je.call(this,n,e)}function wp(n,e){je.call(this,n,e)}function y6(n,e){je.call(this,n,e)}function v7(n,e){je.call(this,n,e)}function fL(n,e){je.call(this,n,e)}function kC(n,e){je.call(this,n,e)}function j6(n,e){je.call(this,n,e)}function hL(n,e){je.call(this,n,e)}function yC(n,e){je.call(this,n,e)}function dg(n,e){je.call(this,n,e)}function k7(n,e){je.call(this,n,e)}function E6(n,e){je.call(this,n,e)}function C6(n,e){je.call(this,n,e)}function y7(n,e){je.call(this,n,e)}function jC(n,e){je.call(this,n,e)}function bg(n,e){je.call(this,n,e)}function lL(n,e){je.call(this,n,e)}function sMn(n,e){je.call(this,n,e)}function EC(n,e){je.call(this,n,e)}function fMn(n,e){this.a=n,this.b=e}function hMn(n,e){this.a=n,this.b=e}function lMn(n,e){this.a=n,this.b=e}function aMn(n,e){this.a=n,this.b=e}function dMn(n,e){this.a=n,this.b=e}function bMn(n,e){this.a=n,this.b=e}function bi(n,e){this.a=n,this.b=e}function wMn(n,e){this.a=n,this.b=e}function gMn(n,e){this.a=n,this.b=e}function pMn(n,e){this.a=n,this.b=e}function mMn(n,e){this.a=n,this.b=e}function vMn(n,e){this.a=n,this.b=e}function kMn(n,e){this.a=n,this.b=e}function yMn(n,e){this.b=n,this.a=e}function jMn(n,e){this.b=n,this.a=e}function EMn(n,e){this.b=n,this.a=e}function CMn(n,e){this.b=n,this.a=e}function MMn(n,e){this.a=n,this.b=e}function TMn(n,e){this.a=n,this.b=e}function CC(n,e){je.call(this,n,e)}function AMn(n,e){this.a=n,this.b=e}function SMn(n,e){this.a=n,this.b=e}function gp(n,e){je.call(this,n,e)}function PMn(n,e){this.f=n,this.c=e}function bX(n,e){return Au(n.g,e)}function wle(n,e){return Au(e.b,n)}function IMn(n,e){return wx(n.a,e)}function gle(n,e){return-n.b.af(e)}function ple(n,e){n&&Xe(hE,n,e)}function wX(n,e){n.i=null,kT(n,e)}function mle(n,e,t){yKn(e,oF(n,t))}function vle(n,e,t){yKn(e,oF(n,t))}function kle(n,e){VMe(n.a,u(e,58))}function OMn(n,e){U4e(n.a,u(e,12))}function MC(n,e){this.a=n,this.b=e}function DMn(n,e){this.a=n,this.b=e}function LMn(n,e){this.a=n,this.b=e}function NMn(n,e){this.a=n,this.b=e}function $Mn(n,e){this.a=n,this.b=e}function xMn(n,e){this.d=n,this.b=e}function FMn(n,e){this.e=n,this.a=e}function j7(n,e){this.b=n,this.c=e}function gX(n,e){this.i=n,this.g=e}function pX(n,e){this.d=n,this.e=e}function yle(n,e){cme(new ne(n),e)}function TC(n){return Rk(n.c,n.b)}function Kr(n){return n?n.md():null}function x(n){return n??null}function Ai(n){return typeof n===nB}function Nb(n){return typeof n===i3}function $b(n){return typeof n===dtn}function o0(n,e){return Ec(n,e)==0}function AC(n,e){return Ec(n,e)>=0}function M6(n,e){return Ec(n,e)!=0}function SC(n,e){return jve(n.Kc(),e)}function _1(n,e){return n.Rd().Xb(e)}function BMn(n){return eo(n),n.d.gc()}function PC(n){return F6(n==null),n}function T6(n,e){return n.a+=""+e,n}function Er(n,e){return n.a+=""+e,n}function A6(n,e){return n.a+=""+e,n}function Dc(n,e){return n.a+=""+e,n}function Be(n,e){return n.a+=""+e,n}function mX(n,e){return n.a+=""+e,n}function jle(n){return""+(Jn(n),n)}function RMn(n){Hu(this),f5(this,n)}function KMn(){oJ(),dW.call(this)}function _Mn(n,e){mW.call(this,n,e)}function HMn(n,e){mW.call(this,n,e)}function IC(n,e){mW.call(this,n,e)}function ir(n,e){xt(n,e,n.c.b,n.c)}function wg(n,e){xt(n,e,n.a,n.a.a)}function vX(n){return Ln(n,0),null}function qMn(){this.b=0,this.a=!1}function UMn(){this.b=0,this.a=!1}function GMn(){this.b=new ap(Qb(12))}function zMn(){zMn=F,kYn=Ce(jx())}function XMn(){XMn=F,HZn=Ce(iqn())}function VMn(){VMn=F,lre=Ce(xxn())}function kX(){kX=F,_G(),fun=new de}function sf(n){return n.a=0,n.b=0,n}function WMn(n,e){return n.a=e.g+1,n}function aL(n,e){Kb.call(this,n,e)}function Mn(n,e){Dt.call(this,n,e)}function gg(n,e){gX.call(this,n,e)}function JMn(n,e){T7.call(this,n,e)}function dL(n,e){Y4.call(this,n,e)}function Ue(n,e){iC(),Xe(yO,n,e)}function QMn(n,e){n.q.setTime(id(e))}function Ele(n){y.clearTimeout(n)}function Cle(n){return Se(n),new S6(n)}function YMn(n,e){return x(n)===x(e)}function ZMn(n,e){return n.a.a.a.cc(e)}function bL(n,e){return qo(n.a,0,e)}function yX(n){return Awe(u(n,74))}function pp(n){return wi((Jn(n),n))}function Mle(n){return wi((Jn(n),n))}function nTn(n){return Yc(n.l,n.m,n.h)}function jX(n,e){return jc(n.a,e.a)}function Tle(n,e){return KPn(n.a,e.a)}function Ale(n,e){return bt(n.a,e.a)}function th(n,e){return n.indexOf(e)}function Sle(n,e){return n.j[e.p]==2}function s0(n,e){return n==e?0:n?1:-1}function OC(n){return n<10?"0"+n:""+n}function Vr(n){return typeof n===dtn}function Ple(n){return n==rb||n==Iw}function Ile(n){return n==rb||n==Pw}function eTn(n,e){return jc(n.g,e.g)}function EX(n){return qr(n.b.b,n,0)}function tTn(){rM.call(this,0,0,0,0)}function ih(){CG.call(this,new Ql)}function CX(n,e){F4(n,0,n.length,e)}function Ole(n,e){return nn(n.a,e),e}function Dle(n,e){return xs(),e.a+=n}function Lle(n,e){return xs(),e.a+=n}function Nle(n,e){return xs(),e.c+=n}function $le(n,e){return nn(n.c,e),n}function MX(n,e){return Mo(n.a,e),n}function iTn(n){this.a=XCn(),this.b=n}function rTn(n){this.a=XCn(),this.b=n}function rr(n){this.a=n.a,this.b=n.b}function S6(n){this.a=n,GO.call(this)}function cTn(n){this.a=n,GO.call(this)}function mp(){Ho.call(this,0,0,0,0)}function DC(n){return Mo(new ii,n)}function uTn(n){return jM(u(n,123))}function fo(n){return n.vh()&&n.wh()}function pg(n){return n!=Jf&&n!=Sa}function hl(n){return n==Br||n==Xr}function mg(n){return n==us||n==Vf}function oTn(n){return n==S2||n==A2}function xle(n,e){return jc(n.g,e.g)}function sTn(n,e){return new Y4(e,n)}function Fle(n,e){return new Y4(e,n)}function TX(n){return rbe(n.b.Kc(),n.a)}function wL(n,e){um(n,e),G4(n,n.D)}function gL(n,e,t){aT(n,e),lT(n,t)}function vg(n,e,t){I0(n,e),P0(n,t)}function Ro(n,e,t){eu(n,e),tu(n,t)}function E7(n,e,t){_4(n,e),q4(n,t)}function C7(n,e,t){H4(n,e),U4(n,t)}function fTn(n,e,t){sV.call(this,n,e,t)}function AX(n){PMn.call(this,n,!0)}function hTn(){uC.call(this,"Tail",3)}function lTn(){uC.call(this,"Head",1)}function H1(n){dh(),mve.call(this,n)}function f0(n){rM.call(this,n,n,n,n)}function pL(n){n.c=K(ki,Fn,1,0,5,1)}function SX(n){return n.b&&xF(n),n.a}function PX(n){return n.b&&xF(n),n.c}function Ble(n,e){qf||(n.b=e)}function Rle(n,e){return n[n.length]=e}function Kle(n,e){return n[n.length]=e}function _le(n,e){return Yb(e,Af(n))}function Hle(n,e){return Yb(e,Af(n))}function qle(n,e){return pT(dN(n.d),e)}function Ule(n,e){return pT(dN(n.g),e)}function Gle(n,e){return pT(dN(n.j),e)}function Ni(n,e){Dt.call(this,n.b,e)}function zle(n,e){ve(Sc(n.a),DOn(e))}function Xle(n,e){ve(no(n.a),LOn(e))}function Vle(n,e,t){Ro(t,t.i+n,t.j+e)}function aTn(n,e,t){$t(n.c[e.g],e.g,t)}function Wle(n,e,t){u(n.c,71).Gi(e,t)}function mL(n,e,t){return $t(n,e,t),t}function dTn(n){nu(n.Sf(),new D9n(n))}function kg(n){return n!=null?mt(n):0}function Jle(n){return n==null?0:mt(n)}function P6(n){nt(),Wd.call(this,n)}function bTn(n){this.a=n,qV.call(this,n)}function Mf(){Mf=F,y.Math.log(2)}function Ko(){Ko=F,rl=(pCn(),Moe)}function wTn(){wTn=F,YH=new j5(aU)}function Ie(){Ie=F,new gTn,new Z}function gTn(){new de,new de,new de}function Qle(){throw M(new Kl(QJn))}function Yle(){throw M(new Kl(QJn))}function Zle(){throw M(new Kl(YJn))}function n1e(){throw M(new Kl(YJn))}function vL(n){this.a=n,VE.call(this,n)}function kL(n){this.a=n,VE.call(this,n)}function pTn(n,e){m0(),this.a=n,this.b=e}function e1e(n,e){Se(e),Tg(n).Jc(new Ru)}function Yt(n,e){QL(n.c,n.c.length,e)}function tc(n){return n.ae?1:0}function OX(n,e){return Ec(n,e)>0?n:e}function Yc(n,e,t){return{l:n,m:e,h:t}}function t1e(n,e){n.a!=null&&OMn(e,n.a)}function i1e(n){Zi(n,null),Ii(n,null)}function r1e(n,e,t){return Xe(n.g,t,e)}function yg(n,e,t){return nZ(e,t,n.c)}function c1e(n,e,t){return Xe(n.k,t,e)}function u1e(n,e,t){return GOe(n,e,t),t}function o1e(n,e){return ko(),e.n.b+=n}function vTn(n){nJ.call(this),this.b=n}function DX(n){vV.call(this),this.a=n}function kTn(){uC.call(this,"Range",2)}function LC(n){this.b=n,this.a=new Z}function yTn(n){this.b=new $bn,this.a=n}function jTn(n){n.a=new OO,n.c=new OO}function ETn(n){n.a=new de,n.d=new de}function CTn(n){$N(n,null),xN(n,null)}function MTn(n,e){return XOe(n.a,e,null)}function s1e(n,e){return Xe(n.a,e.a,e)}function Ki(n){return new V(n.a,n.b)}function LX(n){return new V(n.c,n.d)}function f1e(n){return new V(n.c,n.d)}function I6(n,e){return cOe(n.c,n.b,e)}function O(n,e){return n!=null&&Tx(n,e)}function yL(n,e){return Yve(n.Kc(),e)!=-1}function NC(n){return n.Ob()?n.Pb():null}function h1e(n){this.b=(Dn(),new eD(n))}function NX(n){this.a=n,de.call(this)}function TTn(){T7.call(this,null,null)}function ATn(){_C.call(this,null,null)}function STn(){je.call(this,"INSTANCE",0)}function PTn(){LZ(),this.a=new K5(Ion)}function ITn(n){return hh(n,0,n.length)}function l1e(n,e){return new VTn(n.Kc(),e)}function $X(n,e){return n.a.Bc(e)!=null}function OTn(n,e){me(n),n.Gc(u(e,15))}function a1e(n,e,t){n.c.bd(e,u(t,136))}function d1e(n,e,t){n.c.Ui(e,u(t,136))}function DTn(n,e){n.c&&(tW(e),rOn(e))}function b1e(n,e){n.q.setHours(e),G5(n,e)}function w1e(n,e){a0(e,n.a.a.a,n.a.a.b)}function g1e(n,e,t,i){$t(n.a[e.g],t.g,i)}function jL(n,e,t){return n.a[e.g][t.g]}function p1e(n,e){return n.e[e.c.p][e.p]}function m1e(n,e){return n.c[e.c.p][e.p]}function Tf(n,e){return n.a[e.c.p][e.p]}function v1e(n,e){return n.j[e.p]=IMe(e)}function EL(n,e){return n.a.Bc(e)!=null}function k1e(n,e){return $(R(e.a))<=n}function y1e(n,e){return $(R(e.a))>=n}function j1e(n,e){return RJ(n.f,e.Pg())}function vp(n,e){return n.a*e.a+n.b*e.b}function E1e(n,e){return n.a0?e/(n*n):e*100}function V1e(n,e){return n>0?e*e/n:e*e*100}function xb(n,e){return u(Lf(n.a,e),34)}function W1e(n,e){return ca(),Pn(n,e.e,e)}function J1e(n,e,t){return nC(),t.Mg(n,e)}function Q1e(n){return kl(),n.e.a+n.f.a/2}function Y1e(n,e,t){return kl(),t.e.a-n*e}function Z1e(n){return kl(),n.e.b+n.f.b/2}function nae(n,e,t){return kl(),t.e.b-n*e}function sAn(n){n.d=new cAn(n),n.e=new de}function fAn(){this.a=new C0,this.b=new C0}function hAn(n){this.c=n,this.a=1,this.b=1}function lAn(n){YF(),Syn(this),this.Ff(n)}function eae(n,e,t){YM(),n.pf(e)&&t.Cd(n)}function tae(n,e,t){return nn(e,jBn(n,t))}function a0(n,e,t){return n.a+=e,n.b+=t,n}function iae(n,e,t){return n.a*=e,n.b*=t,n}function ZX(n,e){return n.a=e.a,n.b=e.b,n}function HC(n){return n.a=-n.a,n.b=-n.b,n}function N6(n,e,t){return n.a-=e,n.b-=t,n}function aAn(n){Ct.call(this),c5(this,n)}function dAn(){je.call(this,"GROW_TREE",0)}function bAn(){je.call(this,"POLYOMINO",0)}function lo(n,e,t){Iu.call(this,n,e,t,2)}function rae(n,e,t){k5(Sc(n.a),e,DOn(t))}function wAn(n,e){a6(),T7.call(this,n,e)}function nV(n,e){Gl(),_C.call(this,n,e)}function gAn(n,e){Gl(),nV.call(this,n,e)}function pAn(n,e){Gl(),_C.call(this,n,e)}function cae(n,e){return n.c.Fc(u(e,136))}function uae(n,e,t){k5(no(n.a),e,LOn(t))}function mAn(n){this.c=n,eu(n,0),tu(n,0)}function PL(n,e){Ko(),oM.call(this,n,e)}function vAn(n,e){Ko(),PL.call(this,n,e)}function eV(n,e){Ko(),PL.call(this,n,e)}function tV(n,e){Ko(),oM.call(this,n,e)}function kAn(n,e){Ko(),eV.call(this,n,e)}function yAn(n,e){Ko(),tV.call(this,n,e)}function jAn(n,e){Ko(),oM.call(this,n,e)}function oae(n,e,t){return e.zl(n.e,n.c,t)}function sae(n,e,t){return e.Al(n.e,n.c,t)}function iV(n,e,t){return qA(ak(n,e),t)}function IL(n,e){return na(n.e,u(e,54))}function fae(n){return n==null?null:NDe(n)}function hae(n){return n==null?null:Aje(n)}function lae(n){return n==null?null:Jr(n)}function aae(n){return n==null?null:Jr(n)}function un(n){return F6(n==null||Nb(n)),n}function R(n){return F6(n==null||$b(n)),n}function Oe(n){return F6(n==null||Ai(n)),n}function ll(n){n.o==null&&cMe(n)}function rV(n){if(!n)throw M(new Q9)}function dae(n){if(!n)throw M(new uD)}function oe(n){if(!n)throw M(new nc)}function Fb(n){if(!n)throw M(new Cu)}function EAn(n){if(!n)throw M(new Bo)}function m4(){m4=F,aE=new ujn,new ojn}function Mg(){Mg=F,O2=new lt("root")}function cV(){cxn.call(this),this.Bb|=hr}function bae(n,e){this.d=n,c9n(this),this.b=e}function uV(n,e){i$.call(this,n),this.a=e}function oV(n,e){i$.call(this,n),this.a=e}function sV(n,e,t){VM.call(this,n,e,t,null)}function CAn(n,e,t){VM.call(this,n,e,t,null)}function P7(n,e){this.c=n,h4.call(this,n,e)}function $6(n,e){this.a=n,P7.call(this,n,e)}function fV(n){this.q=new y.Date(id(n))}function MAn(n){return n>8?0:n+1}function TAn(n,e){qf||nn(n.a,e)}function wae(n,e){return o7(),Q4(e.d.i,n)}function gae(n,e){return Hp(),new tUn(e,n)}function pae(n,e,t){return n.Ne(e,t)<=0?t:e}function mae(n,e,t){return n.Ne(e,t)<=0?e:t}function vae(n,e){return u(Lf(n.b,e),143)}function kae(n,e){return u(Lf(n.c,e),233)}function OL(n){return u(sn(n.a,n.b),294)}function AAn(n){return new V(n.c,n.d+n.a)}function SAn(n){return Jn(n),n?1231:1237}function PAn(n){return ko(),oTn(u(n,203))}function Bb(){Bb=F,ron=yn((go(),Gd))}function yae(n,e){e.a?MCe(n,e):EL(n.a,e.b)}function I7(n,e,t){++n.j,n.tj(),t$(n,e,t)}function IAn(n,e,t){++n.j,n.qj(e,n.Zi(e,t))}function OAn(n,e,t){var i;i=n.fd(e),i.Rb(t)}function hV(n,e,t){return t=So(n,e,6,t),t}function lV(n,e,t){return t=So(n,e,3,t),t}function aV(n,e,t){return t=So(n,e,9,t),t}function ch(n,e){return X7(e,xtn),n.f=e,n}function dV(n,e){return(e&et)%n.d.length}function DAn(n,e,t){return zen(n.c,n.b,e,t)}function LAn(n,e){this.c=n,S0.call(this,e)}function NAn(n,e){this.a=n,kyn.call(this,e)}function O7(n,e){this.a=n,kyn.call(this,e)}function Dt(n,e){lt.call(this,n),this.a=e}function bV(n,e){FG.call(this,n),this.a=e}function DL(n,e){FG.call(this,n),this.a=e}function jae(n){VY.call(this,0,0),this.f=n}function $An(n,e,t){return n.a+=hh(e,0,t),n}function D7(n){return!n.a&&(n.a=new C0n),n.a}function wV(n,e){var t;return t=n.e,n.e=e,t}function gV(n,e){var t;return t=e,!!n.Fe(t)}function Eae(n,e){return _n(),n==e?0:n?1:-1}function Rb(n,e){n.a.bd(n.b,e),++n.b,n.c=-1}function L7(n){n.b?L7(n.b):n.f.c.zc(n.e,n.d)}function xAn(n){Hu(n.e),n.d.b=n.d,n.d.a=n.d}function Cae(n,e,t){Xa(),t9n(n,e.Ve(n.a,t))}function pV(n,e,t){return Pp(n,u(e,22),t)}function $s(n,e){return qE(new Array(e),n)}function Mae(n){return Ae(U1(n,32))^Ae(n)}function LL(n){return String.fromCharCode(n)}function Tae(n){return n==null?null:n.message}function Aae(n,e,t){return n.apply(e,t)}function Sae(n,e){var t;t=n[DB],t.call(n,e)}function Pae(n,e){var t;t=n[DB],t.call(n,e)}function Iae(n,e){return o7(),!Q4(e.d.i,n)}function mV(n,e,t,i){rM.call(this,n,e,t,i)}function FAn(){qC.call(this),this.a=new Li}function vV(){this.n=new Li,this.o=new Li}function BAn(){this.b=new Li,this.c=new Z}function RAn(){this.a=new Z,this.b=new Z}function KAn(){this.a=new _U,this.b=new Byn}function kV(){this.b=new Ql,this.a=new Ql}function _An(){this.b=new ni,this.a=new ni}function HAn(){this.b=new de,this.a=new de}function qAn(){this.b=new wEn,this.a=new H3n}function UAn(){this.a=new n8n,this.b=new Lpn}function GAn(){this.a=new Z,this.d=new Z}function qC(){this.n=new cp,this.i=new mp}function zAn(n){this.a=(Co(n,mw),new Gc(n))}function XAn(n){this.a=(Co(n,mw),new Gc(n))}function Oae(n){return n<100?null:new F1(n)}function Dae(n,e){return n.n.a=(Jn(e),e+10)}function Lae(n,e){return n.n.a=(Jn(e),e+10)}function Nae(n,e){return e==n||km(TA(e),n)}function VAn(n,e){return Xe(n.a,e,"")==null}function $ae(n,e){var t;return t=e.qi(n.a),t}function tt(n,e){return n.a+=e.a,n.b+=e.b,n}function mi(n,e){return n.a-=e.a,n.b-=e.b,n}function xae(n){return Pb(n.j.c,0),n.a=-1,n}function yV(n,e,t){return t=So(n,e,11,t),t}function Fae(n,e,t){t!=null&&mT(e,Fx(n,t))}function Bae(n,e,t){t!=null&&vT(e,Fx(n,t))}function jp(n,e,t,i){q.call(this,n,e,t,i)}function jV(n,e,t,i){q.call(this,n,e,t,i)}function WAn(n,e,t,i){jV.call(this,n,e,t,i)}function JAn(n,e,t,i){bM.call(this,n,e,t,i)}function NL(n,e,t,i){bM.call(this,n,e,t,i)}function EV(n,e,t,i){bM.call(this,n,e,t,i)}function QAn(n,e,t,i){NL.call(this,n,e,t,i)}function CV(n,e,t,i){NL.call(this,n,e,t,i)}function Nn(n,e,t,i){EV.call(this,n,e,t,i)}function YAn(n,e,t,i){CV.call(this,n,e,t,i)}function ZAn(n,e,t,i){jW.call(this,n,e,t,i)}function Kb(n,e){Ir.call(this,k8+n+Td+e)}function MV(n,e){return n.jk().wi().ri(n,e)}function TV(n,e){return n.jk().wi().ti(n,e)}function nSn(n,e){return Jn(n),x(n)===x(e)}function An(n,e){return Jn(n),x(n)===x(e)}function Rae(n,e){return n.b.Bd(new ECn(n,e))}function Kae(n,e){return n.b.Bd(new CCn(n,e))}function eSn(n,e){return n.b.Bd(new MCn(n,e))}function _ae(n,e){return n.e=u(n.d.Kb(e),159)}function AV(n,e,t){return n.lastIndexOf(e,t)}function Hae(n,e,t){return bt(n[e.a],n[t.a])}function qae(n,e){return U(e,(cn(),Cj),n)}function Uae(n,e){return jc(e.a.d.p,n.a.d.p)}function Gae(n,e){return jc(n.a.d.p,e.a.d.p)}function zae(n,e){return bt(n.c-n.s,e.c-e.s)}function Xae(n,e){return bt(n.b.e.a,e.b.e.a)}function Vae(n,e){return bt(n.c.e.a,e.c.e.a)}function tSn(n){return n.c?qr(n.c.a,n,0):-1}function Ep(n){return n==Ud||n==tl||n==qc}function SV(n,e){this.c=n,oN.call(this,n,e)}function iSn(n,e,t){this.a=n,JX.call(this,e,t)}function rSn(n){this.c=n,IC.call(this,Ey,0)}function cSn(n,e,t){this.c=e,this.b=t,this.a=n}function N7(n){k4(),this.d=n,this.a=new Eg}function uSn(n){uh(),this.a=(Dn(),new r4(n))}function Wae(n,e){hl(n.f)?QCe(n,e):Sye(n,e)}function oSn(n,e){sbe.call(this,n,n.length,e)}function Jae(n,e){qf||e&&(n.d=e)}function sSn(n,e){return O(e,15)&&xqn(n.c,e)}function Qae(n,e,t){return u(n.c,71).Wk(e,t)}function UC(n,e,t){return u(n.c,71).Xk(e,t)}function Yae(n,e,t){return oae(n,u(e,343),t)}function PV(n,e,t){return sae(n,u(e,343),t)}function Zae(n,e,t){return PKn(n,u(e,343),t)}function fSn(n,e,t){return _ye(n,u(e,343),t)}function x6(n,e){return e==null?null:tw(n.b,e)}function IV(n){return $b(n)?(Jn(n),n):n.ue()}function GC(n){return!isNaN(n)&&!isFinite(n)}function $L(n){jTn(this),vo(this),Bi(this,n)}function _u(n){pL(this),zV(this.c,0,n.Pc())}function _o(n,e,t){this.a=n,this.b=e,this.c=t}function hSn(n,e,t){this.a=n,this.b=e,this.c=t}function lSn(n,e,t){this.d=n,this.b=t,this.a=e}function aSn(n){this.a=n,fl(),vc(Date.now())}function dSn(n){bo(n.a),GJ(n.c,n.b),n.b=null}function xL(){xL=F,Oun=new $0n,AQn=new x0n}function bSn(){bSn=F,Ioe=K(ki,Fn,1,0,5,1)}function wSn(){wSn=F,Voe=K(ki,Fn,1,0,5,1)}function OV(){OV=F,Woe=K(ki,Fn,1,0,5,1)}function uh(){uh=F,new KG((Dn(),Dn(),sr))}function nde(n){return B4(),Ee((yNn(),IQn),n)}function ede(n){return Gu(),Ee((lNn(),xQn),n)}function tde(n){return YT(),Ee((JDn(),HQn),n)}function ide(n){return cT(),Ee((QDn(),qQn),n)}function rde(n){return NA(),Ee((Jxn(),UQn),n)}function cde(n){return bf(),Ee((fNn(),XQn),n)}function ude(n){return Uu(),Ee((sNn(),WQn),n)}function ode(n){return bu(),Ee((hNn(),QQn),n)}function sde(n){return VA(),Ee((zMn(),kYn),n)}function fde(n){return N0(),Ee((ENn(),jYn),n)}function hde(n){return Vp(),Ee((MNn(),CYn),n)}function lde(n){return A5(),Ee((CNn(),AYn),n)}function ade(n){return YE(),Ee((jDn(),SYn),n)}function dde(n){return uT(),Ee((YDn(),GYn),n)}function bde(n){return i5(),Ee((aNn(),pZn),n)}function wde(n){return Vi(),Ee((u$n(),yZn),n)}function gde(n){return nm(),Ee((ANn(),TZn),n)}function pde(n){return dd(),Ee((TNn(),DZn),n)}function DV(n,e){if(!n)throw M(new Gn(e))}function v4(n){if(!n)throw M(new Or(btn))}function FL(n,e){if(n!=e)throw M(new Bo)}function gSn(n,e,t){this.a=n,this.b=e,this.c=t}function LV(n,e,t){this.a=n,this.b=e,this.c=t}function pSn(n,e,t){this.a=n,this.b=e,this.c=t}function zC(n,e,t){this.b=n,this.a=e,this.c=t}function NV(n,e,t){this.b=n,this.c=e,this.a=t}function $V(n,e,t){this.a=n,this.b=e,this.c=t}function XC(n,e,t){this.e=e,this.b=n,this.d=t}function mSn(n,e,t){this.b=n,this.a=e,this.c=t}function mde(n,e,t){return Xa(),n.a.Yd(e,t),e}function BL(n){var e;return e=new ubn,e.e=n,e}function xV(n){var e;return e=new qyn,e.b=n,e}function $7(){$7=F,CP=new sgn,MP=new fgn}function VC(){VC=F,XZn=new xgn,zZn=new Fgn}function xs(){xs=F,YZn=new G2n,ZZn=new z2n}function vde(n){return D0(),Ee((qLn(),fne),n)}function kde(n){return tr(),Ee((XMn(),HZn),n)}function yde(n){return OT(),Ee((PNn(),GZn),n)}function jde(n){return $f(),Ee((SNn(),tne),n)}function Ede(n){return ow(),Ee((o$n(),rne),n)}function Cde(n){return DA(),Ee(($xn(),hne),n)}function Mde(n){return Yp(),Ee((D$n(),lne),n)}function Tde(n){return QM(),Ee((cLn(),ane),n)}function Ade(n){return u5(),Ee((_Ln(),dne),n)}function Sde(n){return bT(),Ee((HLn(),bne),n)}function Pde(n){return o1(),Ee((s$n(),wne),n)}function Ide(n){return pk(),Ee((eLn(),gne),n)}function Ode(n){return jm(),Ee(($$n(),jne),n)}function Dde(n){return pr(),Ee((aFn(),Ene),n)}function Lde(n){return Z4(),Ee((GLn(),Cne),n)}function Nde(n){return vl(),Ee((zLn(),Tne),n)}function $de(n){return KM(),Ee((nLn(),Ane),n)}function xde(n){return Jk(),Ee((N$n(),yne),n)}function Fde(n){return hd(),Ee((ULn(),mne),n)}function Bde(n){return vA(),Ee((L$n(),vne),n)}function Rde(n){return hk(),Ee((tLn(),kne),n)}function Kde(n){return Yo(),Ee((h$n(),Sne),n)}function _de(n){return a1(),Ee((Xxn(),Yte),n)}function Hde(n){return g5(),Ee((XLn(),Zte),n)}function qde(n){return cw(),Ee((INn(),nie),n)}function Ude(n){return T5(),Ee((f$n(),eie),n)}function Gde(n){return gs(),Ee((dFn(),tie),n)}function zde(n){return lh(),Ee((ONn(),iie),n)}function Xde(n){return wk(),Ee((iLn(),rie),n)}function Vde(n){return gr(),Ee((JLn(),uie),n)}function Wde(n){return ST(),Ee((VLn(),oie),n)}function Jde(n){return d5(),Ee((WLn(),sie),n)}function Qde(n){return om(),Ee((QLn(),fie),n)}function Yde(n){return dT(),Ee((YLn(),hie),n)}function Zde(n){return DT(),Ee((ZLn(),lie),n)}function n0e(n){return O0(),Ee((oNn(),Aie),n)}function e0e(n){return n5(),Ee((rLn(),Die),n)}function t0e(n){return sh(),Ee((sLn(),Rie),n)}function i0e(n){return Sf(),Ee((fLn(),_ie),n)}function r0e(n){return lf(),Ee((hLn(),tre),n)}function c0e(n){return M0(),Ee((lLn(),fre),n)}function u0e(n){return Qp(),Ee((BNn(),hre),n)}function o0e(n){return q5(),Ee((VMn(),lre),n)}function s0e(n){return b5(),Ee((nNn(),are),n)}function f0e(n){return w5(),Ee((FNn(),$re),n)}function h0e(n){return FM(),Ee((uLn(),xre),n)}function l0e(n){return yT(),Ee((oLn(),_re),n)}function a0e(n){return wA(),Ee((l$n(),qre),n)}function d0e(n){return Ok(),Ee((eNn(),Gre),n)}function b0e(n){return ZM(),Ee((aLn(),Ure),n)}function w0e(n){return sA(),Ee((xNn(),lce),n)}function g0e(n){return AT(),Ee((tNn(),ace),n)}function p0e(n){return XT(),Ee((iNn(),dce),n)}function m0e(n){return rA(),Ee((rNn(),wce),n)}function v0e(n){return _T(),Ee((cNn(),mce),n)}function k0e(n){return GM(),Ee((dLn(),Rce),n)}function y0e(n){return V4(),Ee((ZDn(),_Zn),n)}function j0e(n){return Vn(),Ee((x$n(),xZn),n)}function E0e(n){return nT(),Ee((uNn(),Kce),n)}function C0e(n){return N$(),Ee((bLn(),_ce),n)}function M0e(n){return R5(),Ee((a$n(),qce),n)}function T0e(n){return eC(),Ee((IDn(),Gce),n)}function A0e(n){return Fk(),Ee((bNn(),Uce),n)}function S0e(n){return tC(),Ee((ODn(),Xce),n)}function P0e(n){return ck(),Ee((wLn(),Vce),n)}function I0e(n){return Yk(),Ee((d$n(),Wce),n)}function O0e(n){return f6(),Ee((DDn(),lue),n)}function D0e(n){return Ak(),Ee((gLn(),aue),n)}function L0e(n){return gf(),Ee((w$n(),mue),n)}function N0e(n){return l1(),Ee((Lxn(),kue),n)}function $0e(n){return Rh(),Ee((F$n(),yue),n)}function x0e(n){return wd(),Ee((B$n(),Aue),n)}function F0e(n){return ci(),Ee((b$n(),zue),n)}function B0e(n){return Nf(),Ee((wNn(),Xue),n)}function R0e(n){return El(),Ee((RNn(),Vue),n)}function K0e(n){return pA(),Ee((R$n(),Wue),n)}function _0e(n){return jl(),Ee((dNn(),Que),n)}function H0e(n){return To(),Ee((KNn(),Zue),n)}function q0e(n){return lw(),Ee((Wxn(),noe),n)}function U0e(n){return Fg(),Ee((g$n(),eoe),n)}function G0e(n){return Oi(),Ee((K$n(),toe),n)}function z0e(n){return zu(),Ee((_$n(),ioe),n)}function X0e(n){return tn(),Ee((p$n(),roe),n)}function V0e(n){return go(),Ee((_Nn(),foe),n)}function W0e(n){return io(),Ee((Vxn(),hoe),n)}function J0e(n){return Gp(),Ee((gNn(),loe),n)}function Q0e(n,e){return Jn(n),n+(Jn(e),e)}function Y0e(n){return RL(),Ee((pLn(),aoe),n)}function Z0e(n){return qT(),Ee((HNn(),doe),n)}function nbe(n){return LT(),Ee((qNn(),goe),n)}function k4(){k4=F,tln=(tn(),Wn),II=Zn}function RL(){RL=F,vdn=new VSn,kdn=new LPn}function ebe(n){return!n.e&&(n.e=new Z),n.e}function KL(n,e){this.c=n,this.a=e,this.b=e-n}function vSn(n,e,t){this.a=n,this.b=e,this.c=t}function _L(n,e,t){this.a=n,this.b=e,this.c=t}function FV(n,e,t){this.a=n,this.b=e,this.c=t}function BV(n,e,t){this.a=n,this.b=e,this.c=t}function kSn(n,e,t){this.a=n,this.b=e,this.c=t}function ySn(n,e,t){this.a=n,this.b=e,this.c=t}function Xl(n,e,t){this.e=n,this.a=e,this.c=t}function jSn(n,e,t){Ko(),tJ.call(this,n,e,t)}function HL(n,e,t){Ko(),RW.call(this,n,e,t)}function RV(n,e,t){Ko(),RW.call(this,n,e,t)}function KV(n,e,t){Ko(),RW.call(this,n,e,t)}function ESn(n,e,t){Ko(),HL.call(this,n,e,t)}function _V(n,e,t){Ko(),HL.call(this,n,e,t)}function CSn(n,e,t){Ko(),_V.call(this,n,e,t)}function MSn(n,e,t){Ko(),RV.call(this,n,e,t)}function TSn(n,e,t){Ko(),KV.call(this,n,e,t)}function qL(n){rM.call(this,n.d,n.c,n.a,n.b)}function HV(n){rM.call(this,n.d,n.c,n.a,n.b)}function qV(n){this.d=n,c9n(this),this.b=nwe(n.d)}function tbe(n){return Cm(),Ee((Nxn(),Poe),n)}function x7(n,e){return Se(n),Se(e),new NEn(n,e)}function Cp(n,e){return Se(n),Se(e),new RSn(n,e)}function ibe(n,e){return Se(n),Se(e),new KSn(n,e)}function rbe(n,e){return Se(n),Se(e),new qEn(n,e)}function UL(n){return oe(n.b!=0),Xo(n,n.a.a)}function cbe(n){return oe(n.b!=0),Xo(n,n.c.b)}function ube(n){return!n.c&&(n.c=new W3),n.c}function y4(n){var e;return e=new Z,b$(e,n),e}function obe(n){var e;return e=new ni,b$(e,n),e}function ASn(n){var e;return e=new GG,A$(e,n),e}function F7(n){var e;return e=new Ct,A$(e,n),e}function u(n,e){return F6(n==null||Tx(n,e)),n}function sbe(n,e,t){TPn.call(this,e,t),this.a=n}function SSn(n,e){this.c=n,this.b=e,this.a=!1}function PSn(){this.a=";,;",this.b="",this.c=""}function ISn(n,e,t){this.b=n,_Mn.call(this,e,t)}function UV(n,e,t){this.c=n,oC.call(this,e,t)}function GV(n,e,t){d4.call(this,n,e),this.b=t}function zV(n,e,t){Bnn(t,0,n,e,t.length,!1)}function Lh(n,e,t,i,r){n.b=e,n.c=t,n.d=i,n.a=r}function XV(n,e,t,i,r){n.d=e,n.c=t,n.a=i,n.b=r}function fbe(n,e){e&&(n.b=e,n.a=(z1(e),e.a))}function B7(n,e){if(!n)throw M(new Gn(e))}function Mp(n,e){if(!n)throw M(new Or(e))}function VV(n,e){if(!n)throw M(new Bjn(e))}function hbe(n,e){return ZE(),jc(n.d.p,e.d.p)}function lbe(n,e){return kl(),bt(n.e.b,e.e.b)}function abe(n,e){return kl(),bt(n.e.a,e.e.a)}function dbe(n,e){return jc(GSn(n.d),GSn(e.d))}function WC(n,e){return e&&vM(n,e.d)?e:null}function bbe(n,e){return e==(tn(),Wn)?n.c:n.d}function WV(n){return Q1(dwe(Vr(n)?ds(n):n))}function wbe(n){return new V(n.c+n.b,n.d+n.a)}function OSn(n){return n!=null&&!lx(n,N9,$9)}function gbe(n,e){return(fBn(n)<<4|fBn(e))&ui}function DSn(n,e,t,i,r){n.c=e,n.d=t,n.b=i,n.a=r}function JV(n){var e,t;e=n.b,t=n.c,n.b=t,n.c=e}function QV(n){var e,t;t=n.d,e=n.a,n.d=e,n.a=t}function pbe(n,e){var t;return t=n.c,PQ(n,e),t}function YV(n,e){return e<0?n.g=-1:n.g=e,n}function JC(n,e){return Mme(n),n.a*=e,n.b*=e,n}function LSn(n,e,t){A$n.call(this,e,t),this.d=n}function R7(n,e,t){pX.call(this,n,e),this.c=t}function QC(n,e,t){pX.call(this,n,e),this.c=t}function ZV(n){OV(),ME.call(this),this.ci(n)}function NSn(){$4(),Bwe.call(this,(R1(),Ss))}function $Sn(n){return nt(),new Nh(0,n)}function xSn(){xSn=F,AU=(Dn(),new nD(IK))}function YC(){YC=F,new hZ((bD(),HK),(dD(),_K))}function FSn(){FSn=F,pun=K(Gi,J,17,256,0,1)}function BSn(){this.b=$(R(rn((qs(),y_))))}function GL(n){this.b=n,this.a=Wa(this.b.a).Od()}function RSn(n,e){this.b=n,this.a=e,GO.call(this)}function KSn(n,e){this.a=n,this.b=e,GO.call(this)}function _Sn(n,e,t){this.a=n,gg.call(this,e,t)}function HSn(n,e,t){this.a=n,gg.call(this,e,t)}function j4(n,e,t){var i;i=new qb(t),df(n,e,i)}function nW(n,e,t){var i;return i=n[e],n[e]=t,i}function ZC(n){var e;return e=n.slice(),o$(e,n)}function nM(n){var e;return e=n.n,n.a.b+e.d+e.a}function qSn(n){var e;return e=n.n,n.e.b+e.d+e.a}function eW(n){var e;return e=n.n,n.e.a+e.b+e.c}function tW(n){n.a.b=n.b,n.b.a=n.a,n.a=n.b=null}function xe(n,e){return xt(n,e,n.c.b,n.c),!0}function mbe(n){return n.a?n.a:vN(n)}function vbe(n){return Lp(),Kh(n)==At(ia(n))}function kbe(n){return Lp(),ia(n)==At(Kh(n))}function d0(n,e){return O5(n,new d4(e.a,e.b))}function ybe(n,e){return yM(),Nx(n,e),new lIn(n,e)}function jbe(n,e){return n.c=e)throw M(new YG)}function _b(n,e){return $k(n,(Jn(e),new a9n(e)))}function Ap(n,e){return $k(n,(Jn(e),new d9n(e)))}function SPn(n,e,t){return VLe(n,u(e,12),u(t,12))}function PPn(n){return Ou(),u(n,12).g.c.length!=0}function IPn(n){return Ou(),u(n,12).e.c.length!=0}function uwe(n,e){return Hp(),bt(e.a.o.a,n.a.o.a)}function owe(n,e){e.Bb&kc&&!n.a.o&&(n.a.o=e)}function swe(n,e){e.Ug("General 'Rotator",1),jDe(n)}function fwe(n,e,t){e.qf(t,$(R(ee(n.b,t)))*n.a)}function OPn(n,e,t){return Xg(),W4(n,e)&&W4(n,t)}function _6(n){return zu(),!n.Hc(Fl)&&!n.Hc(Pa)}function hwe(n){return n.e?qJ(n.e):null}function H6(n){return Vr(n)?""+n:$qn(n)}function yW(n){var e;for(e=n;e.f;)e=e.f;return e}function lwe(n,e,t){return $t(e,0,oW(e[0],t[0])),e}function Vl(n,e,t,i){var r;r=n.i,r.i=e,r.a=t,r.b=i}function q(n,e,t,i){ti.call(this,n,e,t),this.b=i}function Ci(n,e,t,i,r){c$.call(this,n,e,t,i,r,-1)}function q6(n,e,t,i,r){ok.call(this,n,e,t,i,r,-1)}function bM(n,e,t,i){R7.call(this,n,e,t),this.b=i}function DPn(n){PMn.call(this,n,!1),this.a=!1}function LPn(){sMn.call(this,"LOOKAHEAD_LAYOUT",1)}function NPn(n){this.b=n,kp.call(this,n),RTn(this)}function $Pn(n){this.b=n,A7.call(this,n),KTn(this)}function Hb(n,e,t){this.a=n,jp.call(this,e,t,5,6)}function jW(n,e,t,i){this.b=n,ti.call(this,e,t,i)}function xPn(n,e){this.b=n,H8n.call(this,n.b),this.a=e}function FPn(n){this.a=kRn(n.a),this.b=new _u(n.b)}function EW(n,e){m0(),Hhe.call(this,n,FT(new Ku(e)))}function wM(n,e){return nt(),new BW(n,e,0)}function rN(n,e){return nt(),new BW(6,n,e)}function _i(n,e){for(Jn(e);n.Ob();)e.Cd(n.Pb())}function Zc(n,e){return Ai(e)?AN(n,e):!!wr(n.f,e)}function cN(n,e){return e.Vh()?na(n.b,u(e,54)):e}function awe(n,e){return An(n.substr(0,e.length),e)}function $h(n){return new te(new UX(n.a.length,n.a))}function gM(n){return new V(n.c+n.b/2,n.d+n.a/2)}function dwe(n){return Yc(~n.l&ro,~n.m&ro,~n.h&Il)}function uN(n){return typeof n===vy||typeof n===eB}function Hu(n){n.f=new iTn(n),n.i=new rTn(n),++n.g}function BPn(n){if(!n)throw M(new nc);return n.d}function Sp(n){var e;return e=a5(n),oe(e!=null),e}function bwe(n){var e;return e=I5e(n),oe(e!=null),e}function C4(n,e){var t;return t=n.a.gc(),BJ(e,t),t-e}function fi(n,e){var t;return t=n.a.zc(e,n),t==null}function _7(n,e){return n.a.zc(e,(_n(),wa))==null}function CW(n){return new Tn(null,vwe(n,n.length))}function MW(n,e,t){return cGn(n,u(e,42),u(t,176))}function Pp(n,e,t){return Ks(n.a,e),nW(n.b,e.g,t)}function wwe(n,e,t){E4(t,n.a.c.length),Go(n.a,t,e)}function B(n,e,t,i){xFn(e,t,n.length),gwe(n,e,t,i)}function gwe(n,e,t,i){var r;for(r=e;r0?y.Math.log(n/e):-100}function KPn(n,e){return Ec(n,e)<0?-1:Ec(n,e)>0?1:0}function H7(n,e){OTn(n,O(e,160)?e:u(e,2036).Rl())}function PW(n,e){if(n==null)throw M(new sp(e))}function vwe(n,e){return yme(e,n.length),new XSn(n,e)}function IW(n,e){return e?Bi(n,e):!1}function kwe(){return RE(),S(T(uQn,1),G,549,0,[GK])}function G6(n){return n.e==0?n:new Qa(-n.e,n.d,n.a)}function ywe(n,e){return bt(n.c.c+n.c.b,e.c.c+e.c.b)}function q7(n,e){xt(n.d,e,n.b.b,n.b),++n.a,n.c=null}function _Pn(n,e){return n.c?_Pn(n.c,e):nn(n.b,e),n}function jwe(n,e,t){var i;return i=Jb(n,e),qN(n,e,t),i}function HPn(n,e,t){var i;for(i=0;i=n.g}function $t(n,e,t){return dae(t==null||oPe(n,t)),n[e]=t}function $W(n,e){return zn(e,n.length+1),n.substr(e)}function gN(n,e){for(Jn(e);n.c=n?new Dz:Gme(n-1)}function Hi(n){return!n.a&&n.c?n.c.b:n.a}function KW(n){return O(n,616)?n:new oOn(n)}function z1(n){n.c?z1(n.c):(ea(n),n.d=!0)}function V6(n){n.c?n.c.$e():(n.d=!0,fTe(n))}function sIn(n){n.b=!1,n.c=!1,n.d=!1,n.a=!1}function fIn(n){var e,t;return e=n.c.i.c,t=n.d.i.c,e==t}function _we(n,e){var t;t=n.Ih(e),t>=0?n.ki(t):Pnn(n,e)}function hIn(n,e){n.c<0||n.b.b0;)n=n<<1|(n<0?1:0);return n}function mIn(n,e){var t;return t=new Lc(n),Bn(e.c,t),t}function vIn(n,e){n.u.Hc((zu(),Fl))&&zEe(n,e),h4e(n,e)}function mc(n,e){return x(n)===x(e)||n!=null&&rt(n,e)}function Cr(n,e){return JL(n.a,e)?n.b[u(e,22).g]:null}function nge(){return YE(),S(T(oon,1),G,489,0,[b_])}function ege(){return eC(),S(T($1n,1),G,490,0,[Bq])}function tge(){return tC(),S(T(zce,1),G,558,0,[Rq])}function ige(){return f6(),S(T(tan,1),G,539,0,[Hj])}function jM(n){return!n.n&&(n.n=new q(Ar,n,1,7)),n.n}function mN(n){return!n.c&&(n.c=new q(Qu,n,9,9)),n.c}function UW(n){return!n.c&&(n.c=new Nn(he,n,5,8)),n.c}function rge(n){return!n.b&&(n.b=new Nn(he,n,4,7)),n.b}function U7(n){return n.j.c.length=0,zW(n.c),xae(n.a),n}function P4(n){return n.e==rv&&jfe(n,Y8e(n.g,n.b)),n.e}function G7(n){return n.f==rv&&Cfe(n,q7e(n.g,n.b)),n.f}function Ve(n,e,t,i){return Hxn(n,e,t,!1),BT(n,i),n}function kIn(n,e){this.b=n,oN.call(this,n,e),RTn(this)}function yIn(n,e){this.b=n,SV.call(this,n,e),KTn(this)}function W6(n){this.d=n,this.a=this.d.b,this.b=this.d.c}function GW(n,e){this.b=n,this.c=e,this.a=new dp(this.b)}function Xi(n,e){return zn(e,n.length),n.charCodeAt(e)}function cge(n,e){DY(n,$(yl(e,"x")),$(yl(e,"y")))}function uge(n,e){DY(n,$(yl(e,"x")),$(yl(e,"y")))}function ut(n,e){return ea(n),new Tn(n,new tQ(e,n.a))}function _r(n,e){return ea(n),new Tn(n,new _J(e,n.a))}function Ub(n,e){return ea(n),new uV(n,new ILn(e,n.a))}function EM(n,e){return ea(n),new oV(n,new OLn(e,n.a))}function oge(n,e){return new GIn(u(Se(n),50),u(Se(e),50))}function sge(n,e){return bt(n.d.c+n.d.b/2,e.d.c+e.d.b/2)}function jIn(n,e,t){t.a?tu(n,e.b-n.f/2):eu(n,e.a-n.g/2)}function fge(n,e){return bt(n.g.c+n.g.b/2,e.g.c+e.g.b/2)}function hge(n,e){return $z(),bt((Jn(n),n),(Jn(e),e))}function lge(n){return n!=null&&r7(jO,n.toLowerCase())}function zW(n){var e;for(e=n.Kc();e.Ob();)e.Pb(),e.Qb()}function Tg(n){var e;return e=n.b,!e&&(n.b=e=new N8n(n)),e}function vN(n){var e;return e=Wme(n),e||null}function EIn(n,e){var t,i;return t=n/e,i=wi(t),t>i&&++i,i}function age(n,e,t){var i;i=u(n.d.Kb(t),159),i&&i.Nb(e)}function dge(n,e,t){wIe(n.a,t),zve(t),xCe(n.b,t),$Ie(e,t)}function CM(n,e,t,i){this.a=n,this.c=e,this.b=t,this.d=i}function XW(n,e,t,i){this.c=n,this.b=e,this.a=t,this.d=i}function CIn(n,e,t,i){this.c=n,this.b=e,this.d=t,this.a=i}function Ho(n,e,t,i){this.c=n,this.d=e,this.b=t,this.a=i}function MIn(n,e,t,i){this.a=n,this.d=e,this.c=t,this.b=i}function kN(n,e,t,i){this.a=n,this.e=e,this.d=t,this.c=i}function TIn(n,e,t,i){this.a=n,this.c=e,this.d=t,this.b=i}function yN(n,e,t){this.a=ktn,this.d=n,this.b=e,this.c=t}function Op(n,e,t,i){je.call(this,n,e),this.a=t,this.b=i}function AIn(n,e){this.d=(Jn(n),n),this.a=16449,this.c=e}function SIn(n){this.a=new Z,this.e=K(ye,J,53,n,0,2)}function bge(n){n.Ug("No crossing minimization",1),n.Vg()}function PIn(){ec.call(this,"There is no more element.")}function IIn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function OIn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function Za(n,e,t,i){this.e=n,this.a=e,this.c=t,this.d=i}function DIn(n,e,t,i){this.a=n,this.c=e,this.d=t,this.b=i}function LIn(n,e,t,i){Ko(),DLn.call(this,e,t,i),this.a=n}function NIn(n,e,t,i){Ko(),DLn.call(this,e,t,i),this.a=n}function jN(n,e,t){var i,r;return i=utn(n),r=e.ti(t,i),r}function al(n){var e,t;return t=(e=new Jd,e),K4(t,n),t}function EN(n){var e,t;return t=(e=new Jd,e),fnn(t,n),t}function wge(n,e){var t;return t=ee(n.f,e),HQ(e,t),null}function $In(n){return!n.b&&(n.b=new q(Vt,n,12,3)),n.b}function xIn(n){return F6(n==null||uN(n)&&n.Tm!==J2),n}function MM(n){return n.n&&(n.e!==Fzn&&n.je(),n.j=null),n}function I4(n){if(eo(n.d),n.d.d!=n.c)throw M(new Bo)}function VW(n){return oe(n.b0&&bKn(this)}function FIn(n,e){this.a=n,bae.call(this,n,u(n.d,15).fd(e))}function gge(n,e){return bt(Su(n)*ao(n),Su(e)*ao(e))}function pge(n,e){return bt(Su(n)*ao(n),Su(e)*ao(e))}function mge(n){return _0(n)&&on(un(z(n,(cn(),Nd))))}function vge(n,e){return Pn(n,u(v(e,(cn(),Cv)),17),e)}function kge(n,e){return u(v(n,(W(),T3)),15).Fc(e),e}function WW(n,e){return n.b=e.b,n.c=e.c,n.d=e.d,n.a=e.a,n}function BIn(n,e,t,i){this.b=n,this.c=i,IC.call(this,e,t)}function yge(n,e,t){n.i=0,n.e=0,e!=t&&yFn(n,e,t)}function jge(n,e,t){n.i=0,n.e=0,e!=t&&jFn(n,e,t)}function Ege(n,e,t){return s6(),J5e(u(ee(n.e,e),529),t)}function Dp(n){var e;return e=n.f,e||(n.f=new h4(n,n.c))}function RIn(n,e){return xg(n.j,e.s,e.c)+xg(e.e,n.s,n.c)}function KIn(n,e){n.e&&!n.e.a&&(Ayn(n.e,e),KIn(n.e,e))}function _In(n,e){n.d&&!n.d.a&&(Ayn(n.d,e),_In(n.d,e))}function Cge(n,e){return-bt(Su(n)*ao(n),Su(e)*ao(e))}function Mge(n){return u(n.ld(),149).Pg()+":"+Jr(n.md())}function HIn(){tF(this,new oG),this.wb=(G1(),Hn),o4()}function qIn(n){this.b=new Z,hi(this.b,this.b),this.a=n}function JW(n,e){new Ct,this.a=new Mu,this.b=n,this.c=e}function j0(){j0=F,Pun=new FU,ZK=new FU,Iun=new D0n}function Dn(){Dn=F,sr=new A0n,Wh=new P0n,hP=new I0n}function QW(){QW=F,RQn=new nbn,_Qn=new aW,KQn=new ebn}function Lp(){Lp=F,mP=new Z,m_=new de,p_=new Z}function TM(n,e){if(n==null)throw M(new sp(e));return n}function AM(n){return!n.a&&(n.a=new q(Qe,n,10,11)),n.a}function ft(n){return!n.q&&(n.q=new q(As,n,11,10)),n.q}function _(n){return!n.s&&(n.s=new q(ku,n,21,17)),n.s}function Tge(n){return Se(n),IRn(new te(re(n.a.Kc(),new En)))}function Age(n,e){return wo(n),wo(e),Fjn(u(n,22),u(e,22))}function nd(n,e,t){var i,r;i=IV(t),r=new AE(i),df(n,e,r)}function MN(n,e,t,i,r,c){ok.call(this,n,e,t,i,r,c?-2:-1)}function UIn(n,e,t,i){pX.call(this,e,t),this.b=n,this.a=i}function GIn(n,e){Vfe.call(this,new iN(n)),this.a=n,this.b=e}function YW(n){this.b=n,this.c=n,n.e=null,n.c=null,this.a=1}function Sge(n){xs();var e;e=u(n.g,10),e.n.a=n.d.c+e.d.b}function O4(){O4=F;var n,e;e=!$8e(),n=new V3,VK=e?new og:n}function TN(n){return Dn(),O(n,59)?new jD(n):new BC(n)}function SM(n){return O(n,16)?new B6(u(n,16)):obe(n.Kc())}function Pge(n){return new HTn(n,n.e.Rd().gc()*n.c.Rd().gc())}function Ige(n){return new qTn(n,n.e.Rd().gc()*n.c.Rd().gc())}function ZW(n){return n&&n.hashCode?n.hashCode():l0(n)}function AN(n,e){return e==null?!!wr(n.f,null):zbe(n.i,e)}function Oge(n,e){var t;return t=$X(n.a,e),t&&(e.d=null),t}function zIn(n,e,t){return n.f?n.f.ef(e,t):!1}function z7(n,e,t,i){$t(n.c[e.g],t.g,i),$t(n.c[t.g],e.g,i)}function SN(n,e,t,i){$t(n.c[e.g],e.g,t),$t(n.b[e.g],e.g,i)}function Dge(n,e,t){return $(R(t.a))<=n&&$(R(t.b))>=e}function XIn(n,e){this.g=n,this.d=S(T(Qh,1),b1,10,0,[e])}function VIn(n){this.c=n,this.b=new Ul(u(Se(new tbn),50))}function WIn(n){this.c=n,this.b=new Ul(u(Se(new ewn),50))}function JIn(n){this.b=n,this.a=new Ul(u(Se(new Nbn),50))}function QIn(){this.b=new ni,this.d=new Ct,this.e=new ZG}function nJ(){this.c=new Li,this.d=new Li,this.e=new Li}function E0(){this.a=new Mu,this.b=(Co(3,mw),new Gc(3))}function Wl(n,e){this.e=n,this.a=ki,this.b=Qqn(e),this.c=e}function PM(n){this.c=n.c,this.d=n.d,this.b=n.b,this.a=n.a}function YIn(n,e,t,i,r,c){this.a=n,k$.call(this,e,t,i,r,c)}function ZIn(n,e,t,i,r,c){this.a=n,k$.call(this,e,t,i,r,c)}function X1(n,e,t,i,r,c,s){return new GN(n.e,e,t,i,r,c,s)}function Lge(n,e,t){return t>=0&&An(n.substr(t,e.length),e)}function nOn(n,e){return O(e,149)&&An(n.b,u(e,149).Pg())}function Nge(n,e){return n.a?e.Gh().Kc():u(e.Gh(),71).Ii()}function eOn(n,e){var t;return t=n.b.Qc(e),WDn(t,n.b.gc()),t}function X7(n,e){if(n==null)throw M(new sp(e));return n}function Hr(n){return n.u||(Zu(n),n.u=new NAn(n,n)),n.u}function PN(n){this.a=(Dn(),O(n,59)?new jD(n):new BC(n))}function au(n){var e;return e=u(Un(n,16),29),e||n.ii()}function IM(n,e){var t;return t=za(n.Rm),e==null?t:t+": "+e}function qo(n,e,t){return Fi(e,t,n.length),n.substr(e,t-e)}function tOn(n,e){qC.call(this),lQ(this),this.a=n,this.c=e}function $ge(n){n&&IM(n,n.ie())}function xge(n){HE(),y.setTimeout(function(){throw n},0)}function Fge(){return YT(),S(T(Bun,1),G,436,0,[o_,Fun])}function Bge(){return cT(),S(T(Kun,1),G,435,0,[Run,s_])}function Rge(){return uT(),S(T(bon,1),G,432,0,[v_,vP])}function Kge(){return V4(),S(T(KZn,1),G,517,0,[dj,L_])}function _ge(){return KM(),S(T(Qsn,1),G,429,0,[fH,Jsn])}function Hge(){return pk(),S(T($sn,1),G,428,0,[WP,Nsn])}function qge(){return QM(),S(T(Asn,1),G,431,0,[Tsn,V_])}function Uge(){return wk(),S(T(qhn,1),G,430,0,[UH,GH])}function Gge(){return n5(),S(T(Oie,1),G,531,0,[r9,i9])}function zge(){return yT(),S(T(Rln,1),G,501,0,[RI,D2])}function Xge(){return sh(),S(T(Bie,1),G,523,0,[mb,y1])}function Vge(){return Sf(),S(T(Kie,1),G,522,0,[Rd,zf])}function Wge(){return lf(),S(T(ere,1),G,528,0,[zw,ja])}function Jge(){return hk(),S(T(Bsn,1),G,488,0,[Fsn,QP])}function Qge(){return GM(),S(T(S1n,1),G,491,0,[$q,A1n])}function Yge(){return N$(),S(T(N1n,1),G,492,0,[D1n,L1n])}function Zge(){return FM(),S(T(Bln,1),G,433,0,[dq,Fln])}function n2e(){return ZM(),S(T(_ln,1),G,434,0,[Kln,vq])}function e2e(){return M0(),S(T(sre,1),G,465,0,[Ea,P2])}function t2e(){return ck(),S(T(x1n,1),G,438,0,[Kq,JI])}function i2e(){return Ak(),S(T(ran,1),G,437,0,[YI,ian])}function r2e(){return RL(),S(T(dO,1),G,347,0,[vdn,kdn])}function OM(n,e,t,i){return t>=0?n.Uh(e,t,i):n.Ch(null,t,i)}function V7(n){return n.b.b==0?n.a.sf():UL(n.b)}function c2e(n){if(n.p!=5)throw M(new Cu);return Ae(n.f)}function u2e(n){if(n.p!=5)throw M(new Cu);return Ae(n.k)}function eJ(n){return x(n.a)===x((D$(),CU))&&rOe(n),n.a}function o2e(n,e){n.b=e,n.c>0&&n.b>0&&(n.g=cM(n.c,n.b,n.a))}function s2e(n,e){n.c=e,n.c>0&&n.b>0&&(n.g=cM(n.c,n.b,n.a))}function iOn(n,e){ufe(this,new V(n.a,n.b)),ofe(this,F7(e))}function C0(){Wfe.call(this,new ap(Qb(12))),KX(!0),this.a=2}function IN(n,e,t){nt(),Wd.call(this,n),this.b=e,this.a=t}function tJ(n,e,t){Ko(),LE.call(this,e),this.a=n,this.b=t}function rOn(n){var e;e=n.c.d.b,n.b=e,n.a=n.c.d,e.a=n.c.d.b=n}function f2e(n){return n.b==0?null:(oe(n.b!=0),Xo(n,n.a.a))}function Nc(n,e){return e==null?Kr(wr(n.f,null)):d6(n.i,e)}function cOn(n,e,t,i,r){return new rF(n,(B4(),i_),e,t,i,r)}function DM(n,e){return zDn(e),Lme(n,K(ye,Ke,28,e,15,1),e)}function LM(n,e){return TM(n,"set1"),TM(e,"set2"),new VEn(n,e)}function h2e(n,e){var t=XK[n.charCodeAt(0)];return t??n}function uOn(n,e){var t,i;return t=e,i=new DO,LGn(n,t,i),i.d}function ON(n,e,t,i){var r;r=new FAn,e.a[t.g]=r,Pp(n.b,i,r)}function l2e(n,e){var t;return t=Ime(n.f,e),tt(HC(t),n.f.d)}function W7(n){var e;_me(n.a),dTn(n.a),e=new IE(n.a),HY(e)}function a2e(n,e){_qn(n,!0),nu(n.e.Rf(),new NV(n,!0,e))}function d2e(n,e){return Lp(),n==At(Kh(e))||n==At(ia(e))}function b2e(n,e){return kl(),u(v(e,(lc(),Sh)),17).a==n}function wi(n){return Math.max(Math.min(n,et),-2147483648)|0}function oOn(n){this.a=u(Se(n),277),this.b=(Dn(),new XX(n))}function sOn(n,e,t){this.i=new Z,this.b=n,this.g=e,this.a=t}function iJ(n,e,t){this.a=new Z,this.e=n,this.f=e,this.c=t}function NM(n,e,t){this.c=new Z,this.e=n,this.f=e,this.b=t}function fOn(n){qC.call(this),lQ(this),this.a=n,this.c=!0}function w2e(n){function e(){}return e.prototype=n||{},new e}function g2e(n){if(n.Ae())return null;var e=n.n;return rP[e]}function J7(n){return n.Db>>16!=3?null:u(n.Cb,27)}function Af(n){return n.Db>>16!=9?null:u(n.Cb,27)}function hOn(n){return n.Db>>16!=6?null:u(n.Cb,74)}function M0(){M0=F,Ea=new cX(s3,0),P2=new cX(f3,1)}function sh(){sh=F,mb=new tX(f3,0),y1=new tX(s3,1)}function Sf(){Sf=F,Rd=new iX(_B,0),zf=new iX("UP",1)}function lOn(){lOn=F,oQn=Ce((RE(),S(T(uQn,1),G,549,0,[GK])))}function aOn(n){var e;return e=new zE(Qb(n.length)),eY(e,n),e}function dOn(n,e){return n.b+=e.b,n.c+=e.c,n.d+=e.d,n.a+=e.a,n}function p2e(n,e){return Zxn(n,e)?(W$n(n),!0):!1}function dl(n,e){if(e==null)throw M(new ip);return F8e(n,e)}function Q7(n,e){var t;t=n.q.getHours(),n.q.setDate(e),G5(n,t)}function rJ(n,e,t){var i;i=n.Ih(e),i>=0?n.bi(i,t):ten(n,e,t)}function bOn(n,e){var t;return t=n.Ih(e),t>=0?n.Wh(t):hF(n,e)}function wOn(n,e){var t;for(Se(e),t=n.a;t;t=t.c)e.Yd(t.g,t.i)}function DN(n,e,t){var i;i=vFn(n,e,t),n.b=new ET(i.c.length)}function Ag(n,e,t){$M(),n&&Xe(yU,n,e),n&&Xe(hE,n,t)}function m2e(n,e){return VC(),_n(),u(e.a,17).a0}function cJ(n){var e;return e=n.d,e=n.bj(n.f),ve(n,e),e.Ob()}function gOn(n,e){var t;return t=new fW(e),_Kn(t,n),new _u(t)}function y2e(n){if(n.p!=0)throw M(new Cu);return M6(n.f,0)}function j2e(n){if(n.p!=0)throw M(new Cu);return M6(n.k,0)}function pOn(n){return n.Db>>16!=7?null:u(n.Cb,241)}function D4(n){return n.Db>>16!=6?null:u(n.Cb,241)}function mOn(n){return n.Db>>16!=7?null:u(n.Cb,167)}function At(n){return n.Db>>16!=11?null:u(n.Cb,27)}function Gb(n){return n.Db>>16!=17?null:u(n.Cb,29)}function vOn(n){return n.Db>>16!=3?null:u(n.Cb,155)}function uJ(n){var e;return ea(n),e=new ni,ut(n,new M9n(e))}function kOn(n,e){var t=n.a=n.a||[];return t[e]||(t[e]=n.ve(e))}function E2e(n,e){var t;t=n.q.getHours(),n.q.setMonth(e),G5(n,t)}function yOn(n,e){xC(this),this.f=e,this.g=n,MM(this),this.je()}function jOn(n,e){this.a=n,this.c=Ki(this.a),this.b=new PM(e)}function EOn(n,e,t){this.a=e,this.c=n,this.b=(Se(t),new _u(t))}function COn(n,e,t){this.a=e,this.c=n,this.b=(Se(t),new _u(t))}function MOn(n){this.a=n,this.b=K(Sie,J,2043,n.e.length,0,2)}function TOn(){this.a=new ih,this.e=new ni,this.g=0,this.i=0}function $M(){$M=F,yU=new de,hE=new de,ple(MQn,new wvn)}function AOn(){AOn=F,aie=Pu(new ii,(Vi(),zr),(tr(),bj))}function oJ(){oJ=F,die=Pu(new ii,(Vi(),zr),(tr(),bj))}function SOn(){SOn=F,wie=Pu(new ii,(Vi(),zr),(tr(),bj))}function POn(){POn=F,Lie=Re(new ii,(Vi(),zr),(tr(),x8))}function ko(){ko=F,xie=Re(new ii,(Vi(),zr),(tr(),x8))}function IOn(){IOn=F,Fie=Re(new ii,(Vi(),zr),(tr(),x8))}function NN(){NN=F,Hie=Re(new ii,(Vi(),zr),(tr(),x8))}function J6(n,e,t,i,r,c){return new ml(n.e,e,n.Lj(),t,i,r,c)}function Dr(n,e,t){return e==null?Vc(n.f,null,t):$0(n.i,e,t)}function Zi(n,e){n.c&&du(n.c.g,n),n.c=e,n.c&&nn(n.c.g,n)}function $i(n,e){n.c&&du(n.c.a,n),n.c=e,n.c&&nn(n.c.a,n)}function ic(n,e){n.i&&du(n.i.j,n),n.i=e,n.i&&nn(n.i.j,n)}function Ii(n,e){n.d&&du(n.d.e,n),n.d=e,n.d&&nn(n.d.e,n)}function $N(n,e){n.a&&du(n.a.k,n),n.a=e,n.a&&nn(n.a.k,n)}function xN(n,e){n.b&&du(n.b.f,n),n.b=e,n.b&&nn(n.b.f,n)}function OOn(n,e){$we(n,n.b,n.c),u(n.b.b,68),e&&u(e.b,68).b}function C2e(n,e){return bt(u(n.c,65).c.e.b,u(e.c,65).c.e.b)}function M2e(n,e){return bt(u(n.c,65).c.e.a,u(e.c,65).c.e.a)}function T2e(n){return Y$(),_n(),u(n.a,86).d.e!=0}function xM(n,e){O(n.Cb,184)&&(u(n.Cb,184).tb=null),zc(n,e)}function FN(n,e){O(n.Cb,90)&&hw(Zu(u(n.Cb,90)),4),zc(n,e)}function A2e(n,e){LY(n,e),O(n.Cb,90)&&hw(Zu(u(n.Cb,90)),2)}function S2e(n,e){var t,i;t=e.c,i=t!=null,i&&Ip(n,new qb(e.c))}function DOn(n){var e,t;return t=(o4(),e=new Jd,e),K4(t,n),t}function LOn(n){var e,t;return t=(o4(),e=new Jd,e),K4(t,n),t}function NOn(n){for(var e;;)if(e=n.Pb(),!n.Ob())return e}function P2e(n,e,t){return nn(n.a,(yM(),Nx(e,t),new i0(e,t))),n}function $c(n,e){return dr(),a$(e)?new eM(e,n):new j7(e,n)}function Y7(n){return dh(),Ec(n,0)>=0?ta(n):G6(ta(n1(n)))}function I2e(n){var e;return e=u(ZC(n.b),9),new _o(n.a,e,n.c)}function $On(n,e){var t;return t=u(tw(Dp(n.a),e),16),t?t.gc():0}function xOn(n,e,t){var i;oBn(e,t,n.c.length),i=t-e,Pz(n.c,e,i)}function Jl(n,e,t){oBn(e,t,n.gc()),this.c=n,this.a=e,this.b=t-e}function Np(n){this.c=new Ct,this.b=n.b,this.d=n.c,this.a=n.a}function BN(n){this.a=y.Math.cos(n),this.b=y.Math.sin(n)}function ed(n,e,t,i){this.c=n,this.d=i,$N(this,e),xN(this,t)}function sJ(n,e){Xfe.call(this,new ap(Qb(n))),Co(e,Ozn),this.a=e}function FOn(n,e,t){return new rF(n,(B4(),t_),null,!1,e,t)}function BOn(n,e,t){return new rF(n,(B4(),r_),e,t,null,!1)}function O2e(){return Gu(),S(T(xr,1),G,108,0,[xun,Yr,Aw])}function D2e(){return bu(),S(T(JQn,1),G,472,0,[vf,pa,zs])}function L2e(){return Uu(),S(T(VQn,1),G,471,0,[Mh,ga,Gs])}function N2e(){return bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])}function $2e(){return i5(),S(T(Pon,1),G,391,0,[E_,j_,C_])}function x2e(){return D0(),S(T(R_,1),G,372,0,[ub,ma,cb])}function F2e(){return u5(),S(T(Psn,1),G,322,0,[B8,pj,Ssn])}function B2e(){return bT(),S(T(Osn,1),G,351,0,[Isn,VP,W_])}function R2e(){return hd(),S(T(pne,1),G,460,0,[Y_,mv,p2])}function K2e(){return Z4(),S(T(sH,1),G,299,0,[uH,oH,mj])}function _2e(){return vl(),S(T(Mne,1),G,311,0,[vj,v2,E3])}function H2e(){return g5(),S(T(Lhn,1),G,390,0,[FH,Dhn,MI])}function q2e(){return gr(),S(T(cie,1),G,463,0,[n9,Vu,Jc])}function U2e(){return ST(),S(T(zhn,1),G,387,0,[Uhn,zH,Ghn])}function G2e(){return d5(),S(T(Xhn,1),G,349,0,[VH,XH,Ij])}function z2e(){return om(),S(T(Whn,1),G,350,0,[WH,Vhn,e9])}function X2e(){return dT(),S(T(Yhn,1),G,352,0,[Qhn,JH,Jhn])}function V2e(){return DT(),S(T(Zhn,1),G,388,0,[QH,Ov,Gw])}function W2e(){return O0(),S(T(Tie,1),G,464,0,[Oj,t9,PI])}function Pf(n){return cc(S(T(Ei,1),J,8,0,[n.i.n,n.n,n.a]))}function J2e(){return b5(),S(T(gln,1),G,392,0,[wln,nq,Lj])}function ROn(){ROn=F,Fre=Pu(new ii,(Qp(),u9),(q5(),uln))}function FM(){FM=F,dq=new uX("DFS",0),Fln=new uX("BFS",1)}function KOn(n,e,t){var i;i=new E3n,i.b=e,i.a=t,++e.b,nn(n.d,i)}function Q2e(n,e,t){var i;i=new rr(t.d),tt(i,n),DY(e,i.a,i.b)}function Y2e(n,e){LTn(n,Ae(vi(w0(e,24),YA)),Ae(vi(e,YA)))}function zb(n,e){if(n<0||n>e)throw M(new Ir(Ptn+n+Itn+e))}function Ln(n,e){if(n<0||n>=e)throw M(new Ir(Ptn+n+Itn+e))}function zn(n,e){if(n<0||n>=e)throw M(new gz(Ptn+n+Itn+e))}function In(n,e){this.b=(Jn(n),n),this.a=e&vw?e:e|64|wh}function fJ(n){var e;return ea(n),e=(j0(),j0(),ZK),fT(n,e)}function Z2e(n,e,t){var i;return i=V5(n,e,!1),i.b<=e&&i.a<=t}function npe(){return nT(),S(T(O1n,1),G,439,0,[xq,I1n,P1n])}function epe(){return _T(),S(T(a1n,1),G,394,0,[l1n,Oq,h1n])}function tpe(){return XT(),S(T(f1n,1),G,445,0,[Bj,qI,Mq])}function ipe(){return rA(),S(T(bce,1),G,456,0,[Tq,Sq,Aq])}function rpe(){return Ok(),S(T(Uln,1),G,393,0,[KI,Hln,qln])}function cpe(){return AT(),S(T(s1n,1),G,300,0,[Cq,o1n,u1n])}function upe(){return jl(),S(T(ldn,1),G,346,0,[uO,M1,M9])}function ope(){return Fk(),S(T(Fq,1),G,444,0,[XI,VI,WI])}function spe(){return Nf(),S(T(Zan,1),G,278,0,[Bv,Jw,Rv])}function fpe(){return Gp(),S(T(mdn,1),G,280,0,[pdn,Yw,aO])}function T0(n){return Se(n),O(n,16)?new _u(u(n,16)):y4(n.Kc())}function hJ(n,e){return n&&n.equals?n.equals(e):x(n)===x(e)}function vi(n,e){return Q1(ewe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function hf(n,e){return Q1(twe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function RN(n,e){return Q1(iwe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function hpe(n,e){var t;return t=(Jn(n),n).g,rV(!!t),Jn(e),t(e)}function _On(n,e){var t,i;return i=C4(n,e),t=n.a.fd(i),new zEn(n,t)}function lpe(n){return n.Db>>16!=6?null:u(dF(n),241)}function ape(n){if(n.p!=2)throw M(new Cu);return Ae(n.f)&ui}function dpe(n){if(n.p!=2)throw M(new Cu);return Ae(n.k)&ui}function E(n){return oe(n.ai?1:0}function GOn(n,e){var t,i;return t=s$(e),i=t,u(ee(n.c,i),17).a}function KN(n,e,t){var i;i=n.d[e.p],n.d[e.p]=n.d[t.p],n.d[t.p]=i}function Cpe(n,e,t){var i;n.n&&e&&t&&(i=new uvn,nn(n.e,i))}function _N(n,e){if(fi(n.a,e),e.d)throw M(new ec(nXn));e.d=n}function dJ(n,e){this.a=new Z,this.d=new Z,this.f=n,this.c=e}function zOn(){this.c=new PTn,this.a=new $Ln,this.b=new Xyn,lCn()}function XOn(){qp(),this.b=new de,this.a=new de,this.c=new Z}function VOn(n,e,t){this.d=n,this.j=e,this.e=t,this.o=-1,this.p=3}function WOn(n,e,t){this.d=n,this.k=e,this.f=t,this.o=-1,this.p=5}function JOn(n,e,t,i,r,c){dQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function QOn(n,e,t,i,r,c){bQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function YOn(n,e,t,i,r,c){OJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function ZOn(n,e,t,i,r,c){pQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function nDn(n,e,t,i,r,c){DJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function eDn(n,e,t,i,r,c){wQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function tDn(n,e,t,i,r,c){gQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function iDn(n,e,t,i,r,c){LJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function rDn(n,e,t,i){LE.call(this,t),this.b=n,this.c=e,this.d=i}function cDn(n,e){this.f=n,this.a=($4(),MO),this.c=MO,this.b=e}function uDn(n,e){this.g=n,this.d=($4(),TO),this.a=TO,this.b=e}function bJ(n,e){!n.c&&(n.c=new Rt(n,0)),HA(n.c,(at(),F9),e)}function Mpe(n,e){return oMe(n,e,O(e,102)&&(u(e,19).Bb&hr)!=0)}function Tpe(n,e){return KPn(vc(n.q.getTime()),vc(e.q.getTime()))}function oDn(n){return XL(n.e.Rd().gc()*n.c.Rd().gc(),16,new O8n(n))}function Ape(n){return!!n.u&&Sc(n.u.a).i!=0&&!(n.n&&Ix(n.n))}function Spe(n){return!!n.a&&no(n.a.a).i!=0&&!(n.b&&Ox(n.b))}function wJ(n,e){return e==0?!!n.o&&n.o.f!=0:Cx(n,e)}function Ppe(n,e,t){var i;return i=u(n.Zb().xc(e),16),!!i&&i.Hc(t)}function sDn(n,e,t){var i;return i=u(n.Zb().xc(e),16),!!i&&i.Mc(t)}function fDn(n,e){var t;return t=1-e,n.a[t]=jT(n.a[t],t),jT(n,e)}function hDn(n,e){var t,i;return i=vi(n,mr),t=Fs(e,32),hf(t,i)}function lDn(n,e,t){var i;i=(Se(n),new _u(n)),O7e(new EOn(i,e,t))}function Z7(n,e,t){var i;i=(Se(n),new _u(n)),D7e(new COn(i,e,t))}function fc(n,e,t,i,r,c){return Hxn(n,e,t,c),CY(n,i),MY(n,r),n}function aDn(n,e,t,i){return n.a+=""+qo(e==null?gu:Jr(e),t,i),n}function xi(n,e){this.a=n,Xv.call(this,n),zb(e,n.gc()),this.b=e}function dDn(n){this.a=K(ki,Fn,1,QQ(y.Math.max(8,n))<<1,5,1)}function nk(n){return u(xf(n,K(Qh,b1,10,n.c.length,0,1)),199)}function fh(n){return u(xf(n,K(O_,rR,18,n.c.length,0,1)),483)}function bDn(n){return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c}function Q6(n){for(;n.d>0&&n.a[--n.d]==0;);n.a[n.d++]==0&&(n.e=0)}function wDn(n){return oe(n.b.b!=n.d.a),n.c=n.b=n.b.b,--n.a,n.c.c}function Ipe(n,e,t){n.a=e,n.c=t,n.b.a.$b(),vo(n.d),Pb(n.e.a.c,0)}function gDn(n,e){var t;n.e=new uz,t=aw(e),Yt(t,n.c),Iqn(n,t,0)}function ri(n,e,t,i){var r;r=new nG,r.a=e,r.b=t,r.c=i,xe(n.a,r)}function Q(n,e,t,i){var r;r=new nG,r.a=e,r.b=t,r.c=i,xe(n.b,r)}function pDn(n,e,t){if(n<0||et)throw M(new Ir(qje(n,e,t)))}function ek(n,e){if(n<0||n>=e)throw M(new Ir(kEe(n,e)));return n}function Ope(n){if(!("stack"in n))try{throw n}catch{}return n}function Sg(n){return s6(),O(n.g,10)?u(n.g,10):null}function Dpe(n){return Tg(n).dc()?!1:(e1e(n,new Pr),!0)}function id(n){var e;return Vr(n)?(e=n,e==-0?0:e):X4e(n)}function mDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function vDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function kDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function gJ(n){var e;return z1(n),e=new L0n,hg(n.a,new j9n(e)),e}function pJ(){var n,e,t;return e=(t=(n=new Jd,n),t),nn(n0n,e),e}function BM(n){var e;return z1(n),e=new N0n,hg(n.a,new E9n(e)),e}function Lpe(n,e){return n.a<=n.b?(e.Dd(n.a++),!0):!1}function yDn(n){P$.call(this,n,(B4(),e_),null,!1,null,!1)}function jDn(){jDn=F,SYn=Ce((YE(),S(T(oon,1),G,489,0,[b_])))}function EDn(){EDn=F,eln=wIn(Y(1),Y(4)),nln=wIn(Y(1),Y(2))}function Npe(n,e){return new _L(e,N6(Ki(e.e),n,n),(_n(),!0))}function RM(n){return new Gc((Co(n,cB),oT(nr(nr(5,n),n/10|0))))}function $pe(n){return XL(n.e.Rd().gc()*n.c.Rd().gc(),273,new I8n(n))}function CDn(n){return u(xf(n,K(FZn,DXn,12,n.c.length,0,1)),2042)}function xpe(n){return ko(),!fr(n)&&!(!fr(n)&&n.c.i.c==n.d.i.c)}function Fpe(n,e){return _p(),u(v(e,(lc(),I2)),17).a>=n.gc()}function Y6(n,e){vLe(e,n),JV(n.d),JV(u(v(n,(cn(),mI)),214))}function HN(n,e){kLe(e,n),QV(n.d),QV(u(v(n,(cn(),mI)),214))}function Bpe(n,e,t){n.d&&du(n.d.e,n),n.d=e,n.d&&b0(n.d.e,t,n)}function Rpe(n,e,t){return t.f.c.length>0?MW(n.a,e,t):MW(n.b,e,t)}function Kpe(n,e,t){var i;i=i9e();try{return Aae(n,e,t)}finally{D3e(i)}}function A0(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=t.pe()),i}function Z6(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=t.se()),i}function L4(n,e){var t,i;return t=Jb(n,e),i=null,t&&(i=t.se()),i}function bl(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=gnn(t)),i}function _pe(n,e,t){var i;return i=wm(t),FA(n.g,i,e),FA(n.i,e,t),e}function mJ(n,e,t){this.d=new $7n(this),this.e=n,this.i=e,this.f=t}function MDn(n,e,t,i){this.e=null,this.c=n,this.d=e,this.a=t,this.b=i}function TDn(n,e,t,i){ETn(this),this.c=n,this.e=e,this.f=t,this.b=i}function vJ(n,e,t,i){this.d=n,this.n=e,this.g=t,this.o=i,this.p=-1}function ADn(n,e,t,i){return O(t,59)?new iAn(n,e,t,i):new vW(n,e,t,i)}function N4(n){return O(n,16)?u(n,16).dc():!n.Kc().Ob()}function SDn(n){if(n.e.g!=n.b)throw M(new Bo);return!!n.c&&n.d>0}function be(n){return oe(n.b!=n.d.c),n.c=n.b,n.b=n.b.a,++n.a,n.c.c}function kJ(n,e){Jn(e),$t(n.a,n.c,e),n.c=n.c+1&n.a.length-1,JRn(n)}function V1(n,e){Jn(e),n.b=n.b-1&n.a.length-1,$t(n.a,n.b,e),JRn(n)}function PDn(n){var e;e=n.Gh(),this.a=O(e,71)?u(e,71).Ii():e.Kc()}function Hpe(n){return new In(Ame(u(n.a.md(),16).gc(),n.a.ld()),16)}function IDn(){IDn=F,Gce=Ce((eC(),S(T($1n,1),G,490,0,[Bq])))}function ODn(){ODn=F,Xce=Ce((tC(),S(T(zce,1),G,558,0,[Rq])))}function DDn(){DDn=F,lue=Ce((f6(),S(T(tan,1),G,539,0,[Hj])))}function qpe(){return dd(),S(T(Lon,1),G,389,0,[Ow,Don,P_,I_])}function Upe(){return B4(),S(T(lP,1),G,304,0,[e_,t_,i_,r_])}function Gpe(){return Vp(),S(T(EYn,1),G,332,0,[uj,cj,oj,sj])}function zpe(){return A5(),S(T(TYn,1),G,406,0,[fj,wP,gP,hj])}function Xpe(){return N0(),S(T(yYn,1),G,417,0,[rj,ij,a_,d_])}function Vpe(){return nm(),S(T(MZn,1),G,416,0,[rb,Iw,Pw,a2])}function Wpe(){return $f(),S(T(ene,1),G,421,0,[j3,lv,av,B_])}function Jpe(){return OT(),S(T(UZn,1),G,371,0,[F_,HP,qP,wj])}function Qpe(){return cw(),S(T(RH,1),G,203,0,[TI,BH,S2,A2])}function Ype(){return lh(),S(T(Hhn,1),G,284,0,[k1,_hn,HH,qH])}function Zpe(n){var e;return n.j==(tn(),ae)&&(e=mHn(n),Au(e,Zn))}function n3e(n,e){var t;t=e.a,Zi(t,e.c.d),Ii(t,e.d.d),nw(t.a,n.n)}function yJ(n,e){var t;return t=u(Lf(n.b,e),67),!t&&(t=new Ct),t}function xp(n){return s6(),O(n.g,154)?u(n.g,154):null}function e3e(n){n.a=null,n.e=null,Pb(n.b.c,0),Pb(n.f.c,0),n.c=null}function KM(){KM=F,fH=new Zz(qm,0),Jsn=new Zz("TOP_LEFT",1)}function n5(){n5=F,r9=new eX("UPPER",0),i9=new eX("LOWER",1)}function t3e(n,e){return vp(new V(e.e.a+e.f.a/2,e.e.b+e.f.b/2),n)}function LDn(n,e){return u(ho(_b(u(ot(n.k,e),15).Oc(),b2)),113)}function NDn(n,e){return u(ho(Ap(u(ot(n.k,e),15).Oc(),b2)),113)}function i3e(){return Qp(),S(T(rln,1),G,405,0,[LI,c9,u9,o9])}function r3e(){return w5(),S(T(xln,1),G,353,0,[aq,BI,lq,hq])}function c3e(){return sA(),S(T(c1n,1),G,354,0,[Eq,i1n,r1n,t1n])}function u3e(){return go(),S(T(I9,1),G,386,0,[rE,Gd,iE,Qw])}function o3e(){return To(),S(T(Yue,1),G,291,0,[nE,nl,Ta,Zj])}function s3e(){return El(),S(T(aU,1),G,223,0,[lU,Yj,Kv,F3])}function f3e(){return qT(),S(T(Cdn,1),G,320,0,[wU,ydn,Edn,jdn])}function h3e(){return LT(),S(T(woe,1),G,415,0,[gU,Tdn,Mdn,Adn])}function l3e(n){return $M(),Zc(yU,n)?u(ee(yU,n),341).Qg():null}function Uo(n,e,t){return e<0?hF(n,t):u(t,69).wk().Bk(n,n.hi(),e)}function a3e(n,e,t){var i;return i=wm(t),FA(n.j,i,e),Xe(n.k,e,t),e}function d3e(n,e,t){var i;return i=wm(t),FA(n.d,i,e),Xe(n.e,e,t),e}function $Dn(n){var e,t;return e=(B1(),t=new HO,t),n&&AA(e,n),e}function jJ(n){var e;return e=n.aj(n.i),n.i>0&&Ic(n.g,0,e,0,n.i),e}function xDn(n,e){var t;for(t=n.j.c.length;t>24}function w3e(n){if(n.p!=1)throw M(new Cu);return Ae(n.k)<<24>>24}function g3e(n){if(n.p!=7)throw M(new Cu);return Ae(n.k)<<16>>16}function p3e(n){if(n.p!=7)throw M(new Cu);return Ae(n.f)<<16>>16}function Pg(n,e){return e.e==0||n.e==0?O8:(Am(),vF(n,e))}function RDn(n,e){return x(e)===x(n)?"(this Map)":e==null?gu:Jr(e)}function m3e(n,e,t){return tN(R(Kr(wr(n.f,e))),R(Kr(wr(n.f,t))))}function v3e(n,e,t){var i;i=u(ee(n.g,t),60),nn(n.a.c,new bi(e,i))}function KDn(n,e,t){n.i=0,n.e=0,e!=t&&(jFn(n,e,t),yFn(n,e,t))}function k3e(n,e,t,i,r){var c;c=yMe(r,t,i),nn(e,dEe(r,c)),rje(n,r,e)}function EJ(n,e,t,i,r){this.i=n,this.a=e,this.e=t,this.j=i,this.f=r}function _Dn(n,e){nJ.call(this),this.a=n,this.b=e,nn(this.a.b,this)}function HDn(n){this.b=new de,this.c=new de,this.d=new de,this.a=n}function qDn(n,e){var t;return t=new lp,n.Gd(t),t.a+="..",e.Hd(t),t.a}function UDn(n,e){var t;for(t=e;t;)a0(n,t.i,t.j),t=At(t);return n}function GDn(n,e,t){var i;return i=wm(t),Xe(n.b,i,e),Xe(n.c,e,t),e}function wl(n){var e;for(e=0;n.Ob();)n.Pb(),e=nr(e,1);return oT(e)}function Fh(n,e){dr();var t;return t=u(n,69).vk(),kje(t,e),t.xl(e)}function y3e(n,e,t){if(t){var i=t.oe();n.a[e]=i(t)}else delete n.a[e]}function CJ(n,e){var t;t=n.q.getHours(),n.q.setFullYear(e+fa),G5(n,t)}function j3e(n,e){return u(e==null?Kr(wr(n.f,null)):d6(n.i,e),288)}function MJ(n,e){return n==(Vn(),zt)&&e==zt?4:n==zt||e==zt?8:32}function _M(n,e,t){return RA(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function E3e(n,e,t){return Om(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function C3e(n,e,t){return bMe(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function TJ(n){n.b!=n.c&&(n.a=K(ki,Fn,1,8,5,1),n.b=0,n.c=0)}function e5(n){return oe(n.a=0&&n.a[t]===e[t];t--);return t<0}function HM(n){var e;return n?new fW(n):(e=new ih,A$(e,n),e)}function O3e(n,e){var t,i;i=!1;do t=lFn(n,e),i=i|t;while(t);return i}function D3e(n){n&&rme((az(),sun)),--cP,n&&uP!=-1&&(Ele(uP),uP=-1)}function qM(n){nnn(),LTn(this,Ae(vi(w0(n,24),YA)),Ae(vi(n,YA)))}function JDn(){JDn=F,HQn=Ce((YT(),S(T(Bun,1),G,436,0,[o_,Fun])))}function QDn(){QDn=F,qQn=Ce((cT(),S(T(Kun,1),G,435,0,[Run,s_])))}function YDn(){YDn=F,GYn=Ce((uT(),S(T(bon,1),G,432,0,[v_,vP])))}function ZDn(){ZDn=F,_Zn=Ce((V4(),S(T(KZn,1),G,517,0,[dj,L_])))}function nLn(){nLn=F,Ane=Ce((KM(),S(T(Qsn,1),G,429,0,[fH,Jsn])))}function eLn(){eLn=F,gne=Ce((pk(),S(T($sn,1),G,428,0,[WP,Nsn])))}function tLn(){tLn=F,kne=Ce((hk(),S(T(Bsn,1),G,488,0,[Fsn,QP])))}function iLn(){iLn=F,rie=Ce((wk(),S(T(qhn,1),G,430,0,[UH,GH])))}function rLn(){rLn=F,Die=Ce((n5(),S(T(Oie,1),G,531,0,[r9,i9])))}function cLn(){cLn=F,ane=Ce((QM(),S(T(Asn,1),G,431,0,[Tsn,V_])))}function uLn(){uLn=F,xre=Ce((FM(),S(T(Bln,1),G,433,0,[dq,Fln])))}function oLn(){oLn=F,_re=Ce((yT(),S(T(Rln,1),G,501,0,[RI,D2])))}function sLn(){sLn=F,Rie=Ce((sh(),S(T(Bie,1),G,523,0,[mb,y1])))}function fLn(){fLn=F,_ie=Ce((Sf(),S(T(Kie,1),G,522,0,[Rd,zf])))}function hLn(){hLn=F,tre=Ce((lf(),S(T(ere,1),G,528,0,[zw,ja])))}function lLn(){lLn=F,fre=Ce((M0(),S(T(sre,1),G,465,0,[Ea,P2])))}function aLn(){aLn=F,Ure=Ce((ZM(),S(T(_ln,1),G,434,0,[Kln,vq])))}function dLn(){dLn=F,Rce=Ce((GM(),S(T(S1n,1),G,491,0,[$q,A1n])))}function bLn(){bLn=F,_ce=Ce((N$(),S(T(N1n,1),G,492,0,[D1n,L1n])))}function wLn(){wLn=F,Vce=Ce((ck(),S(T(x1n,1),G,438,0,[Kq,JI])))}function gLn(){gLn=F,aue=Ce((Ak(),S(T(ran,1),G,437,0,[YI,ian])))}function pLn(){pLn=F,aoe=Ce((RL(),S(T(dO,1),G,347,0,[vdn,kdn])))}function L3e(){return ci(),S(T(E9,1),G,88,0,[Wf,Xr,Br,Vf,us])}function N3e(){return tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])}function $3e(n,e,t){return u(e==null?Vc(n.f,null,t):$0(n.i,e,t),288)}function x3e(n){return(n.k==(Vn(),zt)||n.k==Zt)&&kt(n,(W(),H8))}function XN(n){return n.c&&n.d?aJ(n.c)+"->"+aJ(n.d):"e_"+l0(n)}function qi(n,e){var t,i;for(Jn(e),i=n.Kc();i.Ob();)t=i.Pb(),e.Cd(t)}function F3e(n,e){var t;t=new op,nd(t,"x",e.a),nd(t,"y",e.b),Ip(n,t)}function B3e(n,e){var t;t=new op,nd(t,"x",e.a),nd(t,"y",e.b),Ip(n,t)}function mLn(n,e){var t;for(t=e;t;)a0(n,-t.i,-t.j),t=At(t);return n}function SJ(n,e){var t,i;for(t=e,i=0;t>0;)i+=n.a[t],t-=t&-t;return i}function Go(n,e,t){var i;return i=(Ln(e,n.c.length),n.c[e]),n.c[e]=t,i}function PJ(n,e,t){n.a.c.length=0,fOe(n,e,t),n.a.c.length==0||xSe(n,e)}function tk(n){n.i=0,s7(n.b,null),s7(n.c,null),n.a=null,n.e=null,++n.g}function UM(){UM=F,qf=!0,DQn=!1,LQn=!1,$Qn=!1,NQn=!1}function VN(n){UM(),!qf&&(this.c=n,this.e=!0,this.a=new Z)}function vLn(n,e){this.c=0,this.b=e,HMn.call(this,n,17493),this.a=this.c}function kLn(n){jzn(),Syn(this),this.a=new Ct,sY(this,n),xe(this.a,n)}function yLn(){pL(this),this.b=new V(St,St),this.a=new V(li,li)}function GM(){GM=F,$q=new fX(cin,0),A1n=new fX("TARGET_WIDTH",1)}function Ig(n,e){return(ea(n),s4(new Tn(n,new tQ(e,n.a)))).Bd(v3)}function R3e(){return Vi(),S(T(Ion,1),G,367,0,[Xs,Jh,Oc,Kc,zr])}function K3e(){return ow(),S(T(ine,1),G,375,0,[gj,zP,XP,GP,UP])}function _3e(){return o1(),S(T(Lsn,1),G,348,0,[J_,Dsn,Q_,pv,gv])}function H3e(){return T5(),S(T($hn,1),G,323,0,[Nhn,KH,_H,Y8,Z8])}function q3e(){return Yo(),S(T(hfn,1),G,171,0,[Ej,U8,ka,G8,xw])}function U3e(){return wA(),S(T(Hre,1),G,368,0,[pq,bq,mq,wq,gq])}function G3e(){return R5(),S(T(Hce,1),G,373,0,[L2,D3,g9,w9,_j])}function z3e(){return Yk(),S(T(K1n,1),G,324,0,[F1n,_q,R1n,Hq,B1n])}function X3e(){return gf(),S(T(Zh,1),G,170,0,[xn,pi,Ph,Kd,E1])}function V3e(){return Fg(),S(T(A9,1),G,256,0,[Aa,eE,adn,T9,ddn])}function W3e(n){return HE(),function(){return Kpe(n,this,arguments)}}function fr(n){return!n.c||!n.d?!1:!!n.c.i&&n.c.i==n.d.i}function IJ(n,e){return O(e,143)?An(n.c,u(e,143).c):!1}function Zu(n){return n.t||(n.t=new myn(n),k5(new Njn(n),0,n.t)),n.t}function jLn(n){this.b=n,ne.call(this,n),this.a=u(Un(this.b.a,4),129)}function ELn(n){this.b=n,yp.call(this,n),this.a=u(Un(this.b.a,4),129)}function Bs(n,e,t,i,r){LLn.call(this,e,i,r),this.c=n,this.b=t}function OJ(n,e,t,i,r){VOn.call(this,e,i,r),this.c=n,this.a=t}function DJ(n,e,t,i,r){WOn.call(this,e,i,r),this.c=n,this.a=t}function LJ(n,e,t,i,r){LLn.call(this,e,i,r),this.c=n,this.a=t}function WN(n,e){var t;return t=u(Lf(n.d,e),23),t||u(Lf(n.e,e),23)}function CLn(n,e){var t,i;return t=e.ld(),i=n.Fe(t),!!i&&mc(i.e,e.md())}function MLn(n,e){var t;return t=e.ld(),new i0(t,n.e.pc(t,u(e.md(),16)))}function J3e(n,e){var t;return t=n.a.get(e),t??K(ki,Fn,1,0,5,1)}function TLn(n){var e;return e=n.length,An(Yn.substr(Yn.length-e,e),n)}function fe(n){if(pe(n))return n.c=n.a,n.a.Pb();throw M(new nc)}function NJ(n,e){return e==0||n.e==0?n:e>0?wqn(n,e):RBn(n,-e)}function Fp(n,e){return e==0||n.e==0?n:e>0?RBn(n,e):wqn(n,-e)}function $J(n){ole.call(this,n==null?gu:Jr(n),O(n,82)?u(n,82):null)}function ALn(n){var e;return n.c||(e=n.r,O(e,90)&&(n.c=u(e,29))),n.c}function JN(n){var e;return e=new E0,Ur(e,n),U(e,(cn(),Fr),null),e}function SLn(n){var e,t;return e=n.c.i,t=n.d.i,e.k==(Vn(),Zt)&&t.k==Zt}function QN(n){var e,t,i;return e=n&ro,t=n>>22&ro,i=n<0?Il:0,Yc(e,t,i)}function Q3e(n){var e,t,i,r;for(t=n,i=0,r=t.length;i=0?n.Lh(i,t,!0):H0(n,e,t)}function Z3e(n,e,t){return bt(vp(pm(n),Ki(e.b)),vp(pm(n),Ki(t.b)))}function n4e(n,e,t){return bt(vp(pm(n),Ki(e.e)),vp(pm(n),Ki(t.e)))}function e4e(n,e){return y.Math.min(W1(e.a,n.d.d.c),W1(e.b,n.d.d.c))}function ik(n,e){n._i(n.i+1),O6(n,n.i,n.Zi(n.i,e)),n.Mi(n.i++,e),n.Ni()}function t5(n){var e,t;++n.j,e=n.g,t=n.i,n.g=null,n.i=0,n.Oi(t,e),n.Ni()}function PLn(n,e,t){var i;i=new NX(n.a),f5(i,n.a.a),Vc(i.f,e,t),n.a.a=i}function xJ(n,e,t,i){var r;for(r=0;re)throw M(new Ir(Mnn(n,e,"index")));return n}function Yl(n,e){var t;return t=(Ln(e,n.c.length),n.c[e]),Pz(n.c,e,1),t}function RJ(n,e){var t,i;return t=(Jn(n),n),i=(Jn(e),e),t==i?0:te.p?-1:0}function FLn(n){var e;return n.a||(e=n.r,O(e,156)&&(n.a=u(e,156))),n.a}function o4e(n,e,t){var i;return++n.e,--n.f,i=u(n.d[e].gd(t),136),i.md()}function s4e(n){var e,t;return e=n.ld(),t=u(n.md(),16),x7(t.Nc(),new L8n(e))}function BLn(n,e){return Zc(n.a,e)?(Bp(n.a,e),!0):!1}function Rp(n,e,t){return ek(e,n.e.Rd().gc()),ek(t,n.c.Rd().gc()),n.a[e][t]}function XM(n,e,t){this.a=n,this.b=e,this.c=t,nn(n.t,this),nn(e.i,this)}function VM(n,e,t,i){this.f=n,this.e=e,this.d=t,this.b=i,this.c=i?i.d:null}function rk(){this.b=new Ct,this.a=new Ct,this.b=new Ct,this.a=new Ct}function $4(){$4=F;var n,e;MO=(o4(),e=new xE,e),TO=(n=new fD,n)}function f4e(n){var e;return ea(n),e=new ISn(n,n.a.e,n.a.d|4),new uV(n,e)}function RLn(n){var e;for(z1(n),e=0;n.a.Bd(new W0n);)e=nr(e,1);return e}function WM(n,e){return Jn(e),n.c=0,"Initial capacity must not be negative")}function JM(){JM=F,p9=new lt("org.eclipse.elk.labels.labelManager")}function KLn(){KLn=F,ysn=new Dt("separateLayerConnections",(OT(),F_))}function lf(){lf=F,zw=new rX("REGULAR",0),ja=new rX("CRITICAL",1)}function ck(){ck=F,Kq=new lX("FIXED",0),JI=new lX("CENTER_NODE",1)}function QM(){QM=F,Tsn=new Jz("QUADRATIC",0),V_=new Jz("SCANLINE",1)}function _Ln(){_Ln=F,dne=Ce((u5(),S(T(Psn,1),G,322,0,[B8,pj,Ssn])))}function HLn(){HLn=F,bne=Ce((bT(),S(T(Osn,1),G,351,0,[Isn,VP,W_])))}function qLn(){qLn=F,fne=Ce((D0(),S(T(R_,1),G,372,0,[ub,ma,cb])))}function ULn(){ULn=F,mne=Ce((hd(),S(T(pne,1),G,460,0,[Y_,mv,p2])))}function GLn(){GLn=F,Cne=Ce((Z4(),S(T(sH,1),G,299,0,[uH,oH,mj])))}function zLn(){zLn=F,Tne=Ce((vl(),S(T(Mne,1),G,311,0,[vj,v2,E3])))}function XLn(){XLn=F,Zte=Ce((g5(),S(T(Lhn,1),G,390,0,[FH,Dhn,MI])))}function VLn(){VLn=F,oie=Ce((ST(),S(T(zhn,1),G,387,0,[Uhn,zH,Ghn])))}function WLn(){WLn=F,sie=Ce((d5(),S(T(Xhn,1),G,349,0,[VH,XH,Ij])))}function JLn(){JLn=F,uie=Ce((gr(),S(T(cie,1),G,463,0,[n9,Vu,Jc])))}function QLn(){QLn=F,fie=Ce((om(),S(T(Whn,1),G,350,0,[WH,Vhn,e9])))}function YLn(){YLn=F,hie=Ce((dT(),S(T(Yhn,1),G,352,0,[Qhn,JH,Jhn])))}function ZLn(){ZLn=F,lie=Ce((DT(),S(T(Zhn,1),G,388,0,[QH,Ov,Gw])))}function nNn(){nNn=F,are=Ce((b5(),S(T(gln,1),G,392,0,[wln,nq,Lj])))}function eNn(){eNn=F,Gre=Ce((Ok(),S(T(Uln,1),G,393,0,[KI,Hln,qln])))}function tNn(){tNn=F,ace=Ce((AT(),S(T(s1n,1),G,300,0,[Cq,o1n,u1n])))}function iNn(){iNn=F,dce=Ce((XT(),S(T(f1n,1),G,445,0,[Bj,qI,Mq])))}function rNn(){rNn=F,wce=Ce((rA(),S(T(bce,1),G,456,0,[Tq,Sq,Aq])))}function cNn(){cNn=F,mce=Ce((_T(),S(T(a1n,1),G,394,0,[l1n,Oq,h1n])))}function uNn(){uNn=F,Kce=Ce((nT(),S(T(O1n,1),G,439,0,[xq,I1n,P1n])))}function oNn(){oNn=F,Aie=Ce((O0(),S(T(Tie,1),G,464,0,[Oj,t9,PI])))}function sNn(){sNn=F,WQn=Ce((Uu(),S(T(VQn,1),G,471,0,[Mh,ga,Gs])))}function fNn(){fNn=F,XQn=Ce((bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])))}function hNn(){hNn=F,QQn=Ce((bu(),S(T(JQn,1),G,472,0,[vf,pa,zs])))}function lNn(){lNn=F,xQn=Ce((Gu(),S(T(xr,1),G,108,0,[xun,Yr,Aw])))}function aNn(){aNn=F,pZn=Ce((i5(),S(T(Pon,1),G,391,0,[E_,j_,C_])))}function dNn(){dNn=F,Que=Ce((jl(),S(T(ldn,1),G,346,0,[uO,M1,M9])))}function bNn(){bNn=F,Uce=Ce((Fk(),S(T(Fq,1),G,444,0,[XI,VI,WI])))}function wNn(){wNn=F,Xue=Ce((Nf(),S(T(Zan,1),G,278,0,[Bv,Jw,Rv])))}function gNn(){gNn=F,loe=Ce((Gp(),S(T(mdn,1),G,280,0,[pdn,Yw,aO])))}function Df(n,e){return!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),wx(n.o,e)}function h4e(n,e){var t;n.C&&(t=u(Cr(n.b,e),127).n,t.d=n.C.d,t.a=n.C.a)}function UJ(n){var e,t,i,r;r=n.d,e=n.a,t=n.b,i=n.c,n.d=t,n.a=i,n.b=r,n.c=e}function l4e(n){return!n.g&&(n.g=new CE),!n.g.b&&(n.g.b=new byn(n)),n.g.b}function uk(n){return!n.g&&(n.g=new CE),!n.g.c&&(n.g.c=new pyn(n)),n.g.c}function a4e(n){return!n.g&&(n.g=new CE),!n.g.d&&(n.g.d=new wyn(n)),n.g.d}function d4e(n){return!n.g&&(n.g=new CE),!n.g.a&&(n.g.a=new gyn(n)),n.g.a}function b4e(n,e,t,i){return t&&(i=t.Rh(e,Ot(t.Dh(),n.c.uk()),null,i)),i}function w4e(n,e,t,i){return t&&(i=t.Th(e,Ot(t.Dh(),n.c.uk()),null,i)),i}function e$(n,e,t,i){var r;return r=K(ye,Ke,28,e+1,15,1),vPe(r,n,e,t,i),r}function K(n,e,t,i,r,c){var s;return s=_Rn(r,i),r!=10&&S(T(n,c),e,t,r,s),s}function g4e(n,e,t){var i,r;for(r=new Y4(e,n),i=0;it||e=0?n.Lh(t,!0,!0):H0(n,e,!0)}function L4e(n,e,t){var i;return i=vFn(n,e,t),n.b=new ET(i.c.length),den(n,i)}function N4e(n){if(n.b<=0)throw M(new nc);return--n.b,n.a-=n.c.c,Y(n.a)}function $4e(n){var e;if(!n.a)throw M(new PIn);return e=n.a,n.a=At(n.a),e}function x4e(n){for(;!n.a;)if(!eSn(n.c,new C9n(n)))return!1;return!0}function Kp(n){var e;return Se(n),O(n,204)?(e=u(n,204),e):new _8n(n)}function F4e(n){YM(),u(n.of((qe(),Ww)),181).Fc((zu(),tE)),n.qf(sU,null)}function YM(){YM=F,wue=new Emn,pue=new Cmn,gue=M6e((qe(),sU),wue,Ma,pue)}function ZM(){ZM=F,Kln=new sX("LEAF_NUMBER",0),vq=new sX("NODE_SIZE",1)}function u$(n){n.a=K(ye,Ke,28,n.b+1,15,1),n.c=K(ye,Ke,28,n.b,15,1),n.d=0}function B4e(n,e){n.a.Ne(e.d,n.b)>0&&(nn(n.c,new GV(e.c,e.d,n.d)),n.b=e.d)}function nQ(n,e){if(n.g==null||e>=n.i)throw M(new aL(e,n.i));return n.g[e]}function kNn(n,e,t){if(rm(n,t),t!=null&&!n.fk(t))throw M(new uD);return t}function o$(n,e){return gk(e)!=10&&S(wo(e),e.Sm,e.__elementTypeId$,gk(e),n),n}function F4(n,e,t,i){var r;i=(j0(),i||Pun),r=n.slice(e,t),Tnn(r,n,e,t,-e,i)}function zo(n,e,t,i,r){return e<0?H0(n,t,i):u(t,69).wk().yk(n,n.hi(),e,i,r)}function R4e(n,e){return bt($(R(v(n,(W(),fb)))),$(R(v(e,fb))))}function yNn(){yNn=F,IQn=Ce((B4(),S(T(lP,1),G,304,0,[e_,t_,i_,r_])))}function B4(){B4=F,e_=new uC("All",0),t_=new lTn,i_=new kTn,r_=new hTn}function Uu(){Uu=F,Mh=new FD(s3,0),ga=new FD(qm,1),Gs=new FD(f3,2)}function jNn(){jNn=F,KA(),s0n=St,mse=li,f0n=new V9(St),vse=new V9(li)}function ENn(){ENn=F,jYn=Ce((N0(),S(T(yYn,1),G,417,0,[rj,ij,a_,d_])))}function CNn(){CNn=F,AYn=Ce((A5(),S(T(TYn,1),G,406,0,[fj,wP,gP,hj])))}function MNn(){MNn=F,CYn=Ce((Vp(),S(T(EYn,1),G,332,0,[uj,cj,oj,sj])))}function TNn(){TNn=F,DZn=Ce((dd(),S(T(Lon,1),G,389,0,[Ow,Don,P_,I_])))}function ANn(){ANn=F,TZn=Ce((nm(),S(T(MZn,1),G,416,0,[rb,Iw,Pw,a2])))}function SNn(){SNn=F,tne=Ce(($f(),S(T(ene,1),G,421,0,[j3,lv,av,B_])))}function PNn(){PNn=F,GZn=Ce((OT(),S(T(UZn,1),G,371,0,[F_,HP,qP,wj])))}function INn(){INn=F,nie=Ce((cw(),S(T(RH,1),G,203,0,[TI,BH,S2,A2])))}function ONn(){ONn=F,iie=Ce((lh(),S(T(Hhn,1),G,284,0,[k1,_hn,HH,qH])))}function hk(){hk=F,Fsn=new Yz(kh,0),QP=new Yz("IMPROVE_STRAIGHTNESS",1)}function DNn(n,e){var t,i;return i=e/n.c.Rd().gc()|0,t=e%n.c.Rd().gc(),Rp(n,i,t)}function LNn(n){var e;if(n.nl())for(e=n.i-1;e>=0;--e)L(n,e);return jJ(n)}function eQ(n){var e,t;if(!n.b)return null;for(t=n.b;e=t.a[0];)t=e;return t}function NNn(n){var e,t;if(!n.b)return null;for(t=n.b;e=t.a[1];)t=e;return t}function K4e(n){return O(n,180)?""+u(n,180).a:n==null?null:Jr(n)}function _4e(n){return O(n,180)?""+u(n,180).a:n==null?null:Jr(n)}function $Nn(n,e){if(e.a)throw M(new ec(nXn));fi(n.a,e),e.a=n,!n.j&&(n.j=e)}function tQ(n,e){IC.call(this,e.zd(),e.yd()&-16449),Jn(n),this.a=n,this.c=e}function H4e(n,e){return new _L(e,a0(Ki(e.e),e.f.a+n,e.f.b+n),(_n(),!1))}function q4e(n,e){return k4(),nn(n,new bi(e,Y(e.e.c.length+e.g.c.length)))}function U4e(n,e){return k4(),nn(n,new bi(e,Y(e.e.c.length+e.g.c.length)))}function xNn(){xNn=F,lce=Ce((sA(),S(T(c1n,1),G,354,0,[Eq,i1n,r1n,t1n])))}function FNn(){FNn=F,$re=Ce((w5(),S(T(xln,1),G,353,0,[aq,BI,lq,hq])))}function BNn(){BNn=F,hre=Ce((Qp(),S(T(rln,1),G,405,0,[LI,c9,u9,o9])))}function RNn(){RNn=F,Vue=Ce((El(),S(T(aU,1),G,223,0,[lU,Yj,Kv,F3])))}function KNn(){KNn=F,Zue=Ce((To(),S(T(Yue,1),G,291,0,[nE,nl,Ta,Zj])))}function _Nn(){_Nn=F,foe=Ce((go(),S(T(I9,1),G,386,0,[rE,Gd,iE,Qw])))}function HNn(){HNn=F,doe=Ce((qT(),S(T(Cdn,1),G,320,0,[wU,ydn,Edn,jdn])))}function qNn(){qNn=F,goe=Ce((LT(),S(T(woe,1),G,415,0,[gU,Tdn,Mdn,Adn])))}function nT(){nT=F,xq=new oL(mVn,0),I1n=new oL(Crn,1),P1n=new oL(kh,2)}function Wb(n,e,t,i,r){return Jn(n),Jn(e),Jn(t),Jn(i),Jn(r),new AW(n,e,i)}function UNn(n,e){var t;return t=u(Bp(n.e,e),400),t?(tW(t),t.e):null}function du(n,e){var t;return t=qr(n,e,0),t==-1?!1:(Yl(n,t),!0)}function GNn(n,e,t){var i;return z1(n),i=new LO,i.a=e,n.a.Nb(new TCn(i,t)),i.a}function G4e(n){var e;return z1(n),e=K(Pi,Tr,28,0,15,1),hg(n.a,new y9n(e)),e}function iQ(n){var e;if(!E$(n))throw M(new nc);return n.e=1,e=n.d,n.d=null,e}function n1(n){var e;return Vr(n)&&(e=0-n,!isNaN(e))?e:Q1(tm(n))}function qr(n,e,t){for(;t=0?tA(n,t,!0,!0):H0(n,e,!0)}function cQ(n){var e;return e=cd(Un(n,32)),e==null&&(iu(n),e=cd(Un(n,32))),e}function uQ(n){var e;return n.Oh()||(e=se(n.Dh())-n.ji(),n.$h().Mk(e)),n.zh()}function QNn(n,e){con=new kE,MYn=e,L8=n,u(L8.b,68),XJ(L8,con,null),aGn(L8)}function i5(){i5=F,E_=new RD("XY",0),j_=new RD("X",1),C_=new RD("Y",2)}function bu(){bu=F,vf=new BD("TOP",0),pa=new BD(qm,1),zs=new BD(Ftn,2)}function vl(){vl=F,vj=new GD(kh,0),v2=new GD("TOP",1),E3=new GD(Ftn,2)}function wk(){wk=F,UH=new nX("INPUT_ORDER",0),GH=new nX("PORT_DEGREE",1)}function R4(){R4=F,hun=Yc(ro,ro,524287),bQn=Yc(0,0,Ty),lun=QN(1),QN(2),aun=QN(0)}function a$(n){var e;return n.d!=n.r&&(e=ws(n),n.e=!!e&&e.lk()==bJn,n.d=e),n.e}function d$(n,e,t){var i;return i=n.g[e],O6(n,e,n.Zi(e,t)),n.Ri(e,t,i),n.Ni(),i}function rT(n,e){var t;return t=n.dd(e),t>=0?(n.gd(t),!0):!1}function b$(n,e){var t;for(Se(n),Se(e),t=!1;e.Ob();)t=t|n.Fc(e.Pb());return t}function Lf(n,e){var t;return t=u(ee(n.e,e),400),t?(DTn(n,t),t.e):null}function YNn(n){var e,t;return e=n/60|0,t=n%60,t==0?""+e:""+e+":"+(""+t)}function Jb(n,e){var t=n.a[e],i=(K$(),WK)[typeof t];return i?i(t):wY(typeof t)}function rc(n,e){var t,i;return ea(n),i=new _J(e,n.a),t=new rSn(i),new Tn(n,t)}function w$(n){var e;return e=n.b.c.length==0?null:sn(n.b,0),e!=null&&M$(n,0),e}function W4e(n,e){var t,i,r;r=e.c.i,t=u(ee(n.f,r),60),i=t.d.c-t.e.c,BQ(e.a,i,0)}function oQ(n,e){var t;for(++n.d,++n.c[e],t=e+1;t0&&arguments[0]!==void 0?arguments[0]:{},Yi=ze.defaultLayoutOptions,Ri=Yi===void 0?{}:Yi,En=ze.algorithms,hu=En===void 0?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:En,Qc=ze.workerFactory,Ru=ze.workerUrl;if(y(this,Ht),this.defaultLayoutOptions=Ri,this.initialized=!1,typeof Ru>"u"&&typeof Qc>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var Pr=Qc;typeof Ru<"u"&&typeof Qc>"u"&&(Pr=function(N1){return new Worker(N1)});var Cf=Pr(Ru);if(typeof Cf.postMessage!="function")throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new Bu(Cf),this.worker.postMessage({cmd:"register",algorithms:hu}).then(function(L1){return Jt.initialized=!0}).catch(console.err)}return Di(Ht,[{key:"layout",value:function(ze){var Yi=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ri=Yi.layoutOptions,En=Ri===void 0?this.defaultLayoutOptions:Ri,hu=Yi.logging,Qc=hu===void 0?!1:hu,Ru=Yi.measureExecutionTime,Pr=Ru===void 0?!1:Ru;return ze?this.worker.postMessage({cmd:"layout",graph:ze,layoutOptions:En,options:{logging:Qc,measureExecutionTime:Pr}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker&&this.worker.terminate()}}]),Ht}();Sr.default=Wt;var Bu=function(){function Ht(Jt){var ze=this;if(y(this,Ht),Jt===void 0)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=Jt,this.worker.onmessage=function(Yi){setTimeout(function(){ze.receive(ze,Yi)},0)}}return Di(Ht,[{key:"postMessage",value:function(ze){var Yi=this.id||0;this.id=Yi+1,ze.id=Yi;var Ri=this;return new Promise(function(En,hu){Ri.resolvers[Yi]=function(Qc,Ru){Qc?(Ri.convertGwtStyleError(Qc),hu(Qc)):En(Ru)},Ri.worker.postMessage(ze)})}},{key:"receive",value:function(ze,Yi){var Ri=Yi.data,En=ze.resolvers[Ri.id];En&&(delete ze.resolvers[Ri.id],Ri.error?En(Ri.error):En(null,Ri.data))}},{key:"terminate",value:function(){this.worker&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(ze){if(ze){var Yi=ze.__java$exception;Yi&&(Yi.cause&&Yi.cause.backingJsObject&&(ze.cause=Yi.cause.backingJsObject,this.convertGwtStyleError(ze.cause)),delete ze.__java$exception)}}}]),Ht}()},{}],2:[function(Xt,gt,Sr){(function(Di){(function(){var y;typeof window<"u"?y=window:typeof Di<"u"?y=Di:typeof self<"u"&&(y=self);var Wt;function Bu(){}function Ht(){}function Jt(){}function ze(){}function Yi(){}function Ri(){}function En(){}function hu(){}function Qc(){}function Ru(){}function Pr(){}function Cf(){}function L1(){}function N1(){}function og(){}function V3(){}function $1(){}function ul(){}function C0n(){}function M0n(){}function J2(){}function F(){}function T0n(){}function mE(){}function A0n(){}function S0n(){}function P0n(){}function I0n(){}function O0n(){}function FU(){}function D0n(){}function L0n(){}function N0n(){}function OO(){}function $0n(){}function x0n(){}function F0n(){}function DO(){}function B0n(){}function R0n(){}function BU(){}function K0n(){}function _0n(){}function yu(){}function ju(){}function Q2(){}function Y2(){}function H0n(){}function q0n(){}function U0n(){}function G0n(){}function RU(){}function Eu(){}function Z2(){}function np(){}function z0n(){}function X0n(){}function LO(){}function V0n(){}function W0n(){}function J0n(){}function Q0n(){}function Y0n(){}function Z0n(){}function nbn(){}function ebn(){}function tbn(){}function ibn(){}function rbn(){}function cbn(){}function ubn(){}function obn(){}function sbn(){}function fbn(){}function hbn(){}function lbn(){}function abn(){}function dbn(){}function bbn(){}function wbn(){}function gbn(){}function pbn(){}function mbn(){}function vbn(){}function kbn(){}function ybn(){}function jbn(){}function Ebn(){}function Cbn(){}function Mbn(){}function Tbn(){}function KU(){}function Abn(){}function Sbn(){}function Pbn(){}function Ibn(){}function NO(){}function $O(){}function vE(){}function Obn(){}function Dbn(){}function xO(){}function Lbn(){}function Nbn(){}function $bn(){}function kE(){}function xbn(){}function Fbn(){}function Bbn(){}function Rbn(){}function Kbn(){}function _bn(){}function Hbn(){}function qbn(){}function Ubn(){}function _U(){}function Gbn(){}function zbn(){}function HU(){}function Xbn(){}function Vbn(){}function Wbn(){}function Jbn(){}function Qbn(){}function Ybn(){}function Zbn(){}function nwn(){}function ewn(){}function twn(){}function iwn(){}function rwn(){}function cwn(){}function FO(){}function uwn(){}function own(){}function swn(){}function fwn(){}function hwn(){}function lwn(){}function awn(){}function dwn(){}function bwn(){}function qU(){}function UU(){}function wwn(){}function gwn(){}function pwn(){}function mwn(){}function vwn(){}function kwn(){}function ywn(){}function jwn(){}function Ewn(){}function Cwn(){}function Mwn(){}function Twn(){}function Awn(){}function Swn(){}function Pwn(){}function Iwn(){}function Own(){}function Dwn(){}function Lwn(){}function Nwn(){}function $wn(){}function xwn(){}function Fwn(){}function Bwn(){}function Rwn(){}function Kwn(){}function _wn(){}function Hwn(){}function qwn(){}function Uwn(){}function Gwn(){}function zwn(){}function Xwn(){}function Vwn(){}function Wwn(){}function Jwn(){}function Qwn(){}function Ywn(){}function Zwn(){}function ngn(){}function egn(){}function tgn(){}function ign(){}function rgn(){}function cgn(){}function ugn(){}function ogn(){}function sgn(){}function fgn(){}function hgn(){}function lgn(){}function agn(){}function dgn(){}function bgn(){}function wgn(){}function ggn(){}function pgn(){}function mgn(){}function vgn(){}function kgn(){}function ygn(){}function jgn(){}function Egn(){}function Cgn(){}function Mgn(){}function Tgn(){}function Agn(){}function Sgn(){}function Pgn(){}function Ign(){}function Ogn(){}function Dgn(){}function Lgn(){}function Ngn(){}function $gn(){}function xgn(){}function Fgn(){}function Bgn(){}function Rgn(){}function Kgn(){}function _gn(){}function Hgn(){}function qgn(){}function Ugn(){}function Ggn(){}function zgn(){}function Xgn(){}function Vgn(){}function Wgn(){}function Jgn(){}function Qgn(){}function Ygn(){}function Zgn(){}function n2n(){}function e2n(){}function t2n(){}function i2n(){}function r2n(){}function c2n(){}function u2n(){}function GU(){}function o2n(){}function s2n(){}function f2n(){}function h2n(){}function l2n(){}function a2n(){}function d2n(){}function b2n(){}function w2n(){}function g2n(){}function p2n(){}function m2n(){}function v2n(){}function k2n(){}function y2n(){}function j2n(){}function E2n(){}function C2n(){}function M2n(){}function T2n(){}function A2n(){}function S2n(){}function P2n(){}function I2n(){}function O2n(){}function D2n(){}function L2n(){}function N2n(){}function $2n(){}function x2n(){}function F2n(){}function B2n(){}function R2n(){}function K2n(){}function _2n(){}function H2n(){}function q2n(){}function U2n(){}function G2n(){}function z2n(){}function X2n(){}function V2n(){}function W2n(){}function J2n(){}function Q2n(){}function Y2n(){}function Z2n(){}function npn(){}function epn(){}function tpn(){}function ipn(){}function rpn(){}function cpn(){}function upn(){}function opn(){}function spn(){}function fpn(){}function hpn(){}function lpn(){}function apn(){}function dpn(){}function bpn(){}function wpn(){}function gpn(){}function ppn(){}function mpn(){}function vpn(){}function kpn(){}function ypn(){}function jpn(){}function Epn(){}function Cpn(){}function Mpn(){}function zU(){}function Tpn(){}function Apn(){}function Spn(){}function Ppn(){}function Ipn(){}function Opn(){}function Dpn(){}function Lpn(){}function Npn(){}function $pn(){}function XU(){}function xpn(){}function Fpn(){}function Bpn(){}function Rpn(){}function Kpn(){}function _pn(){}function VU(){}function WU(){}function Hpn(){}function JU(){}function QU(){}function qpn(){}function Upn(){}function Gpn(){}function zpn(){}function Xpn(){}function Vpn(){}function Wpn(){}function Jpn(){}function Qpn(){}function Ypn(){}function Zpn(){}function YU(){}function n3n(){}function e3n(){}function t3n(){}function i3n(){}function r3n(){}function c3n(){}function u3n(){}function o3n(){}function s3n(){}function f3n(){}function h3n(){}function l3n(){}function a3n(){}function d3n(){}function b3n(){}function w3n(){}function g3n(){}function p3n(){}function m3n(){}function v3n(){}function k3n(){}function y3n(){}function j3n(){}function E3n(){}function C3n(){}function M3n(){}function T3n(){}function A3n(){}function S3n(){}function P3n(){}function I3n(){}function O3n(){}function D3n(){}function L3n(){}function N3n(){}function $3n(){}function x3n(){}function F3n(){}function B3n(){}function R3n(){}function K3n(){}function _3n(){}function H3n(){}function q3n(){}function U3n(){}function G3n(){}function z3n(){}function X3n(){}function V3n(){}function W3n(){}function J3n(){}function Q3n(){}function Y3n(){}function Z3n(){}function n4n(){}function e4n(){}function t4n(){}function i4n(){}function r4n(){}function c4n(){}function u4n(){}function o4n(){}function s4n(){}function f4n(){}function h4n(){}function l4n(){}function a4n(){}function d4n(){}function b4n(){}function w4n(){}function g4n(){}function p4n(){}function m4n(){}function v4n(){}function k4n(){}function y4n(){}function j4n(){}function E4n(){}function C4n(){}function M4n(){}function T4n(){}function A4n(){}function S4n(){}function P4n(){}function I4n(){}function O4n(){}function _se(){}function D4n(){}function L4n(){}function N4n(){}function $4n(){}function x4n(){}function F4n(){}function B4n(){}function R4n(){}function K4n(){}function _4n(){}function H4n(){}function q4n(){}function U4n(){}function G4n(){}function z4n(){}function X4n(){}function V4n(){}function W4n(){}function J4n(){}function Q4n(){}function Y4n(){}function Z4n(){}function nmn(){}function emn(){}function tmn(){}function imn(){}function rmn(){}function BO(){}function RO(){}function cmn(){}function KO(){}function umn(){}function omn(){}function smn(){}function fmn(){}function hmn(){}function lmn(){}function amn(){}function dmn(){}function bmn(){}function wmn(){}function ZU(){}function gmn(){}function pmn(){}function mmn(){}function Hse(){}function vmn(){}function kmn(){}function ymn(){}function jmn(){}function Emn(){}function Cmn(){}function Mmn(){}function Ra(){}function Tmn(){}function ep(){}function nG(){}function Amn(){}function Smn(){}function Pmn(){}function Imn(){}function Omn(){}function Dmn(){}function Lmn(){}function Nmn(){}function $mn(){}function xmn(){}function Fmn(){}function Bmn(){}function Rmn(){}function Kmn(){}function _mn(){}function Hmn(){}function qmn(){}function Umn(){}function Gmn(){}function hn(){}function zmn(){}function Xmn(){}function Vmn(){}function Wmn(){}function Jmn(){}function Qmn(){}function Ymn(){}function Zmn(){}function nvn(){}function evn(){}function tvn(){}function ivn(){}function rvn(){}function _O(){}function cvn(){}function uvn(){}function ovn(){}function yE(){}function svn(){}function HO(){}function jE(){}function fvn(){}function eG(){}function hvn(){}function lvn(){}function avn(){}function dvn(){}function bvn(){}function wvn(){}function EE(){}function gvn(){}function pvn(){}function CE(){}function mvn(){}function ME(){}function vvn(){}function tG(){}function kvn(){}function qO(){}function iG(){}function yvn(){}function jvn(){}function Evn(){}function Cvn(){}function qse(){}function Mvn(){}function Tvn(){}function Avn(){}function Svn(){}function Pvn(){}function Ivn(){}function Ovn(){}function Dvn(){}function Lvn(){}function Nvn(){}function W3(){}function UO(){}function $vn(){}function xvn(){}function Fvn(){}function Bvn(){}function Rvn(){}function Kvn(){}function _vn(){}function Hvn(){}function qvn(){}function Uvn(){}function Gvn(){}function zvn(){}function Xvn(){}function Vvn(){}function Wvn(){}function Jvn(){}function Qvn(){}function Yvn(){}function Zvn(){}function n6n(){}function e6n(){}function t6n(){}function i6n(){}function r6n(){}function c6n(){}function u6n(){}function o6n(){}function s6n(){}function f6n(){}function h6n(){}function l6n(){}function a6n(){}function d6n(){}function b6n(){}function w6n(){}function g6n(){}function p6n(){}function m6n(){}function v6n(){}function k6n(){}function y6n(){}function j6n(){}function E6n(){}function C6n(){}function M6n(){}function T6n(){}function A6n(){}function S6n(){}function P6n(){}function I6n(){}function O6n(){}function D6n(){}function L6n(){}function N6n(){}function $6n(){}function x6n(){}function F6n(){}function B6n(){}function R6n(){}function K6n(){}function _6n(){}function H6n(){}function q6n(){}function U6n(){}function G6n(){}function z6n(){}function X6n(){}function V6n(){}function W6n(){}function J6n(){}function Q6n(){}function Y6n(){}function Z6n(){}function n5n(){}function e5n(){}function t5n(){}function i5n(){}function r5n(){}function c5n(){}function u5n(){}function o5n(){}function s5n(){}function f5n(){}function h5n(){}function l5n(){}function a5n(){}function d5n(){}function b5n(){}function w5n(){}function g5n(){}function p5n(){}function m5n(){}function v5n(){}function k5n(){}function y5n(){}function j5n(){}function E5n(){}function C5n(){}function M5n(){}function T5n(){}function A5n(){}function rG(){}function S5n(){}function P5n(){}function GO(){n6()}function I5n(){u7()}function O5n(){aA()}function D5n(){Q$()}function L5n(){M5()}function N5n(){ann()}function $5n(){qs()}function x5n(){jZ()}function F5n(){zk()}function B5n(){o7()}function R5n(){$7()}function K5n(){aCn()}function _5n(){Hp()}function H5n(){KLn()}function q5n(){yQ()}function U5n(){SOn()}function G5n(){jQ()}function z5n(){pNn()}function X5n(){AOn()}function V5n(){cm()}function W5n(){nxn()}function J5n(){Z$n()}function Q5n(){EDn()}function Y5n(){exn()}function Z5n(){ca()}function n8n(){ZE()}function e8n(){ltn()}function t8n(){cn()}function i8n(){txn()}function r8n(){Pxn()}function c8n(){POn()}function u8n(){nKn()}function o8n(){IOn()}function s8n(){bUn()}function f8n(){qnn()}function h8n(){kl()}function l8n(){wBn()}function a8n(){lc()}function d8n(){ROn()}function b8n(){_p()}function w8n(){Men()}function g8n(){ua()}function p8n(){Ten()}function m8n(){Bf()}function v8n(){Qk()}function k8n(){EF()}function y8n(){Dx()}function cf(){wSn()}function j8n(){YM()}function E8n(){mA()}function cG(){qe()}function C8n(){NT()}function M8n(){YY()}function uG(){D$()}function oG(){KA()}function T8n(){Fen()}function sG(n){Jn(n)}function A8n(n){this.a=n}function TE(n){this.a=n}function S8n(n){this.a=n}function P8n(n){this.a=n}function I8n(n){this.a=n}function O8n(n){this.a=n}function D8n(n){this.a=n}function L8n(n){this.a=n}function fG(n){this.a=n}function hG(n){this.a=n}function N8n(n){this.a=n}function $8n(n){this.a=n}function zO(n){this.a=n}function x8n(n){this.a=n}function F8n(n){this.a=n}function XO(n){this.a=n}function VO(n){this.a=n}function B8n(n){this.a=n}function WO(n){this.a=n}function R8n(n){this.a=n}function K8n(n){this.a=n}function _8n(n){this.a=n}function lG(n){this.b=n}function H8n(n){this.c=n}function q8n(n){this.a=n}function U8n(n){this.a=n}function G8n(n){this.a=n}function z8n(n){this.a=n}function X8n(n){this.a=n}function V8n(n){this.a=n}function W8n(n){this.a=n}function J8n(n){this.a=n}function Q8n(n){this.a=n}function Y8n(n){this.a=n}function Z8n(n){this.a=n}function n9n(n){this.a=n}function e9n(n){this.a=n}function aG(n){this.a=n}function dG(n){this.a=n}function AE(n){this.a=n}function z9(n){this.a=n}function Ka(){this.a=[]}function t9n(n,e){n.a=e}function Use(n,e){n.a=e}function Gse(n,e){n.b=e}function zse(n,e){n.b=e}function Xse(n,e){n.b=e}function bG(n,e){n.j=e}function Vse(n,e){n.g=e}function Wse(n,e){n.i=e}function Jse(n,e){n.c=e}function Qse(n,e){n.c=e}function Yse(n,e){n.d=e}function Zse(n,e){n.d=e}function _a(n,e){n.k=e}function nfe(n,e){n.c=e}function wG(n,e){n.c=e}function gG(n,e){n.a=e}function efe(n,e){n.a=e}function tfe(n,e){n.f=e}function ife(n,e){n.a=e}function rfe(n,e){n.b=e}function JO(n,e){n.d=e}function SE(n,e){n.i=e}function pG(n,e){n.o=e}function cfe(n,e){n.r=e}function ufe(n,e){n.a=e}function ofe(n,e){n.b=e}function i9n(n,e){n.e=e}function sfe(n,e){n.f=e}function mG(n,e){n.g=e}function ffe(n,e){n.e=e}function hfe(n,e){n.f=e}function lfe(n,e){n.f=e}function QO(n,e){n.a=e}function YO(n,e){n.b=e}function afe(n,e){n.n=e}function dfe(n,e){n.a=e}function bfe(n,e){n.c=e}function wfe(n,e){n.c=e}function gfe(n,e){n.c=e}function pfe(n,e){n.a=e}function mfe(n,e){n.a=e}function vfe(n,e){n.d=e}function kfe(n,e){n.d=e}function yfe(n,e){n.e=e}function jfe(n,e){n.e=e}function Efe(n,e){n.g=e}function Cfe(n,e){n.f=e}function Mfe(n,e){n.j=e}function Tfe(n,e){n.a=e}function Afe(n,e){n.a=e}function Sfe(n,e){n.b=e}function r9n(n){n.b=n.a}function c9n(n){n.c=n.d.d}function vG(n){this.a=n}function kG(n){this.a=n}function yG(n){this.a=n}function Ha(n){this.a=n}function qa(n){this.a=n}function X9(n){this.a=n}function u9n(n){this.a=n}function jG(n){this.a=n}function V9(n){this.a=n}function PE(n){this.a=n}function ol(n){this.a=n}function Sb(n){this.a=n}function o9n(n){this.a=n}function s9n(n){this.a=n}function ZO(n){this.b=n}function J3(n){this.b=n}function Q3(n){this.b=n}function nD(n){this.a=n}function f9n(n){this.a=n}function eD(n){this.c=n}function C(n){this.c=n}function h9n(n){this.c=n}function Xv(n){this.d=n}function EG(n){this.a=n}function Te(n){this.a=n}function l9n(n){this.a=n}function CG(n){this.a=n}function MG(n){this.a=n}function TG(n){this.a=n}function AG(n){this.a=n}function SG(n){this.a=n}function PG(n){this.a=n}function Y3(n){this.a=n}function a9n(n){this.a=n}function d9n(n){this.a=n}function Z3(n){this.a=n}function b9n(n){this.a=n}function w9n(n){this.a=n}function g9n(n){this.a=n}function p9n(n){this.a=n}function m9n(n){this.a=n}function v9n(n){this.a=n}function k9n(n){this.a=n}function y9n(n){this.a=n}function j9n(n){this.a=n}function E9n(n){this.a=n}function C9n(n){this.a=n}function M9n(n){this.a=n}function T9n(n){this.a=n}function A9n(n){this.a=n}function S9n(n){this.a=n}function Vv(n){this.a=n}function P9n(n){this.a=n}function I9n(n){this.a=n}function O9n(n){this.a=n}function D9n(n){this.a=n}function IE(n){this.a=n}function L9n(n){this.a=n}function N9n(n){this.a=n}function n4(n){this.a=n}function IG(n){this.a=n}function $9n(n){this.a=n}function x9n(n){this.a=n}function F9n(n){this.a=n}function B9n(n){this.a=n}function R9n(n){this.a=n}function K9n(n){this.a=n}function OG(n){this.a=n}function DG(n){this.a=n}function LG(n){this.a=n}function Wv(n){this.a=n}function OE(n){this.e=n}function e4(n){this.a=n}function _9n(n){this.a=n}function tp(n){this.a=n}function NG(n){this.a=n}function H9n(n){this.a=n}function q9n(n){this.a=n}function U9n(n){this.a=n}function G9n(n){this.a=n}function z9n(n){this.a=n}function X9n(n){this.a=n}function V9n(n){this.a=n}function W9n(n){this.a=n}function J9n(n){this.a=n}function Q9n(n){this.a=n}function Y9n(n){this.a=n}function $G(n){this.a=n}function Z9n(n){this.a=n}function n7n(n){this.a=n}function e7n(n){this.a=n}function t7n(n){this.a=n}function i7n(n){this.a=n}function r7n(n){this.a=n}function c7n(n){this.a=n}function u7n(n){this.a=n}function o7n(n){this.a=n}function s7n(n){this.a=n}function f7n(n){this.a=n}function h7n(n){this.a=n}function l7n(n){this.a=n}function a7n(n){this.a=n}function d7n(n){this.a=n}function b7n(n){this.a=n}function w7n(n){this.a=n}function g7n(n){this.a=n}function p7n(n){this.a=n}function m7n(n){this.a=n}function v7n(n){this.a=n}function k7n(n){this.a=n}function y7n(n){this.a=n}function j7n(n){this.a=n}function E7n(n){this.a=n}function C7n(n){this.a=n}function M7n(n){this.a=n}function T7n(n){this.a=n}function A7n(n){this.a=n}function S7n(n){this.a=n}function P7n(n){this.a=n}function I7n(n){this.a=n}function O7n(n){this.a=n}function D7n(n){this.a=n}function L7n(n){this.a=n}function N7n(n){this.a=n}function $7n(n){this.a=n}function x7n(n){this.a=n}function F7n(n){this.c=n}function B7n(n){this.b=n}function R7n(n){this.a=n}function K7n(n){this.a=n}function _7n(n){this.a=n}function H7n(n){this.a=n}function q7n(n){this.a=n}function U7n(n){this.a=n}function G7n(n){this.a=n}function z7n(n){this.a=n}function X7n(n){this.a=n}function V7n(n){this.a=n}function W7n(n){this.a=n}function J7n(n){this.a=n}function Q7n(n){this.a=n}function Y7n(n){this.a=n}function Z7n(n){this.a=n}function nkn(n){this.a=n}function ekn(n){this.a=n}function tkn(n){this.a=n}function ikn(n){this.a=n}function rkn(n){this.a=n}function ckn(n){this.a=n}function ukn(n){this.a=n}function okn(n){this.a=n}function skn(n){this.a=n}function fkn(n){this.a=n}function hkn(n){this.a=n}function lkn(n){this.a=n}function sl(n){this.a=n}function sg(n){this.a=n}function akn(n){this.a=n}function dkn(n){this.a=n}function bkn(n){this.a=n}function wkn(n){this.a=n}function gkn(n){this.a=n}function pkn(n){this.a=n}function mkn(n){this.a=n}function vkn(n){this.a=n}function kkn(n){this.a=n}function ykn(n){this.a=n}function jkn(n){this.a=n}function Ekn(n){this.a=n}function Ckn(n){this.a=n}function Mkn(n){this.a=n}function Tkn(n){this.a=n}function Akn(n){this.a=n}function Skn(n){this.a=n}function Pkn(n){this.a=n}function Ikn(n){this.a=n}function Okn(n){this.a=n}function Dkn(n){this.a=n}function Lkn(n){this.a=n}function Nkn(n){this.a=n}function $kn(n){this.a=n}function xkn(n){this.a=n}function Fkn(n){this.a=n}function DE(n){this.a=n}function Bkn(n){this.f=n}function Rkn(n){this.a=n}function Kkn(n){this.a=n}function _kn(n){this.a=n}function Hkn(n){this.a=n}function qkn(n){this.a=n}function Ukn(n){this.a=n}function Gkn(n){this.a=n}function zkn(n){this.a=n}function Xkn(n){this.a=n}function Vkn(n){this.a=n}function Wkn(n){this.a=n}function Jkn(n){this.a=n}function Qkn(n){this.a=n}function Ykn(n){this.a=n}function Zkn(n){this.a=n}function nyn(n){this.a=n}function eyn(n){this.a=n}function tyn(n){this.a=n}function iyn(n){this.a=n}function ryn(n){this.a=n}function cyn(n){this.a=n}function uyn(n){this.a=n}function oyn(n){this.a=n}function syn(n){this.a=n}function fyn(n){this.a=n}function hyn(n){this.a=n}function lyn(n){this.a=n}function ayn(n){this.a=n}function tD(n){this.a=n}function xG(n){this.a=n}function lt(n){this.b=n}function dyn(n){this.a=n}function byn(n){this.a=n}function wyn(n){this.a=n}function gyn(n){this.a=n}function pyn(n){this.a=n}function myn(n){this.a=n}function vyn(n){this.a=n}function kyn(n){this.b=n}function yyn(n){this.a=n}function W9(n){this.a=n}function jyn(n){this.a=n}function Eyn(n){this.a=n}function FG(n){this.c=n}function LE(n){this.e=n}function NE(n){this.a=n}function $E(n){this.a=n}function iD(n){this.a=n}function Cyn(n){this.d=n}function Myn(n){this.a=n}function BG(n){this.a=n}function RG(n){this.a=n}function Wd(n){this.e=n}function Pfe(){this.a=0}function de(){Hu(this)}function Z(){pL(this)}function rD(){sIn(this)}function Tyn(){}function Jd(){this.c=Gdn}function Ayn(n,e){n.b+=e}function Ife(n,e){e.Wb(n)}function Ofe(n){return n.a}function Dfe(n){return n.a}function Lfe(n){return n.a}function Nfe(n){return n.a}function $fe(n){return n.a}function M(n){return n.e}function xfe(){return null}function Ffe(){return null}function Bfe(){Cz(),pLe()}function Rfe(n){n.b.Of(n.e)}function Syn(n){n.b=new CD}function Jv(n,e){n.b=e-n.b}function Qv(n,e){n.a=e-n.a}function Bn(n,e){n.push(e)}function Pyn(n,e){n.sort(e)}function Iyn(n,e){e.jd(n.a)}function Kfe(n,e){gi(e,n)}function _fe(n,e,t){n.Yd(t,e)}function J9(n,e){n.e=e,e.b=n}function KG(n){uh(),this.a=n}function Oyn(n){uh(),this.a=n}function Dyn(n){uh(),this.a=n}function cD(n){m0(),this.a=n}function Lyn(n){O4(),VK.le(n)}function _G(){_G=F,new de}function Ua(){YTn.call(this)}function HG(){YTn.call(this)}function qG(){Ua.call(this)}function uD(){Ua.call(this)}function Nyn(){Ua.call(this)}function Q9(){Ua.call(this)}function Cu(){Ua.call(this)}function ip(){Ua.call(this)}function Pe(){Ua.call(this)}function Bo(){Ua.call(this)}function $yn(){Ua.call(this)}function nc(){Ua.call(this)}function xyn(){Ua.call(this)}function Fyn(){this.a=this}function xE(){this.Bb|=256}function Byn(){this.b=new GMn}function Pb(n,e){n.length=e}function FE(n,e){nn(n.a,e)}function Hfe(n,e){bnn(n.c,e)}function qfe(n,e){fi(n.b,e)}function Ufe(n,e){uA(n.a,e)}function Gfe(n,e){cx(n.a,e)}function t4(n,e){it(n.e,e)}function rp(n){jA(n.c,n.b)}function zfe(n,e){n.kc().Nb(e)}function UG(n){this.a=B5e(n)}function ni(){this.a=new de}function Ryn(){this.a=new de}function GG(){this.a=new rCn}function BE(){this.a=new Z}function oD(){this.a=new Z}function zG(){this.a=new Z}function hs(){this.a=new cbn}function Ga(){this.a=new NLn}function XG(){this.a=new _U}function VG(){this.a=new TOn}function WG(){this.a=new BAn}function Kyn(){this.a=new Z}function _yn(){this.a=new Z}function Hyn(){this.a=new Z}function JG(){this.a=new Z}function qyn(){this.d=new Z}function Uyn(){this.a=new zOn}function Gyn(){this.a=new ni}function zyn(){this.a=new de}function Xyn(){this.b=new de}function Vyn(){this.b=new Z}function QG(){this.e=new Z}function Wyn(){this.a=new Z5n}function Jyn(){this.d=new Z}function Qyn(){QIn.call(this)}function Yyn(){QIn.call(this)}function Zyn(){Z.call(this)}function YG(){qG.call(this)}function ZG(){BE.call(this)}function njn(){qC.call(this)}function ejn(){JG.call(this)}function Yv(){Tyn.call(this)}function sD(){Yv.call(this)}function cp(){Tyn.call(this)}function nz(){cp.call(this)}function tjn(){rz.call(this)}function ijn(){rz.call(this)}function rjn(){rz.call(this)}function cjn(){cz.call(this)}function Zv(){svn.call(this)}function ez(){svn.call(this)}function Mu(){Ct.call(this)}function ujn(){yjn.call(this)}function ojn(){yjn.call(this)}function sjn(){de.call(this)}function fjn(){de.call(this)}function hjn(){de.call(this)}function fD(){cxn.call(this)}function ljn(){ni.call(this)}function ajn(){xE.call(this)}function hD(){BX.call(this)}function tz(){de.call(this)}function lD(){BX.call(this)}function aD(){de.call(this)}function djn(){de.call(this)}function iz(){ME.call(this)}function bjn(){iz.call(this)}function wjn(){ME.call(this)}function gjn(){rG.call(this)}function rz(){this.a=new ni}function pjn(){this.a=new de}function mjn(){this.a=new Z}function cz(){this.a=new de}function up(){this.a=new Ct}function vjn(){this.j=new Z}function kjn(){this.a=new mEn}function yjn(){this.a=new mvn}function uz(){this.a=new Z4n}function n6(){n6=F,KK=new Ht}function dD(){dD=F,_K=new Ejn}function bD(){bD=F,HK=new jjn}function jjn(){XO.call(this,"")}function Ejn(){XO.call(this,"")}function Cjn(n){S$n.call(this,n)}function Mjn(n){S$n.call(this,n)}function oz(n){fG.call(this,n)}function sz(n){XEn.call(this,n)}function Xfe(n){XEn.call(this,n)}function Vfe(n){sz.call(this,n)}function Wfe(n){sz.call(this,n)}function Jfe(n){sz.call(this,n)}function Tjn(n){zN.call(this,n)}function Ajn(n){zN.call(this,n)}function Sjn(n){uSn.call(this,n)}function Pjn(n){Oz.call(this,n)}function e6(n){WE.call(this,n)}function fz(n){WE.call(this,n)}function Ijn(n){WE.call(this,n)}function hz(n){mje.call(this,n)}function lz(n){hz.call(this,n)}function ec(n){APn.call(this,n)}function Ojn(n){ec.call(this,n)}function op(){z9.call(this,{})}function Djn(){Djn=F,dQn=new M0n}function RE(){RE=F,GK=new STn}function Ljn(){Ljn=F,oun=new Bu}function az(){az=F,sun=new N1}function KE(){KE=F,P8=new $1}function wD(n){b4(),this.a=n}function gD(n){RQ(),this.a=n}function Qd(n){nN(),this.f=n}function pD(n){nN(),this.f=n}function Njn(n){bSn(),this.a=n}function $jn(n){n.b=null,n.c=0}function Qfe(n,e){n.e=e,bqn(n,e)}function Yfe(n,e){n.a=e,cEe(n)}function mD(n,e,t){n.a[e.g]=t}function Zfe(n,e,t){kke(t,n,e)}function nhe(n,e){Wae(e.i,n.n)}function xjn(n,e){v6e(n).Cd(e)}function ehe(n,e){n.a.ec().Mc(e)}function Fjn(n,e){return n.g-e.g}function the(n,e){return n*n/e}function on(n){return Jn(n),n}function $(n){return Jn(n),n}function Y9(n){return Jn(n),n}function ihe(n){return new AE(n)}function rhe(n){return new qb(n)}function dz(n){return Jn(n),n}function che(n){return Jn(n),n}function _E(n){ec.call(this,n)}function Ir(n){ec.call(this,n)}function Bjn(n){ec.call(this,n)}function vD(n){APn.call(this,n)}function i4(n){ec.call(this,n)}function Gn(n){ec.call(this,n)}function Or(n){ec.call(this,n)}function Rjn(n){ec.call(this,n)}function sp(n){ec.call(this,n)}function Kl(n){ec.call(this,n)}function _l(n){ec.call(this,n)}function fp(n){ec.call(this,n)}function nh(n){ec.call(this,n)}function kD(n){ec.call(this,n)}function Le(n){ec.call(this,n)}function Ku(n){Jn(n),this.a=n}function bz(n){return ld(n),n}function t6(n){TW(n,n.length)}function i6(n){return n.b==n.c}function Ib(n){return!!n&&n.b}function uhe(n){return!!n&&n.k}function ohe(n){return!!n&&n.j}function she(n,e,t){n.c.Ef(e,t)}function Kjn(n,e){n.be(e),e.ae(n)}function hp(n){uh(),this.a=Se(n)}function yD(){this.a=Oe(Se(ur))}function _jn(){throw M(new Pe)}function fhe(){throw M(new Pe)}function wz(){throw M(new Pe)}function Hjn(){throw M(new Pe)}function hhe(){throw M(new Pe)}function lhe(){throw M(new Pe)}function HE(){HE=F,O4()}function Hl(){X9.call(this,"")}function r6(){X9.call(this,"")}function x1(){X9.call(this,"")}function lp(){X9.call(this,"")}function gz(n){Ir.call(this,n)}function pz(n){Ir.call(this,n)}function eh(n){Gn.call(this,n)}function r4(n){Q3.call(this,n)}function qjn(n){r4.call(this,n)}function jD(n){BC.call(this,n)}function ED(n){JX.call(this,n,0)}function CD(){sJ.call(this,12,3)}function T(n,e){return kOn(n,e)}function qE(n,e){return o$(n,e)}function ahe(n,e){return n.a-e.a}function dhe(n,e){return n.a-e.a}function bhe(n,e){return n.a-e.a}function whe(n,e){return e in n.a}function Ujn(n){return n.a?n.b:0}function ghe(n){return n.a?n.b:0}function phe(n,e,t){e.Cd(n.a[t])}function mhe(n,e,t){e.Pe(n.a[t])}function vhe(n,e){n.b=new rr(e)}function khe(n,e){return n.b=e,n}function Gjn(n,e){return n.c=e,n}function zjn(n,e){return n.f=e,n}function yhe(n,e){return n.g=e,n}function mz(n,e){return n.a=e,n}function vz(n,e){return n.f=e,n}function jhe(n,e){return n.k=e,n}function kz(n,e){return n.a=e,n}function Ehe(n,e){return n.e=e,n}function yz(n,e){return n.e=e,n}function Che(n,e){return n.f=e,n}function Mhe(n,e){n.b=!0,n.d=e}function The(n,e){return n.b-e.b}function Ahe(n,e){return n.g-e.g}function She(n,e){return n?0:e-1}function Xjn(n,e){return n?0:e-1}function Phe(n,e){return n?e-1:0}function Ihe(n,e){return n.s-e.s}function Ohe(n,e){return e.rg(n)}function Yd(n,e){return n.b=e,n}function UE(n,e){return n.a=e,n}function Zd(n,e){return n.c=e,n}function n0(n,e){return n.d=e,n}function e0(n,e){return n.e=e,n}function jz(n,e){return n.f=e,n}function c6(n,e){return n.a=e,n}function c4(n,e){return n.b=e,n}function u4(n,e){return n.c=e,n}function an(n,e){return n.c=e,n}function Sn(n,e){return n.b=e,n}function dn(n,e){return n.d=e,n}function bn(n,e){return n.e=e,n}function Dhe(n,e){return n.f=e,n}function wn(n,e){return n.g=e,n}function gn(n,e){return n.a=e,n}function pn(n,e){return n.i=e,n}function mn(n,e){return n.j=e,n}function Lhe(n,e){ca(),ic(e,n)}function Nhe(n,e,t){Jbe(n.a,e,t)}function GE(n){$L.call(this,n)}function Vjn(n){Z5e.call(this,n)}function Wjn(n){SIn.call(this,n)}function Ez(n){SIn.call(this,n)}function F1(n){S0.call(this,n)}function Jjn(n){CN.call(this,n)}function Qjn(n){CN.call(this,n)}function Yjn(){DX.call(this,"")}function Li(){this.a=0,this.b=0}function Zjn(){this.b=0,this.a=0}function nEn(n,e){n.b=0,Zb(n,e)}function eEn(n,e){return n.k=e,n}function $he(n,e){return n.j=e,n}function xhe(n,e){n.c=e,n.b=!0}function tEn(){tEn=F,TQn=Xke()}function B1(){B1=F,voe=rke()}function iEn(){iEn=F,Ti=gye()}function Cz(){Cz=F,Oa=z4()}function o4(){o4=F,Udn=cke()}function rEn(){rEn=F,ise=uke()}function Mz(){Mz=F,yc=tEe()}function uf(n){return n.e&&n.e()}function cEn(n){return n.l|n.m<<22}function uEn(n,e){return n.c._b(e)}function oEn(n,e){return rBn(n.b,e)}function MD(n){return n?n.d:null}function Fhe(n){return n?n.g:null}function Bhe(n){return n?n.i:null}function za(n){return ll(n),n.o}function fg(n,e){return n.a+=e,n}function TD(n,e){return n.a+=e,n}function ql(n,e){return n.a+=e,n}function t0(n,e){return n.a+=e,n}function Tz(n,e){for(;n.Bd(e););}function zE(n){this.a=new ap(n)}function sEn(){throw M(new Pe)}function fEn(){throw M(new Pe)}function hEn(){throw M(new Pe)}function lEn(){throw M(new Pe)}function aEn(){throw M(new Pe)}function dEn(){throw M(new Pe)}function Ul(n){this.a=new iN(n)}function bEn(){this.a=new K5(Rln)}function wEn(){this.b=new K5(rln)}function gEn(){this.a=new K5(f1n)}function pEn(){this.b=new K5(Fq)}function mEn(){this.b=new K5(Fq)}function XE(n){this.a=0,this.b=n}function Az(n){zGn(),ILe(this,n)}function s4(n){return z1(n),n.a}function Z9(n){return n.b!=n.d.c}function Sz(n,e){return n.d[e.p]}function vEn(n,e){return XTe(n,e)}function Pz(n,e,t){n.splice(e,t)}function hg(n,e){for(;n.Re(e););}function kEn(n){n.c?Dqn(n):Lqn(n)}function yEn(){throw M(new Pe)}function jEn(){throw M(new Pe)}function EEn(){throw M(new Pe)}function CEn(){throw M(new Pe)}function MEn(){throw M(new Pe)}function TEn(){throw M(new Pe)}function AEn(){throw M(new Pe)}function SEn(){throw M(new Pe)}function PEn(){throw M(new Pe)}function IEn(){throw M(new Pe)}function Rhe(){throw M(new nc)}function Khe(){throw M(new nc)}function n7(n){this.a=new OEn(n)}function OEn(n){Ume(this,n,jje())}function e7(n){return!n||oIn(n)}function t7(n){return Zf[n]!=-1}function _he(){cP!=0&&(cP=0),uP=-1}function DEn(){RK==null&&(RK=[])}function i7(n,e){Cg.call(this,n,e)}function f4(n,e){i7.call(this,n,e)}function LEn(n,e){this.a=n,this.b=e}function NEn(n,e){this.a=n,this.b=e}function $En(n,e){this.a=n,this.b=e}function xEn(n,e){this.a=n,this.b=e}function FEn(n,e){this.a=n,this.b=e}function BEn(n,e){this.a=n,this.b=e}function REn(n,e){this.a=n,this.b=e}function h4(n,e){this.e=n,this.d=e}function Iz(n,e){this.b=n,this.c=e}function KEn(n,e){this.b=n,this.a=e}function _En(n,e){this.b=n,this.a=e}function HEn(n,e){this.b=n,this.a=e}function qEn(n,e){this.b=n,this.a=e}function UEn(n,e){this.a=n,this.b=e}function AD(n,e){this.a=n,this.b=e}function GEn(n,e){this.a=n,this.f=e}function i0(n,e){this.g=n,this.i=e}function je(n,e){this.f=n,this.g=e}function zEn(n,e){this.b=n,this.c=e}function XEn(n){KX(n.dc()),this.c=n}function Hhe(n,e){this.a=n,this.b=e}function VEn(n,e){this.a=n,this.b=e}function WEn(n){this.a=u(Se(n),15)}function Oz(n){this.a=u(Se(n),15)}function JEn(n){this.a=u(Se(n),85)}function VE(n){this.b=u(Se(n),85)}function WE(n){this.b=u(Se(n),51)}function JE(){this.q=new y.Date}function SD(n,e){this.a=n,this.b=e}function QEn(n,e){return Zc(n.b,e)}function r7(n,e){return n.b.Hc(e)}function YEn(n,e){return n.b.Ic(e)}function ZEn(n,e){return n.b.Qc(e)}function nCn(n,e){return n.b.Hc(e)}function eCn(n,e){return n.c.uc(e)}function tCn(n,e){return rt(n.c,e)}function of(n,e){return n.a._b(e)}function iCn(n,e){return n>e&&e0}function ND(n,e){return Ec(n,e)<0}function vCn(n,e){return JL(n.a,e)}function ole(n,e){yOn.call(this,n,e)}function Bz(n){wN(),uSn.call(this,n)}function Rz(n,e){bPn(n,n.length,e)}function s7(n,e){HPn(n,n.length,e)}function d6(n,e){return n.a.get(e)}function kCn(n,e){return Zc(n.e,e)}function Kz(n){return Jn(n),!1}function _z(n){this.a=u(Se(n),229)}function cC(n){In.call(this,n,21)}function uC(n,e){je.call(this,n,e)}function $D(n,e){je.call(this,n,e)}function yCn(n,e){this.b=n,this.a=e}function oC(n,e){this.d=n,this.e=e}function jCn(n,e){this.a=n,this.b=e}function ECn(n,e){this.a=n,this.b=e}function CCn(n,e){this.a=n,this.b=e}function MCn(n,e){this.a=n,this.b=e}function bp(n,e){this.a=n,this.b=e}function TCn(n,e){this.b=n,this.a=e}function Hz(n,e){this.b=n,this.a=e}function qz(n,e){je.call(this,n,e)}function Uz(n,e){je.call(this,n,e)}function lg(n,e){je.call(this,n,e)}function xD(n,e){je.call(this,n,e)}function FD(n,e){je.call(this,n,e)}function BD(n,e){je.call(this,n,e)}function sC(n,e){je.call(this,n,e)}function Gz(n,e){this.b=n,this.a=e}function fC(n,e){je.call(this,n,e)}function zz(n,e){this.b=n,this.a=e}function hC(n,e){je.call(this,n,e)}function ACn(n,e){this.b=n,this.a=e}function Xz(n,e){je.call(this,n,e)}function RD(n,e){je.call(this,n,e)}function f7(n,e){je.call(this,n,e)}function b6(n,e,t){n.splice(e,0,t)}function sle(n,e,t){n.Mb(t)&&e.Cd(t)}function fle(n,e,t){e.Pe(n.a.Ye(t))}function hle(n,e,t){e.Dd(n.a.Ze(t))}function lle(n,e,t){e.Cd(n.a.Kb(t))}function ale(n,e){return Au(n.c,e)}function dle(n,e){return Au(n.e,e)}function lC(n,e){je.call(this,n,e)}function aC(n,e){je.call(this,n,e)}function w6(n,e){je.call(this,n,e)}function Vz(n,e){je.call(this,n,e)}function ei(n,e){je.call(this,n,e)}function dC(n,e){je.call(this,n,e)}function SCn(n,e){this.a=n,this.b=e}function PCn(n,e){this.a=n,this.b=e}function ICn(n,e){this.a=n,this.b=e}function OCn(n,e){this.a=n,this.b=e}function DCn(n,e){this.a=n,this.b=e}function LCn(n,e){this.a=n,this.b=e}function NCn(n,e){this.b=n,this.a=e}function $Cn(n,e){this.b=n,this.a=e}function Wz(n,e){this.b=n,this.a=e}function d4(n,e){this.c=n,this.d=e}function xCn(n,e){this.e=n,this.d=e}function FCn(n,e){this.a=n,this.b=e}function BCn(n,e){this.a=n,this.b=e}function RCn(n,e){this.a=n,this.b=e}function KCn(n,e){this.b=n,this.a=e}function _Cn(n,e){this.b=e,this.c=n}function bC(n,e){je.call(this,n,e)}function h7(n,e){je.call(this,n,e)}function KD(n,e){je.call(this,n,e)}function Jz(n,e){je.call(this,n,e)}function g6(n,e){je.call(this,n,e)}function _D(n,e){je.call(this,n,e)}function HD(n,e){je.call(this,n,e)}function l7(n,e){je.call(this,n,e)}function Qz(n,e){je.call(this,n,e)}function qD(n,e){je.call(this,n,e)}function p6(n,e){je.call(this,n,e)}function Yz(n,e){je.call(this,n,e)}function m6(n,e){je.call(this,n,e)}function v6(n,e){je.call(this,n,e)}function Db(n,e){je.call(this,n,e)}function UD(n,e){je.call(this,n,e)}function GD(n,e){je.call(this,n,e)}function Zz(n,e){je.call(this,n,e)}function a7(n,e){je.call(this,n,e)}function ag(n,e){je.call(this,n,e)}function zD(n,e){je.call(this,n,e)}function wC(n,e){je.call(this,n,e)}function d7(n,e){je.call(this,n,e)}function Lb(n,e){je.call(this,n,e)}function gC(n,e){je.call(this,n,e)}function nX(n,e){je.call(this,n,e)}function XD(n,e){je.call(this,n,e)}function VD(n,e){je.call(this,n,e)}function WD(n,e){je.call(this,n,e)}function JD(n,e){je.call(this,n,e)}function QD(n,e){je.call(this,n,e)}function YD(n,e){je.call(this,n,e)}function ZD(n,e){je.call(this,n,e)}function HCn(n,e){this.b=n,this.a=e}function eX(n,e){je.call(this,n,e)}function qCn(n,e){this.a=n,this.b=e}function UCn(n,e){this.a=n,this.b=e}function GCn(n,e){this.a=n,this.b=e}function tX(n,e){je.call(this,n,e)}function iX(n,e){je.call(this,n,e)}function zCn(n,e){this.a=n,this.b=e}function ble(n,e){return k4(),e!=n}function b7(n){return oe(n.a),n.b}function nL(n){return yCe(n,n.c),n}function XCn(){return tEn(),new TQn}function VCn(){VC(),this.a=new kV}function WCn(){OA(),this.a=new ni}function JCn(){NN(),this.b=new ni}function QCn(n,e){this.b=n,this.d=e}function YCn(n,e){this.a=n,this.b=e}function ZCn(n,e){this.a=n,this.b=e}function nMn(n,e){this.a=n,this.b=e}function eMn(n,e){this.b=n,this.a=e}function rX(n,e){je.call(this,n,e)}function cX(n,e){je.call(this,n,e)}function pC(n,e){je.call(this,n,e)}function u0(n,e){je.call(this,n,e)}function eL(n,e){je.call(this,n,e)}function mC(n,e){je.call(this,n,e)}function uX(n,e){je.call(this,n,e)}function oX(n,e){je.call(this,n,e)}function w7(n,e){je.call(this,n,e)}function sX(n,e){je.call(this,n,e)}function tL(n,e){je.call(this,n,e)}function vC(n,e){je.call(this,n,e)}function iL(n,e){je.call(this,n,e)}function rL(n,e){je.call(this,n,e)}function cL(n,e){je.call(this,n,e)}function uL(n,e){je.call(this,n,e)}function fX(n,e){je.call(this,n,e)}function oL(n,e){je.call(this,n,e)}function hX(n,e){je.call(this,n,e)}function g7(n,e){je.call(this,n,e)}function sL(n,e){je.call(this,n,e)}function lX(n,e){je.call(this,n,e)}function p7(n,e){je.call(this,n,e)}function aX(n,e){je.call(this,n,e)}function tMn(n,e){this.b=n,this.a=e}function iMn(n,e){this.b=n,this.a=e}function rMn(n,e){this.b=n,this.a=e}function cMn(n,e){this.b=n,this.a=e}function dX(n,e){this.a=n,this.b=e}function uMn(n,e){this.a=n,this.b=e}function oMn(n,e){this.a=n,this.b=e}function V(n,e){this.a=n,this.b=e}function k6(n,e){je.call(this,n,e)}function m7(n,e){je.call(this,n,e)}function wp(n,e){je.call(this,n,e)}function y6(n,e){je.call(this,n,e)}function v7(n,e){je.call(this,n,e)}function fL(n,e){je.call(this,n,e)}function kC(n,e){je.call(this,n,e)}function j6(n,e){je.call(this,n,e)}function hL(n,e){je.call(this,n,e)}function yC(n,e){je.call(this,n,e)}function dg(n,e){je.call(this,n,e)}function k7(n,e){je.call(this,n,e)}function E6(n,e){je.call(this,n,e)}function C6(n,e){je.call(this,n,e)}function y7(n,e){je.call(this,n,e)}function jC(n,e){je.call(this,n,e)}function bg(n,e){je.call(this,n,e)}function lL(n,e){je.call(this,n,e)}function sMn(n,e){je.call(this,n,e)}function EC(n,e){je.call(this,n,e)}function fMn(n,e){this.a=n,this.b=e}function hMn(n,e){this.a=n,this.b=e}function lMn(n,e){this.a=n,this.b=e}function aMn(n,e){this.a=n,this.b=e}function dMn(n,e){this.a=n,this.b=e}function bMn(n,e){this.a=n,this.b=e}function bi(n,e){this.a=n,this.b=e}function wMn(n,e){this.a=n,this.b=e}function gMn(n,e){this.a=n,this.b=e}function pMn(n,e){this.a=n,this.b=e}function mMn(n,e){this.a=n,this.b=e}function vMn(n,e){this.a=n,this.b=e}function kMn(n,e){this.a=n,this.b=e}function yMn(n,e){this.b=n,this.a=e}function jMn(n,e){this.b=n,this.a=e}function EMn(n,e){this.b=n,this.a=e}function CMn(n,e){this.b=n,this.a=e}function MMn(n,e){this.a=n,this.b=e}function TMn(n,e){this.a=n,this.b=e}function CC(n,e){je.call(this,n,e)}function AMn(n,e){this.a=n,this.b=e}function SMn(n,e){this.a=n,this.b=e}function gp(n,e){je.call(this,n,e)}function PMn(n,e){this.f=n,this.c=e}function bX(n,e){return Au(n.g,e)}function wle(n,e){return Au(e.b,n)}function IMn(n,e){return wx(n.a,e)}function gle(n,e){return-n.b.af(e)}function ple(n,e){n&&Xe(hE,n,e)}function wX(n,e){n.i=null,kT(n,e)}function mle(n,e,t){yKn(e,oF(n,t))}function vle(n,e,t){yKn(e,oF(n,t))}function kle(n,e){VMe(n.a,u(e,58))}function OMn(n,e){U4e(n.a,u(e,12))}function MC(n,e){this.a=n,this.b=e}function DMn(n,e){this.a=n,this.b=e}function LMn(n,e){this.a=n,this.b=e}function NMn(n,e){this.a=n,this.b=e}function $Mn(n,e){this.a=n,this.b=e}function xMn(n,e){this.d=n,this.b=e}function FMn(n,e){this.e=n,this.a=e}function j7(n,e){this.b=n,this.c=e}function gX(n,e){this.i=n,this.g=e}function pX(n,e){this.d=n,this.e=e}function yle(n,e){cme(new ne(n),e)}function TC(n){return Rk(n.c,n.b)}function Kr(n){return n?n.md():null}function x(n){return n??null}function Ai(n){return typeof n===nB}function Nb(n){return typeof n===i3}function $b(n){return typeof n===dtn}function o0(n,e){return Ec(n,e)==0}function AC(n,e){return Ec(n,e)>=0}function M6(n,e){return Ec(n,e)!=0}function SC(n,e){return jve(n.Kc(),e)}function _1(n,e){return n.Rd().Xb(e)}function BMn(n){return eo(n),n.d.gc()}function PC(n){return F6(n==null),n}function T6(n,e){return n.a+=""+e,n}function Er(n,e){return n.a+=""+e,n}function A6(n,e){return n.a+=""+e,n}function Dc(n,e){return n.a+=""+e,n}function Be(n,e){return n.a+=""+e,n}function mX(n,e){return n.a+=""+e,n}function jle(n){return""+(Jn(n),n)}function RMn(n){Hu(this),f5(this,n)}function KMn(){oJ(),dW.call(this)}function _Mn(n,e){mW.call(this,n,e)}function HMn(n,e){mW.call(this,n,e)}function IC(n,e){mW.call(this,n,e)}function ir(n,e){xt(n,e,n.c.b,n.c)}function wg(n,e){xt(n,e,n.a,n.a.a)}function vX(n){return Ln(n,0),null}function qMn(){this.b=0,this.a=!1}function UMn(){this.b=0,this.a=!1}function GMn(){this.b=new ap(Qb(12))}function zMn(){zMn=F,kYn=Ce(jx())}function XMn(){XMn=F,HZn=Ce(iqn())}function VMn(){VMn=F,lre=Ce(xxn())}function kX(){kX=F,_G(),fun=new de}function sf(n){return n.a=0,n.b=0,n}function WMn(n,e){return n.a=e.g+1,n}function aL(n,e){Kb.call(this,n,e)}function Mn(n,e){Dt.call(this,n,e)}function gg(n,e){gX.call(this,n,e)}function JMn(n,e){T7.call(this,n,e)}function dL(n,e){Y4.call(this,n,e)}function Ue(n,e){iC(),Xe(yO,n,e)}function QMn(n,e){n.q.setTime(id(e))}function Ele(n){y.clearTimeout(n)}function Cle(n){return Se(n),new S6(n)}function YMn(n,e){return x(n)===x(e)}function ZMn(n,e){return n.a.a.a.cc(e)}function bL(n,e){return qo(n.a,0,e)}function yX(n){return Awe(u(n,74))}function pp(n){return wi((Jn(n),n))}function Mle(n){return wi((Jn(n),n))}function nTn(n){return Yc(n.l,n.m,n.h)}function jX(n,e){return jc(n.a,e.a)}function Tle(n,e){return KPn(n.a,e.a)}function Ale(n,e){return bt(n.a,e.a)}function th(n,e){return n.indexOf(e)}function Sle(n,e){return n.j[e.p]==2}function s0(n,e){return n==e?0:n?1:-1}function OC(n){return n<10?"0"+n:""+n}function Vr(n){return typeof n===dtn}function Ple(n){return n==rb||n==Iw}function Ile(n){return n==rb||n==Pw}function eTn(n,e){return jc(n.g,e.g)}function EX(n){return qr(n.b.b,n,0)}function tTn(){rM.call(this,0,0,0,0)}function ih(){CG.call(this,new Ql)}function CX(n,e){F4(n,0,n.length,e)}function Ole(n,e){return nn(n.a,e),e}function Dle(n,e){return xs(),e.a+=n}function Lle(n,e){return xs(),e.a+=n}function Nle(n,e){return xs(),e.c+=n}function $le(n,e){return nn(n.c,e),n}function MX(n,e){return Mo(n.a,e),n}function iTn(n){this.a=XCn(),this.b=n}function rTn(n){this.a=XCn(),this.b=n}function rr(n){this.a=n.a,this.b=n.b}function S6(n){this.a=n,GO.call(this)}function cTn(n){this.a=n,GO.call(this)}function mp(){Ho.call(this,0,0,0,0)}function DC(n){return Mo(new ii,n)}function uTn(n){return jM(u(n,123))}function fo(n){return n.vh()&&n.wh()}function pg(n){return n!=Jf&&n!=Sa}function hl(n){return n==Br||n==Xr}function mg(n){return n==us||n==Vf}function oTn(n){return n==S2||n==A2}function xle(n,e){return jc(n.g,e.g)}function sTn(n,e){return new Y4(e,n)}function Fle(n,e){return new Y4(e,n)}function TX(n){return rbe(n.b.Kc(),n.a)}function wL(n,e){um(n,e),G4(n,n.D)}function gL(n,e,t){aT(n,e),lT(n,t)}function vg(n,e,t){I0(n,e),P0(n,t)}function Ro(n,e,t){eu(n,e),tu(n,t)}function E7(n,e,t){_4(n,e),q4(n,t)}function C7(n,e,t){H4(n,e),U4(n,t)}function fTn(n,e,t){sV.call(this,n,e,t)}function AX(n){PMn.call(this,n,!0)}function hTn(){uC.call(this,"Tail",3)}function lTn(){uC.call(this,"Head",1)}function H1(n){dh(),mve.call(this,n)}function f0(n){rM.call(this,n,n,n,n)}function pL(n){n.c=K(ki,Fn,1,0,5,1)}function SX(n){return n.b&&xF(n),n.a}function PX(n){return n.b&&xF(n),n.c}function Ble(n,e){qf||(n.b=e)}function Rle(n,e){return n[n.length]=e}function Kle(n,e){return n[n.length]=e}function _le(n,e){return Yb(e,Af(n))}function Hle(n,e){return Yb(e,Af(n))}function qle(n,e){return pT(dN(n.d),e)}function Ule(n,e){return pT(dN(n.g),e)}function Gle(n,e){return pT(dN(n.j),e)}function Ni(n,e){Dt.call(this,n.b,e)}function zle(n,e){ve(Sc(n.a),DOn(e))}function Xle(n,e){ve(no(n.a),LOn(e))}function Vle(n,e,t){Ro(t,t.i+n,t.j+e)}function aTn(n,e,t){$t(n.c[e.g],e.g,t)}function Wle(n,e,t){u(n.c,71).Gi(e,t)}function mL(n,e,t){return $t(n,e,t),t}function dTn(n){nu(n.Sf(),new D9n(n))}function kg(n){return n!=null?mt(n):0}function Jle(n){return n==null?0:mt(n)}function P6(n){nt(),Wd.call(this,n)}function bTn(n){this.a=n,qV.call(this,n)}function Mf(){Mf=F,y.Math.log(2)}function Ko(){Ko=F,rl=(pCn(),Moe)}function wTn(){wTn=F,YH=new j5(aU)}function Ie(){Ie=F,new gTn,new Z}function gTn(){new de,new de,new de}function Qle(){throw M(new Kl(QJn))}function Yle(){throw M(new Kl(QJn))}function Zle(){throw M(new Kl(YJn))}function n1e(){throw M(new Kl(YJn))}function vL(n){this.a=n,VE.call(this,n)}function kL(n){this.a=n,VE.call(this,n)}function pTn(n,e){m0(),this.a=n,this.b=e}function e1e(n,e){Se(e),Tg(n).Jc(new Ru)}function Yt(n,e){QL(n.c,n.c.length,e)}function tc(n){return n.ae?1:0}function OX(n,e){return Ec(n,e)>0?n:e}function Yc(n,e,t){return{l:n,m:e,h:t}}function t1e(n,e){n.a!=null&&OMn(e,n.a)}function i1e(n){Zi(n,null),Ii(n,null)}function r1e(n,e,t){return Xe(n.g,t,e)}function yg(n,e,t){return nZ(e,t,n.c)}function c1e(n,e,t){return Xe(n.k,t,e)}function u1e(n,e,t){return GOe(n,e,t),t}function o1e(n,e){return ko(),e.n.b+=n}function vTn(n){nJ.call(this),this.b=n}function DX(n){vV.call(this),this.a=n}function kTn(){uC.call(this,"Range",2)}function LC(n){this.b=n,this.a=new Z}function yTn(n){this.b=new $bn,this.a=n}function jTn(n){n.a=new OO,n.c=new OO}function ETn(n){n.a=new de,n.d=new de}function CTn(n){$N(n,null),xN(n,null)}function MTn(n,e){return XOe(n.a,e,null)}function s1e(n,e){return Xe(n.a,e.a,e)}function Ki(n){return new V(n.a,n.b)}function LX(n){return new V(n.c,n.d)}function f1e(n){return new V(n.c,n.d)}function I6(n,e){return cOe(n.c,n.b,e)}function O(n,e){return n!=null&&Tx(n,e)}function yL(n,e){return Yve(n.Kc(),e)!=-1}function NC(n){return n.Ob()?n.Pb():null}function h1e(n){this.b=(Dn(),new eD(n))}function NX(n){this.a=n,de.call(this)}function TTn(){T7.call(this,null,null)}function ATn(){_C.call(this,null,null)}function STn(){je.call(this,"INSTANCE",0)}function PTn(){LZ(),this.a=new K5(Ion)}function ITn(n){return hh(n,0,n.length)}function l1e(n,e){return new VTn(n.Kc(),e)}function $X(n,e){return n.a.Bc(e)!=null}function OTn(n,e){me(n),n.Gc(u(e,15))}function a1e(n,e,t){n.c.bd(e,u(t,136))}function d1e(n,e,t){n.c.Ui(e,u(t,136))}function DTn(n,e){n.c&&(tW(e),rOn(e))}function b1e(n,e){n.q.setHours(e),G5(n,e)}function w1e(n,e){a0(e,n.a.a.a,n.a.a.b)}function g1e(n,e,t,i){$t(n.a[e.g],t.g,i)}function jL(n,e,t){return n.a[e.g][t.g]}function p1e(n,e){return n.e[e.c.p][e.p]}function m1e(n,e){return n.c[e.c.p][e.p]}function Tf(n,e){return n.a[e.c.p][e.p]}function v1e(n,e){return n.j[e.p]=IMe(e)}function EL(n,e){return n.a.Bc(e)!=null}function k1e(n,e){return $(R(e.a))<=n}function y1e(n,e){return $(R(e.a))>=n}function j1e(n,e){return RJ(n.f,e.Pg())}function vp(n,e){return n.a*e.a+n.b*e.b}function E1e(n,e){return n.a0?e/(n*n):e*100}function V1e(n,e){return n>0?e*e/n:e*e*100}function xb(n,e){return u(Lf(n.a,e),34)}function W1e(n,e){return ca(),Pn(n,e.e,e)}function J1e(n,e,t){return nC(),t.Mg(n,e)}function Q1e(n){return kl(),n.e.a+n.f.a/2}function Y1e(n,e,t){return kl(),t.e.a-n*e}function Z1e(n){return kl(),n.e.b+n.f.b/2}function nae(n,e,t){return kl(),t.e.b-n*e}function sAn(n){n.d=new cAn(n),n.e=new de}function fAn(){this.a=new C0,this.b=new C0}function hAn(n){this.c=n,this.a=1,this.b=1}function lAn(n){YF(),Syn(this),this.Ff(n)}function eae(n,e,t){YM(),n.pf(e)&&t.Cd(n)}function tae(n,e,t){return nn(e,jBn(n,t))}function a0(n,e,t){return n.a+=e,n.b+=t,n}function iae(n,e,t){return n.a*=e,n.b*=t,n}function ZX(n,e){return n.a=e.a,n.b=e.b,n}function HC(n){return n.a=-n.a,n.b=-n.b,n}function N6(n,e,t){return n.a-=e,n.b-=t,n}function aAn(n){Ct.call(this),c5(this,n)}function dAn(){je.call(this,"GROW_TREE",0)}function bAn(){je.call(this,"POLYOMINO",0)}function lo(n,e,t){Iu.call(this,n,e,t,2)}function rae(n,e,t){k5(Sc(n.a),e,DOn(t))}function wAn(n,e){a6(),T7.call(this,n,e)}function nV(n,e){Gl(),_C.call(this,n,e)}function gAn(n,e){Gl(),nV.call(this,n,e)}function pAn(n,e){Gl(),_C.call(this,n,e)}function cae(n,e){return n.c.Fc(u(e,136))}function uae(n,e,t){k5(no(n.a),e,LOn(t))}function mAn(n){this.c=n,eu(n,0),tu(n,0)}function PL(n,e){Ko(),oM.call(this,n,e)}function vAn(n,e){Ko(),PL.call(this,n,e)}function eV(n,e){Ko(),PL.call(this,n,e)}function tV(n,e){Ko(),oM.call(this,n,e)}function kAn(n,e){Ko(),eV.call(this,n,e)}function yAn(n,e){Ko(),tV.call(this,n,e)}function jAn(n,e){Ko(),oM.call(this,n,e)}function oae(n,e,t){return e.zl(n.e,n.c,t)}function sae(n,e,t){return e.Al(n.e,n.c,t)}function iV(n,e,t){return qA(ak(n,e),t)}function IL(n,e){return na(n.e,u(e,54))}function fae(n){return n==null?null:NDe(n)}function hae(n){return n==null?null:Aje(n)}function lae(n){return n==null?null:Jr(n)}function aae(n){return n==null?null:Jr(n)}function un(n){return F6(n==null||Nb(n)),n}function R(n){return F6(n==null||$b(n)),n}function Oe(n){return F6(n==null||Ai(n)),n}function ll(n){n.o==null&&cMe(n)}function rV(n){if(!n)throw M(new Q9)}function dae(n){if(!n)throw M(new uD)}function oe(n){if(!n)throw M(new nc)}function Fb(n){if(!n)throw M(new Cu)}function EAn(n){if(!n)throw M(new Bo)}function m4(){m4=F,aE=new ujn,new ojn}function Mg(){Mg=F,O2=new lt("root")}function cV(){cxn.call(this),this.Bb|=hr}function bae(n,e){this.d=n,c9n(this),this.b=e}function uV(n,e){i$.call(this,n),this.a=e}function oV(n,e){i$.call(this,n),this.a=e}function sV(n,e,t){VM.call(this,n,e,t,null)}function CAn(n,e,t){VM.call(this,n,e,t,null)}function P7(n,e){this.c=n,h4.call(this,n,e)}function $6(n,e){this.a=n,P7.call(this,n,e)}function fV(n){this.q=new y.Date(id(n))}function MAn(n){return n>8?0:n+1}function TAn(n,e){qf||nn(n.a,e)}function wae(n,e){return o7(),Q4(e.d.i,n)}function gae(n,e){return Hp(),new tUn(e,n)}function pae(n,e,t){return n.Ne(e,t)<=0?t:e}function mae(n,e,t){return n.Ne(e,t)<=0?e:t}function vae(n,e){return u(Lf(n.b,e),143)}function kae(n,e){return u(Lf(n.c,e),233)}function OL(n){return u(sn(n.a,n.b),294)}function AAn(n){return new V(n.c,n.d+n.a)}function SAn(n){return Jn(n),n?1231:1237}function PAn(n){return ko(),oTn(u(n,203))}function Bb(){Bb=F,ron=yn((go(),Gd))}function yae(n,e){e.a?MCe(n,e):EL(n.a,e.b)}function I7(n,e,t){++n.j,n.tj(),t$(n,e,t)}function IAn(n,e,t){++n.j,n.qj(e,n.Zi(e,t))}function OAn(n,e,t){var i;i=n.fd(e),i.Rb(t)}function hV(n,e,t){return t=So(n,e,6,t),t}function lV(n,e,t){return t=So(n,e,3,t),t}function aV(n,e,t){return t=So(n,e,9,t),t}function ch(n,e){return X7(e,xtn),n.f=e,n}function dV(n,e){return(e&et)%n.d.length}function DAn(n,e,t){return zen(n.c,n.b,e,t)}function LAn(n,e){this.c=n,S0.call(this,e)}function NAn(n,e){this.a=n,kyn.call(this,e)}function O7(n,e){this.a=n,kyn.call(this,e)}function Dt(n,e){lt.call(this,n),this.a=e}function bV(n,e){FG.call(this,n),this.a=e}function DL(n,e){FG.call(this,n),this.a=e}function jae(n){VY.call(this,0,0),this.f=n}function $An(n,e,t){return n.a+=hh(e,0,t),n}function D7(n){return!n.a&&(n.a=new C0n),n.a}function wV(n,e){var t;return t=n.e,n.e=e,t}function gV(n,e){var t;return t=e,!!n.Fe(t)}function Eae(n,e){return _n(),n==e?0:n?1:-1}function Rb(n,e){n.a.bd(n.b,e),++n.b,n.c=-1}function L7(n){n.b?L7(n.b):n.f.c.zc(n.e,n.d)}function xAn(n){Hu(n.e),n.d.b=n.d,n.d.a=n.d}function Cae(n,e,t){Xa(),t9n(n,e.Ve(n.a,t))}function pV(n,e,t){return Pp(n,u(e,22),t)}function $s(n,e){return qE(new Array(e),n)}function Mae(n){return Ae(U1(n,32))^Ae(n)}function LL(n){return String.fromCharCode(n)}function Tae(n){return n==null?null:n.message}function Aae(n,e,t){return n.apply(e,t)}function Sae(n,e){var t;t=n[DB],t.call(n,e)}function Pae(n,e){var t;t=n[DB],t.call(n,e)}function Iae(n,e){return o7(),!Q4(e.d.i,n)}function mV(n,e,t,i){rM.call(this,n,e,t,i)}function FAn(){qC.call(this),this.a=new Li}function vV(){this.n=new Li,this.o=new Li}function BAn(){this.b=new Li,this.c=new Z}function RAn(){this.a=new Z,this.b=new Z}function KAn(){this.a=new _U,this.b=new Byn}function kV(){this.b=new Ql,this.a=new Ql}function _An(){this.b=new ni,this.a=new ni}function HAn(){this.b=new de,this.a=new de}function qAn(){this.b=new wEn,this.a=new H3n}function UAn(){this.a=new n8n,this.b=new Lpn}function GAn(){this.a=new Z,this.d=new Z}function qC(){this.n=new cp,this.i=new mp}function zAn(n){this.a=(Co(n,mw),new Gc(n))}function XAn(n){this.a=(Co(n,mw),new Gc(n))}function Oae(n){return n<100?null:new F1(n)}function Dae(n,e){return n.n.a=(Jn(e),e+10)}function Lae(n,e){return n.n.a=(Jn(e),e+10)}function Nae(n,e){return e==n||km(TA(e),n)}function VAn(n,e){return Xe(n.a,e,"")==null}function $ae(n,e){var t;return t=e.qi(n.a),t}function tt(n,e){return n.a+=e.a,n.b+=e.b,n}function mi(n,e){return n.a-=e.a,n.b-=e.b,n}function xae(n){return Pb(n.j.c,0),n.a=-1,n}function yV(n,e,t){return t=So(n,e,11,t),t}function Fae(n,e,t){t!=null&&mT(e,Fx(n,t))}function Bae(n,e,t){t!=null&&vT(e,Fx(n,t))}function jp(n,e,t,i){q.call(this,n,e,t,i)}function jV(n,e,t,i){q.call(this,n,e,t,i)}function WAn(n,e,t,i){jV.call(this,n,e,t,i)}function JAn(n,e,t,i){bM.call(this,n,e,t,i)}function NL(n,e,t,i){bM.call(this,n,e,t,i)}function EV(n,e,t,i){bM.call(this,n,e,t,i)}function QAn(n,e,t,i){NL.call(this,n,e,t,i)}function CV(n,e,t,i){NL.call(this,n,e,t,i)}function Nn(n,e,t,i){EV.call(this,n,e,t,i)}function YAn(n,e,t,i){CV.call(this,n,e,t,i)}function ZAn(n,e,t,i){jW.call(this,n,e,t,i)}function Kb(n,e){Ir.call(this,k8+n+Td+e)}function MV(n,e){return n.jk().wi().ri(n,e)}function TV(n,e){return n.jk().wi().ti(n,e)}function nSn(n,e){return Jn(n),x(n)===x(e)}function An(n,e){return Jn(n),x(n)===x(e)}function Rae(n,e){return n.b.Bd(new ECn(n,e))}function Kae(n,e){return n.b.Bd(new CCn(n,e))}function eSn(n,e){return n.b.Bd(new MCn(n,e))}function _ae(n,e){return n.e=u(n.d.Kb(e),159)}function AV(n,e,t){return n.lastIndexOf(e,t)}function Hae(n,e,t){return bt(n[e.a],n[t.a])}function qae(n,e){return U(e,(cn(),Cj),n)}function Uae(n,e){return jc(e.a.d.p,n.a.d.p)}function Gae(n,e){return jc(n.a.d.p,e.a.d.p)}function zae(n,e){return bt(n.c-n.s,e.c-e.s)}function Xae(n,e){return bt(n.b.e.a,e.b.e.a)}function Vae(n,e){return bt(n.c.e.a,e.c.e.a)}function tSn(n){return n.c?qr(n.c.a,n,0):-1}function Ep(n){return n==Ud||n==tl||n==qc}function SV(n,e){this.c=n,oN.call(this,n,e)}function iSn(n,e,t){this.a=n,JX.call(this,e,t)}function rSn(n){this.c=n,IC.call(this,Ey,0)}function cSn(n,e,t){this.c=e,this.b=t,this.a=n}function N7(n){k4(),this.d=n,this.a=new Eg}function uSn(n){uh(),this.a=(Dn(),new r4(n))}function Wae(n,e){hl(n.f)?QCe(n,e):Sye(n,e)}function oSn(n,e){sbe.call(this,n,n.length,e)}function Jae(n,e){qf||e&&(n.d=e)}function sSn(n,e){return O(e,15)&&xqn(n.c,e)}function Qae(n,e,t){return u(n.c,71).Wk(e,t)}function UC(n,e,t){return u(n.c,71).Xk(e,t)}function Yae(n,e,t){return oae(n,u(e,343),t)}function PV(n,e,t){return sae(n,u(e,343),t)}function Zae(n,e,t){return PKn(n,u(e,343),t)}function fSn(n,e,t){return _ye(n,u(e,343),t)}function x6(n,e){return e==null?null:tw(n.b,e)}function IV(n){return $b(n)?(Jn(n),n):n.ue()}function GC(n){return!isNaN(n)&&!isFinite(n)}function $L(n){jTn(this),vo(this),Bi(this,n)}function _u(n){pL(this),zV(this.c,0,n.Pc())}function _o(n,e,t){this.a=n,this.b=e,this.c=t}function hSn(n,e,t){this.a=n,this.b=e,this.c=t}function lSn(n,e,t){this.d=n,this.b=t,this.a=e}function aSn(n){this.a=n,fl(),vc(Date.now())}function dSn(n){bo(n.a),GJ(n.c,n.b),n.b=null}function xL(){xL=F,Oun=new $0n,AQn=new x0n}function bSn(){bSn=F,Ioe=K(ki,Fn,1,0,5,1)}function wSn(){wSn=F,Voe=K(ki,Fn,1,0,5,1)}function OV(){OV=F,Woe=K(ki,Fn,1,0,5,1)}function uh(){uh=F,new KG((Dn(),Dn(),sr))}function nde(n){return B4(),Ee((yNn(),IQn),n)}function ede(n){return Gu(),Ee((lNn(),xQn),n)}function tde(n){return YT(),Ee((JDn(),HQn),n)}function ide(n){return cT(),Ee((QDn(),qQn),n)}function rde(n){return NA(),Ee((Jxn(),UQn),n)}function cde(n){return bf(),Ee((fNn(),XQn),n)}function ude(n){return Uu(),Ee((sNn(),WQn),n)}function ode(n){return bu(),Ee((hNn(),QQn),n)}function sde(n){return VA(),Ee((zMn(),kYn),n)}function fde(n){return N0(),Ee((ENn(),jYn),n)}function hde(n){return Vp(),Ee((MNn(),CYn),n)}function lde(n){return A5(),Ee((CNn(),AYn),n)}function ade(n){return YE(),Ee((jDn(),SYn),n)}function dde(n){return uT(),Ee((YDn(),GYn),n)}function bde(n){return i5(),Ee((aNn(),pZn),n)}function wde(n){return Vi(),Ee((u$n(),yZn),n)}function gde(n){return nm(),Ee((ANn(),TZn),n)}function pde(n){return dd(),Ee((TNn(),DZn),n)}function DV(n,e){if(!n)throw M(new Gn(e))}function v4(n){if(!n)throw M(new Or(btn))}function FL(n,e){if(n!=e)throw M(new Bo)}function gSn(n,e,t){this.a=n,this.b=e,this.c=t}function LV(n,e,t){this.a=n,this.b=e,this.c=t}function pSn(n,e,t){this.a=n,this.b=e,this.c=t}function zC(n,e,t){this.b=n,this.a=e,this.c=t}function NV(n,e,t){this.b=n,this.c=e,this.a=t}function $V(n,e,t){this.a=n,this.b=e,this.c=t}function XC(n,e,t){this.e=e,this.b=n,this.d=t}function mSn(n,e,t){this.b=n,this.a=e,this.c=t}function mde(n,e,t){return Xa(),n.a.Yd(e,t),e}function BL(n){var e;return e=new ubn,e.e=n,e}function xV(n){var e;return e=new qyn,e.b=n,e}function $7(){$7=F,CP=new sgn,MP=new fgn}function VC(){VC=F,XZn=new xgn,zZn=new Fgn}function xs(){xs=F,YZn=new G2n,ZZn=new z2n}function vde(n){return D0(),Ee((qLn(),fne),n)}function kde(n){return tr(),Ee((XMn(),HZn),n)}function yde(n){return OT(),Ee((PNn(),GZn),n)}function jde(n){return $f(),Ee((SNn(),tne),n)}function Ede(n){return ow(),Ee((o$n(),rne),n)}function Cde(n){return DA(),Ee(($xn(),hne),n)}function Mde(n){return Yp(),Ee((D$n(),lne),n)}function Tde(n){return QM(),Ee((cLn(),ane),n)}function Ade(n){return u5(),Ee((_Ln(),dne),n)}function Sde(n){return bT(),Ee((HLn(),bne),n)}function Pde(n){return o1(),Ee((s$n(),wne),n)}function Ide(n){return pk(),Ee((eLn(),gne),n)}function Ode(n){return jm(),Ee(($$n(),jne),n)}function Dde(n){return pr(),Ee((aFn(),Ene),n)}function Lde(n){return Z4(),Ee((GLn(),Cne),n)}function Nde(n){return vl(),Ee((zLn(),Tne),n)}function $de(n){return KM(),Ee((nLn(),Ane),n)}function xde(n){return Jk(),Ee((N$n(),yne),n)}function Fde(n){return hd(),Ee((ULn(),mne),n)}function Bde(n){return vA(),Ee((L$n(),vne),n)}function Rde(n){return hk(),Ee((tLn(),kne),n)}function Kde(n){return Yo(),Ee((h$n(),Sne),n)}function _de(n){return a1(),Ee((Xxn(),Yte),n)}function Hde(n){return g5(),Ee((XLn(),Zte),n)}function qde(n){return cw(),Ee((INn(),nie),n)}function Ude(n){return T5(),Ee((f$n(),eie),n)}function Gde(n){return gs(),Ee((dFn(),tie),n)}function zde(n){return lh(),Ee((ONn(),iie),n)}function Xde(n){return wk(),Ee((iLn(),rie),n)}function Vde(n){return gr(),Ee((JLn(),uie),n)}function Wde(n){return ST(),Ee((VLn(),oie),n)}function Jde(n){return d5(),Ee((WLn(),sie),n)}function Qde(n){return om(),Ee((QLn(),fie),n)}function Yde(n){return dT(),Ee((YLn(),hie),n)}function Zde(n){return DT(),Ee((ZLn(),lie),n)}function n0e(n){return O0(),Ee((oNn(),Aie),n)}function e0e(n){return n5(),Ee((rLn(),Die),n)}function t0e(n){return sh(),Ee((sLn(),Rie),n)}function i0e(n){return Sf(),Ee((fLn(),_ie),n)}function r0e(n){return lf(),Ee((hLn(),tre),n)}function c0e(n){return M0(),Ee((lLn(),fre),n)}function u0e(n){return Qp(),Ee((BNn(),hre),n)}function o0e(n){return q5(),Ee((VMn(),lre),n)}function s0e(n){return b5(),Ee((nNn(),are),n)}function f0e(n){return w5(),Ee((FNn(),$re),n)}function h0e(n){return FM(),Ee((uLn(),xre),n)}function l0e(n){return yT(),Ee((oLn(),_re),n)}function a0e(n){return wA(),Ee((l$n(),qre),n)}function d0e(n){return Ok(),Ee((eNn(),Gre),n)}function b0e(n){return ZM(),Ee((aLn(),Ure),n)}function w0e(n){return sA(),Ee((xNn(),lce),n)}function g0e(n){return AT(),Ee((tNn(),ace),n)}function p0e(n){return XT(),Ee((iNn(),dce),n)}function m0e(n){return rA(),Ee((rNn(),wce),n)}function v0e(n){return _T(),Ee((cNn(),mce),n)}function k0e(n){return GM(),Ee((dLn(),Rce),n)}function y0e(n){return V4(),Ee((ZDn(),_Zn),n)}function j0e(n){return Vn(),Ee((x$n(),xZn),n)}function E0e(n){return nT(),Ee((uNn(),Kce),n)}function C0e(n){return N$(),Ee((bLn(),_ce),n)}function M0e(n){return R5(),Ee((a$n(),qce),n)}function T0e(n){return eC(),Ee((IDn(),Gce),n)}function A0e(n){return Fk(),Ee((bNn(),Uce),n)}function S0e(n){return tC(),Ee((ODn(),Xce),n)}function P0e(n){return ck(),Ee((wLn(),Vce),n)}function I0e(n){return Yk(),Ee((d$n(),Wce),n)}function O0e(n){return f6(),Ee((DDn(),lue),n)}function D0e(n){return Ak(),Ee((gLn(),aue),n)}function L0e(n){return gf(),Ee((w$n(),mue),n)}function N0e(n){return l1(),Ee((Lxn(),kue),n)}function $0e(n){return Rh(),Ee((F$n(),yue),n)}function x0e(n){return wd(),Ee((B$n(),Aue),n)}function F0e(n){return ci(),Ee((b$n(),zue),n)}function B0e(n){return Nf(),Ee((wNn(),Xue),n)}function R0e(n){return El(),Ee((RNn(),Vue),n)}function K0e(n){return pA(),Ee((R$n(),Wue),n)}function _0e(n){return jl(),Ee((dNn(),Que),n)}function H0e(n){return To(),Ee((KNn(),Zue),n)}function q0e(n){return lw(),Ee((Wxn(),noe),n)}function U0e(n){return Fg(),Ee((g$n(),eoe),n)}function G0e(n){return Oi(),Ee((K$n(),toe),n)}function z0e(n){return zu(),Ee((_$n(),ioe),n)}function X0e(n){return tn(),Ee((p$n(),roe),n)}function V0e(n){return go(),Ee((_Nn(),foe),n)}function W0e(n){return io(),Ee((Vxn(),hoe),n)}function J0e(n){return Gp(),Ee((gNn(),loe),n)}function Q0e(n,e){return Jn(n),n+(Jn(e),e)}function Y0e(n){return RL(),Ee((pLn(),aoe),n)}function Z0e(n){return qT(),Ee((HNn(),doe),n)}function nbe(n){return LT(),Ee((qNn(),goe),n)}function k4(){k4=F,tln=(tn(),Wn),II=Zn}function RL(){RL=F,vdn=new VSn,kdn=new LPn}function ebe(n){return!n.e&&(n.e=new Z),n.e}function KL(n,e){this.c=n,this.a=e,this.b=e-n}function vSn(n,e,t){this.a=n,this.b=e,this.c=t}function _L(n,e,t){this.a=n,this.b=e,this.c=t}function FV(n,e,t){this.a=n,this.b=e,this.c=t}function BV(n,e,t){this.a=n,this.b=e,this.c=t}function kSn(n,e,t){this.a=n,this.b=e,this.c=t}function ySn(n,e,t){this.a=n,this.b=e,this.c=t}function Xl(n,e,t){this.e=n,this.a=e,this.c=t}function jSn(n,e,t){Ko(),tJ.call(this,n,e,t)}function HL(n,e,t){Ko(),RW.call(this,n,e,t)}function RV(n,e,t){Ko(),RW.call(this,n,e,t)}function KV(n,e,t){Ko(),RW.call(this,n,e,t)}function ESn(n,e,t){Ko(),HL.call(this,n,e,t)}function _V(n,e,t){Ko(),HL.call(this,n,e,t)}function CSn(n,e,t){Ko(),_V.call(this,n,e,t)}function MSn(n,e,t){Ko(),RV.call(this,n,e,t)}function TSn(n,e,t){Ko(),KV.call(this,n,e,t)}function qL(n){rM.call(this,n.d,n.c,n.a,n.b)}function HV(n){rM.call(this,n.d,n.c,n.a,n.b)}function qV(n){this.d=n,c9n(this),this.b=nwe(n.d)}function tbe(n){return Cm(),Ee((Nxn(),Poe),n)}function x7(n,e){return Se(n),Se(e),new NEn(n,e)}function Cp(n,e){return Se(n),Se(e),new RSn(n,e)}function ibe(n,e){return Se(n),Se(e),new KSn(n,e)}function rbe(n,e){return Se(n),Se(e),new qEn(n,e)}function UL(n){return oe(n.b!=0),Xo(n,n.a.a)}function cbe(n){return oe(n.b!=0),Xo(n,n.c.b)}function ube(n){return!n.c&&(n.c=new W3),n.c}function y4(n){var e;return e=new Z,b$(e,n),e}function obe(n){var e;return e=new ni,b$(e,n),e}function ASn(n){var e;return e=new GG,A$(e,n),e}function F7(n){var e;return e=new Ct,A$(e,n),e}function u(n,e){return F6(n==null||Tx(n,e)),n}function sbe(n,e,t){TPn.call(this,e,t),this.a=n}function SSn(n,e){this.c=n,this.b=e,this.a=!1}function PSn(){this.a=";,;",this.b="",this.c=""}function ISn(n,e,t){this.b=n,_Mn.call(this,e,t)}function UV(n,e,t){this.c=n,oC.call(this,e,t)}function GV(n,e,t){d4.call(this,n,e),this.b=t}function zV(n,e,t){Bnn(t,0,n,e,t.length,!1)}function Lh(n,e,t,i,r){n.b=e,n.c=t,n.d=i,n.a=r}function XV(n,e,t,i,r){n.d=e,n.c=t,n.a=i,n.b=r}function fbe(n,e){e&&(n.b=e,n.a=(z1(e),e.a))}function B7(n,e){if(!n)throw M(new Gn(e))}function Mp(n,e){if(!n)throw M(new Or(e))}function VV(n,e){if(!n)throw M(new Bjn(e))}function hbe(n,e){return ZE(),jc(n.d.p,e.d.p)}function lbe(n,e){return kl(),bt(n.e.b,e.e.b)}function abe(n,e){return kl(),bt(n.e.a,e.e.a)}function dbe(n,e){return jc(GSn(n.d),GSn(e.d))}function WC(n,e){return e&&vM(n,e.d)?e:null}function bbe(n,e){return e==(tn(),Wn)?n.c:n.d}function WV(n){return Q1(dwe(Vr(n)?ds(n):n))}function wbe(n){return new V(n.c+n.b,n.d+n.a)}function OSn(n){return n!=null&&!lx(n,N9,$9)}function gbe(n,e){return(fBn(n)<<4|fBn(e))&ui}function DSn(n,e,t,i,r){n.c=e,n.d=t,n.b=i,n.a=r}function JV(n){var e,t;e=n.b,t=n.c,n.b=t,n.c=e}function QV(n){var e,t;t=n.d,e=n.a,n.d=e,n.a=t}function pbe(n,e){var t;return t=n.c,PQ(n,e),t}function YV(n,e){return e<0?n.g=-1:n.g=e,n}function JC(n,e){return Mme(n),n.a*=e,n.b*=e,n}function LSn(n,e,t){A$n.call(this,e,t),this.d=n}function R7(n,e,t){pX.call(this,n,e),this.c=t}function QC(n,e,t){pX.call(this,n,e),this.c=t}function ZV(n){OV(),ME.call(this),this.ci(n)}function NSn(){$4(),Bwe.call(this,(R1(),Ss))}function $Sn(n){return nt(),new Nh(0,n)}function xSn(){xSn=F,AU=(Dn(),new nD(IK))}function YC(){YC=F,new hZ((bD(),HK),(dD(),_K))}function FSn(){FSn=F,pun=K(Gi,J,17,256,0,1)}function BSn(){this.b=$(R(rn((qs(),y_))))}function GL(n){this.b=n,this.a=Wa(this.b.a).Od()}function RSn(n,e){this.b=n,this.a=e,GO.call(this)}function KSn(n,e){this.a=n,this.b=e,GO.call(this)}function _Sn(n,e,t){this.a=n,gg.call(this,e,t)}function HSn(n,e,t){this.a=n,gg.call(this,e,t)}function j4(n,e,t){var i;i=new qb(t),df(n,e,i)}function nW(n,e,t){var i;return i=n[e],n[e]=t,i}function ZC(n){var e;return e=n.slice(),o$(e,n)}function nM(n){var e;return e=n.n,n.a.b+e.d+e.a}function qSn(n){var e;return e=n.n,n.e.b+e.d+e.a}function eW(n){var e;return e=n.n,n.e.a+e.b+e.c}function tW(n){n.a.b=n.b,n.b.a=n.a,n.a=n.b=null}function xe(n,e){return xt(n,e,n.c.b,n.c),!0}function mbe(n){return n.a?n.a:vN(n)}function vbe(n){return Lp(),Kh(n)==At(ia(n))}function kbe(n){return Lp(),ia(n)==At(Kh(n))}function d0(n,e){return O5(n,new d4(e.a,e.b))}function ybe(n,e){return yM(),Nx(n,e),new lIn(n,e)}function jbe(n,e){return n.c=e)throw M(new YG)}function _b(n,e){return $k(n,(Jn(e),new a9n(e)))}function Ap(n,e){return $k(n,(Jn(e),new d9n(e)))}function SPn(n,e,t){return VLe(n,u(e,12),u(t,12))}function PPn(n){return Ou(),u(n,12).g.c.length!=0}function IPn(n){return Ou(),u(n,12).e.c.length!=0}function uwe(n,e){return Hp(),bt(e.a.o.a,n.a.o.a)}function owe(n,e){e.Bb&kc&&!n.a.o&&(n.a.o=e)}function swe(n,e){e.Ug("General 'Rotator",1),jDe(n)}function fwe(n,e,t){e.qf(t,$(R(ee(n.b,t)))*n.a)}function OPn(n,e,t){return Xg(),W4(n,e)&&W4(n,t)}function _6(n){return zu(),!n.Hc(Fl)&&!n.Hc(Pa)}function hwe(n){return n.e?qJ(n.e):null}function H6(n){return Vr(n)?""+n:$qn(n)}function yW(n){var e;for(e=n;e.f;)e=e.f;return e}function lwe(n,e,t){return $t(e,0,oW(e[0],t[0])),e}function Vl(n,e,t,i){var r;r=n.i,r.i=e,r.a=t,r.b=i}function q(n,e,t,i){ti.call(this,n,e,t),this.b=i}function Ci(n,e,t,i,r){c$.call(this,n,e,t,i,r,-1)}function q6(n,e,t,i,r){ok.call(this,n,e,t,i,r,-1)}function bM(n,e,t,i){R7.call(this,n,e,t),this.b=i}function DPn(n){PMn.call(this,n,!1),this.a=!1}function LPn(){sMn.call(this,"LOOKAHEAD_LAYOUT",1)}function NPn(n){this.b=n,kp.call(this,n),RTn(this)}function $Pn(n){this.b=n,A7.call(this,n),KTn(this)}function Hb(n,e,t){this.a=n,jp.call(this,e,t,5,6)}function jW(n,e,t,i){this.b=n,ti.call(this,e,t,i)}function xPn(n,e){this.b=n,H8n.call(this,n.b),this.a=e}function FPn(n){this.a=kRn(n.a),this.b=new _u(n.b)}function EW(n,e){m0(),Hhe.call(this,n,FT(new Ku(e)))}function wM(n,e){return nt(),new BW(n,e,0)}function rN(n,e){return nt(),new BW(6,n,e)}function _i(n,e){for(Jn(e);n.Ob();)e.Cd(n.Pb())}function Zc(n,e){return Ai(e)?AN(n,e):!!wr(n.f,e)}function cN(n,e){return e.Vh()?na(n.b,u(e,54)):e}function awe(n,e){return An(n.substr(0,e.length),e)}function $h(n){return new te(new UX(n.a.length,n.a))}function gM(n){return new V(n.c+n.b/2,n.d+n.a/2)}function dwe(n){return Yc(~n.l&ro,~n.m&ro,~n.h&Il)}function uN(n){return typeof n===vy||typeof n===eB}function Hu(n){n.f=new iTn(n),n.i=new rTn(n),++n.g}function BPn(n){if(!n)throw M(new nc);return n.d}function Sp(n){var e;return e=a5(n),oe(e!=null),e}function bwe(n){var e;return e=I5e(n),oe(e!=null),e}function C4(n,e){var t;return t=n.a.gc(),BJ(e,t),t-e}function fi(n,e){var t;return t=n.a.zc(e,n),t==null}function _7(n,e){return n.a.zc(e,(_n(),wa))==null}function CW(n){return new Tn(null,vwe(n,n.length))}function MW(n,e,t){return cGn(n,u(e,42),u(t,176))}function Pp(n,e,t){return Ks(n.a,e),nW(n.b,e.g,t)}function wwe(n,e,t){E4(t,n.a.c.length),Go(n.a,t,e)}function B(n,e,t,i){xFn(e,t,n.length),gwe(n,e,t,i)}function gwe(n,e,t,i){var r;for(r=e;r0?y.Math.log(n/e):-100}function KPn(n,e){return Ec(n,e)<0?-1:Ec(n,e)>0?1:0}function H7(n,e){OTn(n,O(e,160)?e:u(e,2036).Rl())}function PW(n,e){if(n==null)throw M(new sp(e))}function vwe(n,e){return yme(e,n.length),new XSn(n,e)}function IW(n,e){return e?Bi(n,e):!1}function kwe(){return RE(),S(T(uQn,1),G,549,0,[GK])}function G6(n){return n.e==0?n:new Qa(-n.e,n.d,n.a)}function ywe(n,e){return bt(n.c.c+n.c.b,e.c.c+e.c.b)}function q7(n,e){xt(n.d,e,n.b.b,n.b),++n.a,n.c=null}function _Pn(n,e){return n.c?_Pn(n.c,e):nn(n.b,e),n}function jwe(n,e,t){var i;return i=Jb(n,e),qN(n,e,t),i}function HPn(n,e,t){var i;for(i=0;i=n.g}function $t(n,e,t){return dae(t==null||oPe(n,t)),n[e]=t}function $W(n,e){return zn(e,n.length+1),n.substr(e)}function gN(n,e){for(Jn(e);n.c=n?new Dz:Gme(n-1)}function Hi(n){return!n.a&&n.c?n.c.b:n.a}function KW(n){return O(n,616)?n:new oOn(n)}function z1(n){n.c?z1(n.c):(ea(n),n.d=!0)}function V6(n){n.c?n.c.$e():(n.d=!0,fTe(n))}function sIn(n){n.b=!1,n.c=!1,n.d=!1,n.a=!1}function fIn(n){var e,t;return e=n.c.i.c,t=n.d.i.c,e==t}function _we(n,e){var t;t=n.Ih(e),t>=0?n.ki(t):Pnn(n,e)}function hIn(n,e){n.c<0||n.b.b0;)n=n<<1|(n<0?1:0);return n}function mIn(n,e){var t;return t=new Lc(n),Bn(e.c,t),t}function vIn(n,e){n.u.Hc((zu(),Fl))&&zEe(n,e),h4e(n,e)}function mc(n,e){return x(n)===x(e)||n!=null&&rt(n,e)}function Cr(n,e){return JL(n.a,e)?n.b[u(e,22).g]:null}function nge(){return YE(),S(T(oon,1),G,489,0,[b_])}function ege(){return eC(),S(T($1n,1),G,490,0,[Bq])}function tge(){return tC(),S(T(zce,1),G,558,0,[Rq])}function ige(){return f6(),S(T(tan,1),G,539,0,[Hj])}function jM(n){return!n.n&&(n.n=new q(Ar,n,1,7)),n.n}function mN(n){return!n.c&&(n.c=new q(Qu,n,9,9)),n.c}function UW(n){return!n.c&&(n.c=new Nn(he,n,5,8)),n.c}function rge(n){return!n.b&&(n.b=new Nn(he,n,4,7)),n.b}function U7(n){return n.j.c.length=0,zW(n.c),xae(n.a),n}function P4(n){return n.e==rv&&jfe(n,Y8e(n.g,n.b)),n.e}function G7(n){return n.f==rv&&Cfe(n,q7e(n.g,n.b)),n.f}function Ve(n,e,t,i){return Hxn(n,e,t,!1),BT(n,i),n}function kIn(n,e){this.b=n,oN.call(this,n,e),RTn(this)}function yIn(n,e){this.b=n,SV.call(this,n,e),KTn(this)}function W6(n){this.d=n,this.a=this.d.b,this.b=this.d.c}function GW(n,e){this.b=n,this.c=e,this.a=new dp(this.b)}function Xi(n,e){return zn(e,n.length),n.charCodeAt(e)}function cge(n,e){DY(n,$(yl(e,"x")),$(yl(e,"y")))}function uge(n,e){DY(n,$(yl(e,"x")),$(yl(e,"y")))}function ut(n,e){return ea(n),new Tn(n,new tQ(e,n.a))}function _r(n,e){return ea(n),new Tn(n,new _J(e,n.a))}function Ub(n,e){return ea(n),new uV(n,new ILn(e,n.a))}function EM(n,e){return ea(n),new oV(n,new OLn(e,n.a))}function oge(n,e){return new GIn(u(Se(n),50),u(Se(e),50))}function sge(n,e){return bt(n.d.c+n.d.b/2,e.d.c+e.d.b/2)}function jIn(n,e,t){t.a?tu(n,e.b-n.f/2):eu(n,e.a-n.g/2)}function fge(n,e){return bt(n.g.c+n.g.b/2,e.g.c+e.g.b/2)}function hge(n,e){return $z(),bt((Jn(n),n),(Jn(e),e))}function lge(n){return n!=null&&r7(jO,n.toLowerCase())}function zW(n){var e;for(e=n.Kc();e.Ob();)e.Pb(),e.Qb()}function Tg(n){var e;return e=n.b,!e&&(n.b=e=new N8n(n)),e}function vN(n){var e;return e=Wme(n),e||null}function EIn(n,e){var t,i;return t=n/e,i=wi(t),t>i&&++i,i}function age(n,e,t){var i;i=u(n.d.Kb(t),159),i&&i.Nb(e)}function dge(n,e,t){wIe(n.a,t),zve(t),xCe(n.b,t),$Ie(e,t)}function CM(n,e,t,i){this.a=n,this.c=e,this.b=t,this.d=i}function XW(n,e,t,i){this.c=n,this.b=e,this.a=t,this.d=i}function CIn(n,e,t,i){this.c=n,this.b=e,this.d=t,this.a=i}function Ho(n,e,t,i){this.c=n,this.d=e,this.b=t,this.a=i}function MIn(n,e,t,i){this.a=n,this.d=e,this.c=t,this.b=i}function kN(n,e,t,i){this.a=n,this.e=e,this.d=t,this.c=i}function TIn(n,e,t,i){this.a=n,this.c=e,this.d=t,this.b=i}function yN(n,e,t){this.a=ktn,this.d=n,this.b=e,this.c=t}function Op(n,e,t,i){je.call(this,n,e),this.a=t,this.b=i}function AIn(n,e){this.d=(Jn(n),n),this.a=16449,this.c=e}function SIn(n){this.a=new Z,this.e=K(ye,J,53,n,0,2)}function bge(n){n.Ug("No crossing minimization",1),n.Vg()}function PIn(){ec.call(this,"There is no more element.")}function IIn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function OIn(n,e,t,i){this.a=n,this.b=e,this.c=t,this.d=i}function Za(n,e,t,i){this.e=n,this.a=e,this.c=t,this.d=i}function DIn(n,e,t,i){this.a=n,this.c=e,this.d=t,this.b=i}function LIn(n,e,t,i){Ko(),DLn.call(this,e,t,i),this.a=n}function NIn(n,e,t,i){Ko(),DLn.call(this,e,t,i),this.a=n}function jN(n,e,t){var i,r;return i=utn(n),r=e.ti(t,i),r}function al(n){var e,t;return t=(e=new Jd,e),K4(t,n),t}function EN(n){var e,t;return t=(e=new Jd,e),fnn(t,n),t}function wge(n,e){var t;return t=ee(n.f,e),HQ(e,t),null}function $In(n){return!n.b&&(n.b=new q(Vt,n,12,3)),n.b}function xIn(n){return F6(n==null||uN(n)&&n.Tm!==J2),n}function MM(n){return n.n&&(n.e!==Fzn&&n.je(),n.j=null),n}function I4(n){if(eo(n.d),n.d.d!=n.c)throw M(new Bo)}function VW(n){return oe(n.b0&&bKn(this)}function FIn(n,e){this.a=n,bae.call(this,n,u(n.d,15).fd(e))}function gge(n,e){return bt(Su(n)*ao(n),Su(e)*ao(e))}function pge(n,e){return bt(Su(n)*ao(n),Su(e)*ao(e))}function mge(n){return _0(n)&&on(un(z(n,(cn(),Nd))))}function vge(n,e){return Pn(n,u(v(e,(cn(),Cv)),17),e)}function kge(n,e){return u(v(n,(W(),T3)),15).Fc(e),e}function WW(n,e){return n.b=e.b,n.c=e.c,n.d=e.d,n.a=e.a,n}function BIn(n,e,t,i){this.b=n,this.c=i,IC.call(this,e,t)}function yge(n,e,t){n.i=0,n.e=0,e!=t&&yFn(n,e,t)}function jge(n,e,t){n.i=0,n.e=0,e!=t&&jFn(n,e,t)}function Ege(n,e,t){return s6(),J5e(u(ee(n.e,e),529),t)}function Dp(n){var e;return e=n.f,e||(n.f=new h4(n,n.c))}function RIn(n,e){return xg(n.j,e.s,e.c)+xg(e.e,n.s,n.c)}function KIn(n,e){n.e&&!n.e.a&&(Ayn(n.e,e),KIn(n.e,e))}function _In(n,e){n.d&&!n.d.a&&(Ayn(n.d,e),_In(n.d,e))}function Cge(n,e){return-bt(Su(n)*ao(n),Su(e)*ao(e))}function Mge(n){return u(n.ld(),149).Pg()+":"+Jr(n.md())}function HIn(){tF(this,new oG),this.wb=(G1(),Hn),o4()}function qIn(n){this.b=new Z,hi(this.b,this.b),this.a=n}function JW(n,e){new Ct,this.a=new Mu,this.b=n,this.c=e}function j0(){j0=F,Pun=new FU,ZK=new FU,Iun=new D0n}function Dn(){Dn=F,sr=new A0n,Wh=new P0n,hP=new I0n}function QW(){QW=F,RQn=new nbn,_Qn=new aW,KQn=new ebn}function Lp(){Lp=F,mP=new Z,m_=new de,p_=new Z}function TM(n,e){if(n==null)throw M(new sp(e));return n}function AM(n){return!n.a&&(n.a=new q(Qe,n,10,11)),n.a}function ft(n){return!n.q&&(n.q=new q(As,n,11,10)),n.q}function _(n){return!n.s&&(n.s=new q(ku,n,21,17)),n.s}function Tge(n){return Se(n),IRn(new te(re(n.a.Kc(),new En)))}function Age(n,e){return wo(n),wo(e),Fjn(u(n,22),u(e,22))}function nd(n,e,t){var i,r;i=IV(t),r=new AE(i),df(n,e,r)}function MN(n,e,t,i,r,c){ok.call(this,n,e,t,i,r,c?-2:-1)}function UIn(n,e,t,i){pX.call(this,e,t),this.b=n,this.a=i}function GIn(n,e){Vfe.call(this,new iN(n)),this.a=n,this.b=e}function YW(n){this.b=n,this.c=n,n.e=null,n.c=null,this.a=1}function Sge(n){xs();var e;e=u(n.g,10),e.n.a=n.d.c+e.d.b}function O4(){O4=F;var n,e;e=!$8e(),n=new V3,VK=e?new og:n}function TN(n){return Dn(),O(n,59)?new jD(n):new BC(n)}function SM(n){return O(n,16)?new B6(u(n,16)):obe(n.Kc())}function Pge(n){return new HTn(n,n.e.Rd().gc()*n.c.Rd().gc())}function Ige(n){return new qTn(n,n.e.Rd().gc()*n.c.Rd().gc())}function ZW(n){return n&&n.hashCode?n.hashCode():l0(n)}function AN(n,e){return e==null?!!wr(n.f,null):zbe(n.i,e)}function Oge(n,e){var t;return t=$X(n.a,e),t&&(e.d=null),t}function zIn(n,e,t){return n.f?n.f.ef(e,t):!1}function z7(n,e,t,i){$t(n.c[e.g],t.g,i),$t(n.c[t.g],e.g,i)}function SN(n,e,t,i){$t(n.c[e.g],e.g,t),$t(n.b[e.g],e.g,i)}function Dge(n,e,t){return $(R(t.a))<=n&&$(R(t.b))>=e}function XIn(n,e){this.g=n,this.d=S(T(Qh,1),b1,10,0,[e])}function VIn(n){this.c=n,this.b=new Ul(u(Se(new tbn),50))}function WIn(n){this.c=n,this.b=new Ul(u(Se(new ewn),50))}function JIn(n){this.b=n,this.a=new Ul(u(Se(new Nbn),50))}function QIn(){this.b=new ni,this.d=new Ct,this.e=new ZG}function nJ(){this.c=new Li,this.d=new Li,this.e=new Li}function E0(){this.a=new Mu,this.b=(Co(3,mw),new Gc(3))}function Wl(n,e){this.e=n,this.a=ki,this.b=Qqn(e),this.c=e}function PM(n){this.c=n.c,this.d=n.d,this.b=n.b,this.a=n.a}function YIn(n,e,t,i,r,c){this.a=n,k$.call(this,e,t,i,r,c)}function ZIn(n,e,t,i,r,c){this.a=n,k$.call(this,e,t,i,r,c)}function X1(n,e,t,i,r,c,s){return new GN(n.e,e,t,i,r,c,s)}function Lge(n,e,t){return t>=0&&An(n.substr(t,e.length),e)}function nOn(n,e){return O(e,149)&&An(n.b,u(e,149).Pg())}function Nge(n,e){return n.a?e.Gh().Kc():u(e.Gh(),71).Ii()}function eOn(n,e){var t;return t=n.b.Qc(e),WDn(t,n.b.gc()),t}function X7(n,e){if(n==null)throw M(new sp(e));return n}function Hr(n){return n.u||(Zu(n),n.u=new NAn(n,n)),n.u}function PN(n){this.a=(Dn(),O(n,59)?new jD(n):new BC(n))}function au(n){var e;return e=u(Un(n,16),29),e||n.ii()}function IM(n,e){var t;return t=za(n.Rm),e==null?t:t+": "+e}function qo(n,e,t){return Fi(e,t,n.length),n.substr(e,t-e)}function tOn(n,e){qC.call(this),lQ(this),this.a=n,this.c=e}function $ge(n){n&&IM(n,n.ie())}function xge(n){HE(),y.setTimeout(function(){throw n},0)}function Fge(){return YT(),S(T(Bun,1),G,436,0,[o_,Fun])}function Bge(){return cT(),S(T(Kun,1),G,435,0,[Run,s_])}function Rge(){return uT(),S(T(bon,1),G,432,0,[v_,vP])}function Kge(){return V4(),S(T(KZn,1),G,517,0,[dj,L_])}function _ge(){return KM(),S(T(Qsn,1),G,429,0,[fH,Jsn])}function Hge(){return pk(),S(T($sn,1),G,428,0,[WP,Nsn])}function qge(){return QM(),S(T(Asn,1),G,431,0,[Tsn,V_])}function Uge(){return wk(),S(T(qhn,1),G,430,0,[UH,GH])}function Gge(){return n5(),S(T(Oie,1),G,531,0,[r9,i9])}function zge(){return yT(),S(T(Rln,1),G,501,0,[RI,D2])}function Xge(){return sh(),S(T(Bie,1),G,523,0,[mb,y1])}function Vge(){return Sf(),S(T(Kie,1),G,522,0,[Rd,zf])}function Wge(){return lf(),S(T(ere,1),G,528,0,[zw,ja])}function Jge(){return hk(),S(T(Bsn,1),G,488,0,[Fsn,QP])}function Qge(){return GM(),S(T(S1n,1),G,491,0,[$q,A1n])}function Yge(){return N$(),S(T(N1n,1),G,492,0,[D1n,L1n])}function Zge(){return FM(),S(T(Bln,1),G,433,0,[dq,Fln])}function n2e(){return ZM(),S(T(_ln,1),G,434,0,[Kln,vq])}function e2e(){return M0(),S(T(sre,1),G,465,0,[Ea,P2])}function t2e(){return ck(),S(T(x1n,1),G,438,0,[Kq,JI])}function i2e(){return Ak(),S(T(ran,1),G,437,0,[YI,ian])}function r2e(){return RL(),S(T(dO,1),G,347,0,[vdn,kdn])}function OM(n,e,t,i){return t>=0?n.Uh(e,t,i):n.Ch(null,t,i)}function V7(n){return n.b.b==0?n.a.sf():UL(n.b)}function c2e(n){if(n.p!=5)throw M(new Cu);return Ae(n.f)}function u2e(n){if(n.p!=5)throw M(new Cu);return Ae(n.k)}function eJ(n){return x(n.a)===x((D$(),CU))&&rOe(n),n.a}function o2e(n,e){n.b=e,n.c>0&&n.b>0&&(n.g=cM(n.c,n.b,n.a))}function s2e(n,e){n.c=e,n.c>0&&n.b>0&&(n.g=cM(n.c,n.b,n.a))}function iOn(n,e){ufe(this,new V(n.a,n.b)),ofe(this,F7(e))}function C0(){Wfe.call(this,new ap(Qb(12))),KX(!0),this.a=2}function IN(n,e,t){nt(),Wd.call(this,n),this.b=e,this.a=t}function tJ(n,e,t){Ko(),LE.call(this,e),this.a=n,this.b=t}function rOn(n){var e;e=n.c.d.b,n.b=e,n.a=n.c.d,e.a=n.c.d.b=n}function f2e(n){return n.b==0?null:(oe(n.b!=0),Xo(n,n.a.a))}function Nc(n,e){return e==null?Kr(wr(n.f,null)):d6(n.i,e)}function cOn(n,e,t,i,r){return new rF(n,(B4(),i_),e,t,i,r)}function DM(n,e){return zDn(e),Lme(n,K(ye,Ke,28,e,15,1),e)}function LM(n,e){return TM(n,"set1"),TM(e,"set2"),new VEn(n,e)}function h2e(n,e){var t=XK[n.charCodeAt(0)];return t??n}function uOn(n,e){var t,i;return t=e,i=new DO,LGn(n,t,i),i.d}function ON(n,e,t,i){var r;r=new FAn,e.a[t.g]=r,Pp(n.b,i,r)}function l2e(n,e){var t;return t=Ime(n.f,e),tt(HC(t),n.f.d)}function W7(n){var e;_me(n.a),dTn(n.a),e=new IE(n.a),HY(e)}function a2e(n,e){_qn(n,!0),nu(n.e.Rf(),new NV(n,!0,e))}function d2e(n,e){return Lp(),n==At(Kh(e))||n==At(ia(e))}function b2e(n,e){return kl(),u(v(e,(lc(),Sh)),17).a==n}function wi(n){return Math.max(Math.min(n,et),-2147483648)|0}function oOn(n){this.a=u(Se(n),277),this.b=(Dn(),new XX(n))}function sOn(n,e,t){this.i=new Z,this.b=n,this.g=e,this.a=t}function iJ(n,e,t){this.a=new Z,this.e=n,this.f=e,this.c=t}function NM(n,e,t){this.c=new Z,this.e=n,this.f=e,this.b=t}function fOn(n){qC.call(this),lQ(this),this.a=n,this.c=!0}function w2e(n){function e(){}return e.prototype=n||{},new e}function g2e(n){if(n.Ae())return null;var e=n.n;return rP[e]}function J7(n){return n.Db>>16!=3?null:u(n.Cb,27)}function Af(n){return n.Db>>16!=9?null:u(n.Cb,27)}function hOn(n){return n.Db>>16!=6?null:u(n.Cb,74)}function M0(){M0=F,Ea=new cX(s3,0),P2=new cX(f3,1)}function sh(){sh=F,mb=new tX(f3,0),y1=new tX(s3,1)}function Sf(){Sf=F,Rd=new iX(_B,0),zf=new iX("UP",1)}function lOn(){lOn=F,oQn=Ce((RE(),S(T(uQn,1),G,549,0,[GK])))}function aOn(n){var e;return e=new zE(Qb(n.length)),eY(e,n),e}function dOn(n,e){return n.b+=e.b,n.c+=e.c,n.d+=e.d,n.a+=e.a,n}function p2e(n,e){return Zxn(n,e)?(W$n(n),!0):!1}function dl(n,e){if(e==null)throw M(new ip);return F8e(n,e)}function Q7(n,e){var t;t=n.q.getHours(),n.q.setDate(e),G5(n,t)}function rJ(n,e,t){var i;i=n.Ih(e),i>=0?n.bi(i,t):ten(n,e,t)}function bOn(n,e){var t;return t=n.Ih(e),t>=0?n.Wh(t):hF(n,e)}function wOn(n,e){var t;for(Se(e),t=n.a;t;t=t.c)e.Yd(t.g,t.i)}function DN(n,e,t){var i;i=vFn(n,e,t),n.b=new ET(i.c.length)}function Ag(n,e,t){$M(),n&&Xe(yU,n,e),n&&Xe(hE,n,t)}function m2e(n,e){return VC(),_n(),u(e.a,17).a0}function cJ(n){var e;return e=n.d,e=n.bj(n.f),ve(n,e),e.Ob()}function gOn(n,e){var t;return t=new fW(e),_Kn(t,n),new _u(t)}function y2e(n){if(n.p!=0)throw M(new Cu);return M6(n.f,0)}function j2e(n){if(n.p!=0)throw M(new Cu);return M6(n.k,0)}function pOn(n){return n.Db>>16!=7?null:u(n.Cb,241)}function D4(n){return n.Db>>16!=6?null:u(n.Cb,241)}function mOn(n){return n.Db>>16!=7?null:u(n.Cb,167)}function At(n){return n.Db>>16!=11?null:u(n.Cb,27)}function Gb(n){return n.Db>>16!=17?null:u(n.Cb,29)}function vOn(n){return n.Db>>16!=3?null:u(n.Cb,155)}function uJ(n){var e;return ea(n),e=new ni,ut(n,new M9n(e))}function kOn(n,e){var t=n.a=n.a||[];return t[e]||(t[e]=n.ve(e))}function E2e(n,e){var t;t=n.q.getHours(),n.q.setMonth(e),G5(n,t)}function yOn(n,e){xC(this),this.f=e,this.g=n,MM(this),this.je()}function jOn(n,e){this.a=n,this.c=Ki(this.a),this.b=new PM(e)}function EOn(n,e,t){this.a=e,this.c=n,this.b=(Se(t),new _u(t))}function COn(n,e,t){this.a=e,this.c=n,this.b=(Se(t),new _u(t))}function MOn(n){this.a=n,this.b=K(Sie,J,2043,n.e.length,0,2)}function TOn(){this.a=new ih,this.e=new ni,this.g=0,this.i=0}function $M(){$M=F,yU=new de,hE=new de,ple(MQn,new wvn)}function AOn(){AOn=F,aie=Pu(new ii,(Vi(),zr),(tr(),bj))}function oJ(){oJ=F,die=Pu(new ii,(Vi(),zr),(tr(),bj))}function SOn(){SOn=F,wie=Pu(new ii,(Vi(),zr),(tr(),bj))}function POn(){POn=F,Lie=Re(new ii,(Vi(),zr),(tr(),x8))}function ko(){ko=F,xie=Re(new ii,(Vi(),zr),(tr(),x8))}function IOn(){IOn=F,Fie=Re(new ii,(Vi(),zr),(tr(),x8))}function NN(){NN=F,Hie=Re(new ii,(Vi(),zr),(tr(),x8))}function J6(n,e,t,i,r,c){return new ml(n.e,e,n.Lj(),t,i,r,c)}function Dr(n,e,t){return e==null?Vc(n.f,null,t):$0(n.i,e,t)}function Zi(n,e){n.c&&du(n.c.g,n),n.c=e,n.c&&nn(n.c.g,n)}function $i(n,e){n.c&&du(n.c.a,n),n.c=e,n.c&&nn(n.c.a,n)}function ic(n,e){n.i&&du(n.i.j,n),n.i=e,n.i&&nn(n.i.j,n)}function Ii(n,e){n.d&&du(n.d.e,n),n.d=e,n.d&&nn(n.d.e,n)}function $N(n,e){n.a&&du(n.a.k,n),n.a=e,n.a&&nn(n.a.k,n)}function xN(n,e){n.b&&du(n.b.f,n),n.b=e,n.b&&nn(n.b.f,n)}function OOn(n,e){$we(n,n.b,n.c),u(n.b.b,68),e&&u(e.b,68).b}function C2e(n,e){return bt(u(n.c,65).c.e.b,u(e.c,65).c.e.b)}function M2e(n,e){return bt(u(n.c,65).c.e.a,u(e.c,65).c.e.a)}function T2e(n){return Y$(),_n(),u(n.a,86).d.e!=0}function xM(n,e){O(n.Cb,184)&&(u(n.Cb,184).tb=null),zc(n,e)}function FN(n,e){O(n.Cb,90)&&hw(Zu(u(n.Cb,90)),4),zc(n,e)}function A2e(n,e){LY(n,e),O(n.Cb,90)&&hw(Zu(u(n.Cb,90)),2)}function S2e(n,e){var t,i;t=e.c,i=t!=null,i&&Ip(n,new qb(e.c))}function DOn(n){var e,t;return t=(o4(),e=new Jd,e),K4(t,n),t}function LOn(n){var e,t;return t=(o4(),e=new Jd,e),K4(t,n),t}function NOn(n){for(var e;;)if(e=n.Pb(),!n.Ob())return e}function P2e(n,e,t){return nn(n.a,(yM(),Nx(e,t),new i0(e,t))),n}function $c(n,e){return dr(),a$(e)?new eM(e,n):new j7(e,n)}function Y7(n){return dh(),Ec(n,0)>=0?ta(n):G6(ta(n1(n)))}function I2e(n){var e;return e=u(ZC(n.b),9),new _o(n.a,e,n.c)}function $On(n,e){var t;return t=u(tw(Dp(n.a),e),16),t?t.gc():0}function xOn(n,e,t){var i;oBn(e,t,n.c.length),i=t-e,Pz(n.c,e,i)}function Jl(n,e,t){oBn(e,t,n.gc()),this.c=n,this.a=e,this.b=t-e}function Np(n){this.c=new Ct,this.b=n.b,this.d=n.c,this.a=n.a}function BN(n){this.a=y.Math.cos(n),this.b=y.Math.sin(n)}function ed(n,e,t,i){this.c=n,this.d=i,$N(this,e),xN(this,t)}function sJ(n,e){Xfe.call(this,new ap(Qb(n))),Co(e,Ozn),this.a=e}function FOn(n,e,t){return new rF(n,(B4(),t_),null,!1,e,t)}function BOn(n,e,t){return new rF(n,(B4(),r_),e,t,null,!1)}function O2e(){return Gu(),S(T(xr,1),G,108,0,[xun,Yr,Aw])}function D2e(){return bu(),S(T(JQn,1),G,472,0,[vf,pa,zs])}function L2e(){return Uu(),S(T(VQn,1),G,471,0,[Mh,ga,Gs])}function N2e(){return bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])}function $2e(){return i5(),S(T(Pon,1),G,391,0,[E_,j_,C_])}function x2e(){return D0(),S(T(R_,1),G,372,0,[ub,ma,cb])}function F2e(){return u5(),S(T(Psn,1),G,322,0,[B8,pj,Ssn])}function B2e(){return bT(),S(T(Osn,1),G,351,0,[Isn,VP,W_])}function R2e(){return hd(),S(T(pne,1),G,460,0,[Y_,mv,p2])}function K2e(){return Z4(),S(T(sH,1),G,299,0,[uH,oH,mj])}function _2e(){return vl(),S(T(Mne,1),G,311,0,[vj,v2,E3])}function H2e(){return g5(),S(T(Lhn,1),G,390,0,[FH,Dhn,MI])}function q2e(){return gr(),S(T(cie,1),G,463,0,[n9,Vu,Jc])}function U2e(){return ST(),S(T(zhn,1),G,387,0,[Uhn,zH,Ghn])}function G2e(){return d5(),S(T(Xhn,1),G,349,0,[VH,XH,Ij])}function z2e(){return om(),S(T(Whn,1),G,350,0,[WH,Vhn,e9])}function X2e(){return dT(),S(T(Yhn,1),G,352,0,[Qhn,JH,Jhn])}function V2e(){return DT(),S(T(Zhn,1),G,388,0,[QH,Ov,Gw])}function W2e(){return O0(),S(T(Tie,1),G,464,0,[Oj,t9,PI])}function Pf(n){return cc(S(T(Ei,1),J,8,0,[n.i.n,n.n,n.a]))}function J2e(){return b5(),S(T(gln,1),G,392,0,[wln,nq,Lj])}function ROn(){ROn=F,Fre=Pu(new ii,(Qp(),u9),(q5(),uln))}function FM(){FM=F,dq=new uX("DFS",0),Fln=new uX("BFS",1)}function KOn(n,e,t){var i;i=new E3n,i.b=e,i.a=t,++e.b,nn(n.d,i)}function Q2e(n,e,t){var i;i=new rr(t.d),tt(i,n),DY(e,i.a,i.b)}function Y2e(n,e){LTn(n,Ae(vi(w0(e,24),YA)),Ae(vi(e,YA)))}function zb(n,e){if(n<0||n>e)throw M(new Ir(Ptn+n+Itn+e))}function Ln(n,e){if(n<0||n>=e)throw M(new Ir(Ptn+n+Itn+e))}function zn(n,e){if(n<0||n>=e)throw M(new gz(Ptn+n+Itn+e))}function In(n,e){this.b=(Jn(n),n),this.a=e&vw?e:e|64|wh}function fJ(n){var e;return ea(n),e=(j0(),j0(),ZK),fT(n,e)}function Z2e(n,e,t){var i;return i=V5(n,e,!1),i.b<=e&&i.a<=t}function npe(){return nT(),S(T(O1n,1),G,439,0,[xq,I1n,P1n])}function epe(){return _T(),S(T(a1n,1),G,394,0,[l1n,Oq,h1n])}function tpe(){return XT(),S(T(f1n,1),G,445,0,[Bj,qI,Mq])}function ipe(){return rA(),S(T(bce,1),G,456,0,[Tq,Sq,Aq])}function rpe(){return Ok(),S(T(Uln,1),G,393,0,[KI,Hln,qln])}function cpe(){return AT(),S(T(s1n,1),G,300,0,[Cq,o1n,u1n])}function upe(){return jl(),S(T(ldn,1),G,346,0,[uO,M1,M9])}function ope(){return Fk(),S(T(Fq,1),G,444,0,[XI,VI,WI])}function spe(){return Nf(),S(T(Zan,1),G,278,0,[Bv,Jw,Rv])}function fpe(){return Gp(),S(T(mdn,1),G,280,0,[pdn,Yw,aO])}function T0(n){return Se(n),O(n,16)?new _u(u(n,16)):y4(n.Kc())}function hJ(n,e){return n&&n.equals?n.equals(e):x(n)===x(e)}function vi(n,e){return Q1(ewe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function hf(n,e){return Q1(twe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function RN(n,e){return Q1(iwe(Vr(n)?ds(n):n,Vr(e)?ds(e):e))}function hpe(n,e){var t;return t=(Jn(n),n).g,rV(!!t),Jn(e),t(e)}function _On(n,e){var t,i;return i=C4(n,e),t=n.a.fd(i),new zEn(n,t)}function lpe(n){return n.Db>>16!=6?null:u(dF(n),241)}function ape(n){if(n.p!=2)throw M(new Cu);return Ae(n.f)&ui}function dpe(n){if(n.p!=2)throw M(new Cu);return Ae(n.k)&ui}function E(n){return oe(n.ai?1:0}function GOn(n,e){var t,i;return t=s$(e),i=t,u(ee(n.c,i),17).a}function KN(n,e,t){var i;i=n.d[e.p],n.d[e.p]=n.d[t.p],n.d[t.p]=i}function Cpe(n,e,t){var i;n.n&&e&&t&&(i=new uvn,nn(n.e,i))}function _N(n,e){if(fi(n.a,e),e.d)throw M(new ec(nXn));e.d=n}function dJ(n,e){this.a=new Z,this.d=new Z,this.f=n,this.c=e}function zOn(){this.c=new PTn,this.a=new $Ln,this.b=new Xyn,lCn()}function XOn(){qp(),this.b=new de,this.a=new de,this.c=new Z}function VOn(n,e,t){this.d=n,this.j=e,this.e=t,this.o=-1,this.p=3}function WOn(n,e,t){this.d=n,this.k=e,this.f=t,this.o=-1,this.p=5}function JOn(n,e,t,i,r,c){dQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function QOn(n,e,t,i,r,c){bQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function YOn(n,e,t,i,r,c){OJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function ZOn(n,e,t,i,r,c){pQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function nDn(n,e,t,i,r,c){DJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function eDn(n,e,t,i,r,c){wQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function tDn(n,e,t,i,r,c){gQ.call(this,n,e,t,i,r),c&&(this.o=-2)}function iDn(n,e,t,i,r,c){LJ.call(this,n,e,t,i,r),c&&(this.o=-2)}function rDn(n,e,t,i){LE.call(this,t),this.b=n,this.c=e,this.d=i}function cDn(n,e){this.f=n,this.a=($4(),MO),this.c=MO,this.b=e}function uDn(n,e){this.g=n,this.d=($4(),TO),this.a=TO,this.b=e}function bJ(n,e){!n.c&&(n.c=new Rt(n,0)),HA(n.c,(at(),F9),e)}function Mpe(n,e){return oMe(n,e,O(e,102)&&(u(e,19).Bb&hr)!=0)}function Tpe(n,e){return KPn(vc(n.q.getTime()),vc(e.q.getTime()))}function oDn(n){return XL(n.e.Rd().gc()*n.c.Rd().gc(),16,new O8n(n))}function Ape(n){return!!n.u&&Sc(n.u.a).i!=0&&!(n.n&&Ix(n.n))}function Spe(n){return!!n.a&&no(n.a.a).i!=0&&!(n.b&&Ox(n.b))}function wJ(n,e){return e==0?!!n.o&&n.o.f!=0:Cx(n,e)}function Ppe(n,e,t){var i;return i=u(n.Zb().xc(e),16),!!i&&i.Hc(t)}function sDn(n,e,t){var i;return i=u(n.Zb().xc(e),16),!!i&&i.Mc(t)}function fDn(n,e){var t;return t=1-e,n.a[t]=jT(n.a[t],t),jT(n,e)}function hDn(n,e){var t,i;return i=vi(n,mr),t=Fs(e,32),hf(t,i)}function lDn(n,e,t){var i;i=(Se(n),new _u(n)),O7e(new EOn(i,e,t))}function Z7(n,e,t){var i;i=(Se(n),new _u(n)),D7e(new COn(i,e,t))}function fc(n,e,t,i,r,c){return Hxn(n,e,t,c),CY(n,i),MY(n,r),n}function aDn(n,e,t,i){return n.a+=""+qo(e==null?gu:Jr(e),t,i),n}function xi(n,e){this.a=n,Xv.call(this,n),zb(e,n.gc()),this.b=e}function dDn(n){this.a=K(ki,Fn,1,QQ(y.Math.max(8,n))<<1,5,1)}function nk(n){return u(xf(n,K(Qh,b1,10,n.c.length,0,1)),199)}function fh(n){return u(xf(n,K(O_,rR,18,n.c.length,0,1)),483)}function bDn(n){return n.a?n.e.length==0?n.a.a:n.a.a+(""+n.e):n.c}function Q6(n){for(;n.d>0&&n.a[--n.d]==0;);n.a[n.d++]==0&&(n.e=0)}function wDn(n){return oe(n.b.b!=n.d.a),n.c=n.b=n.b.b,--n.a,n.c.c}function Ipe(n,e,t){n.a=e,n.c=t,n.b.a.$b(),vo(n.d),Pb(n.e.a.c,0)}function gDn(n,e){var t;n.e=new uz,t=aw(e),Yt(t,n.c),Iqn(n,t,0)}function ri(n,e,t,i){var r;r=new nG,r.a=e,r.b=t,r.c=i,xe(n.a,r)}function Q(n,e,t,i){var r;r=new nG,r.a=e,r.b=t,r.c=i,xe(n.b,r)}function pDn(n,e,t){if(n<0||et)throw M(new Ir(qje(n,e,t)))}function ek(n,e){if(n<0||n>=e)throw M(new Ir(kEe(n,e)));return n}function Ope(n){if(!("stack"in n))try{throw n}catch{}return n}function Sg(n){return s6(),O(n.g,10)?u(n.g,10):null}function Dpe(n){return Tg(n).dc()?!1:(e1e(n,new Pr),!0)}function id(n){var e;return Vr(n)?(e=n,e==-0?0:e):X4e(n)}function mDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function vDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function kDn(n,e){return O(e,44)?xx(n.a,u(e,44)):!1}function gJ(n){var e;return z1(n),e=new L0n,hg(n.a,new j9n(e)),e}function pJ(){var n,e,t;return e=(t=(n=new Jd,n),t),nn(n0n,e),e}function BM(n){var e;return z1(n),e=new N0n,hg(n.a,new E9n(e)),e}function Lpe(n,e){return n.a<=n.b?(e.Dd(n.a++),!0):!1}function yDn(n){P$.call(this,n,(B4(),e_),null,!1,null,!1)}function jDn(){jDn=F,SYn=Ce((YE(),S(T(oon,1),G,489,0,[b_])))}function EDn(){EDn=F,eln=wIn(Y(1),Y(4)),nln=wIn(Y(1),Y(2))}function Npe(n,e){return new _L(e,N6(Ki(e.e),n,n),(_n(),!0))}function RM(n){return new Gc((Co(n,cB),oT(nr(nr(5,n),n/10|0))))}function $pe(n){return XL(n.e.Rd().gc()*n.c.Rd().gc(),273,new I8n(n))}function CDn(n){return u(xf(n,K(FZn,DXn,12,n.c.length,0,1)),2042)}function xpe(n){return ko(),!fr(n)&&!(!fr(n)&&n.c.i.c==n.d.i.c)}function Fpe(n,e){return _p(),u(v(e,(lc(),I2)),17).a>=n.gc()}function Y6(n,e){vLe(e,n),JV(n.d),JV(u(v(n,(cn(),mI)),214))}function HN(n,e){kLe(e,n),QV(n.d),QV(u(v(n,(cn(),mI)),214))}function Bpe(n,e,t){n.d&&du(n.d.e,n),n.d=e,n.d&&b0(n.d.e,t,n)}function Rpe(n,e,t){return t.f.c.length>0?MW(n.a,e,t):MW(n.b,e,t)}function Kpe(n,e,t){var i;i=i9e();try{return Aae(n,e,t)}finally{D3e(i)}}function A0(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=t.pe()),i}function Z6(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=t.se()),i}function L4(n,e){var t,i;return t=Jb(n,e),i=null,t&&(i=t.se()),i}function bl(n,e){var t,i;return t=dl(n,e),i=null,t&&(i=gnn(t)),i}function _pe(n,e,t){var i;return i=wm(t),FA(n.g,i,e),FA(n.i,e,t),e}function mJ(n,e,t){this.d=new $7n(this),this.e=n,this.i=e,this.f=t}function MDn(n,e,t,i){this.e=null,this.c=n,this.d=e,this.a=t,this.b=i}function TDn(n,e,t,i){ETn(this),this.c=n,this.e=e,this.f=t,this.b=i}function vJ(n,e,t,i){this.d=n,this.n=e,this.g=t,this.o=i,this.p=-1}function ADn(n,e,t,i){return O(t,59)?new iAn(n,e,t,i):new vW(n,e,t,i)}function N4(n){return O(n,16)?u(n,16).dc():!n.Kc().Ob()}function SDn(n){if(n.e.g!=n.b)throw M(new Bo);return!!n.c&&n.d>0}function be(n){return oe(n.b!=n.d.c),n.c=n.b,n.b=n.b.a,++n.a,n.c.c}function kJ(n,e){Jn(e),$t(n.a,n.c,e),n.c=n.c+1&n.a.length-1,JRn(n)}function V1(n,e){Jn(e),n.b=n.b-1&n.a.length-1,$t(n.a,n.b,e),JRn(n)}function PDn(n){var e;e=n.Gh(),this.a=O(e,71)?u(e,71).Ii():e.Kc()}function Hpe(n){return new In(Ame(u(n.a.md(),16).gc(),n.a.ld()),16)}function IDn(){IDn=F,Gce=Ce((eC(),S(T($1n,1),G,490,0,[Bq])))}function ODn(){ODn=F,Xce=Ce((tC(),S(T(zce,1),G,558,0,[Rq])))}function DDn(){DDn=F,lue=Ce((f6(),S(T(tan,1),G,539,0,[Hj])))}function qpe(){return dd(),S(T(Lon,1),G,389,0,[Ow,Don,P_,I_])}function Upe(){return B4(),S(T(lP,1),G,304,0,[e_,t_,i_,r_])}function Gpe(){return Vp(),S(T(EYn,1),G,332,0,[uj,cj,oj,sj])}function zpe(){return A5(),S(T(TYn,1),G,406,0,[fj,wP,gP,hj])}function Xpe(){return N0(),S(T(yYn,1),G,417,0,[rj,ij,a_,d_])}function Vpe(){return nm(),S(T(MZn,1),G,416,0,[rb,Iw,Pw,a2])}function Wpe(){return $f(),S(T(ene,1),G,421,0,[j3,lv,av,B_])}function Jpe(){return OT(),S(T(UZn,1),G,371,0,[F_,HP,qP,wj])}function Qpe(){return cw(),S(T(RH,1),G,203,0,[TI,BH,S2,A2])}function Ype(){return lh(),S(T(Hhn,1),G,284,0,[k1,_hn,HH,qH])}function Zpe(n){var e;return n.j==(tn(),ae)&&(e=mHn(n),Au(e,Zn))}function n3e(n,e){var t;t=e.a,Zi(t,e.c.d),Ii(t,e.d.d),nw(t.a,n.n)}function yJ(n,e){var t;return t=u(Lf(n.b,e),67),!t&&(t=new Ct),t}function xp(n){return s6(),O(n.g,154)?u(n.g,154):null}function e3e(n){n.a=null,n.e=null,Pb(n.b.c,0),Pb(n.f.c,0),n.c=null}function KM(){KM=F,fH=new Zz(qm,0),Jsn=new Zz("TOP_LEFT",1)}function n5(){n5=F,r9=new eX("UPPER",0),i9=new eX("LOWER",1)}function t3e(n,e){return vp(new V(e.e.a+e.f.a/2,e.e.b+e.f.b/2),n)}function LDn(n,e){return u(ho(_b(u(ot(n.k,e),15).Oc(),b2)),113)}function NDn(n,e){return u(ho(Ap(u(ot(n.k,e),15).Oc(),b2)),113)}function i3e(){return Qp(),S(T(rln,1),G,405,0,[LI,c9,u9,o9])}function r3e(){return w5(),S(T(xln,1),G,353,0,[aq,BI,lq,hq])}function c3e(){return sA(),S(T(c1n,1),G,354,0,[Eq,i1n,r1n,t1n])}function u3e(){return go(),S(T(I9,1),G,386,0,[rE,Gd,iE,Qw])}function o3e(){return To(),S(T(Yue,1),G,291,0,[nE,nl,Ta,Zj])}function s3e(){return El(),S(T(aU,1),G,223,0,[lU,Yj,Kv,F3])}function f3e(){return qT(),S(T(Cdn,1),G,320,0,[wU,ydn,Edn,jdn])}function h3e(){return LT(),S(T(woe,1),G,415,0,[gU,Tdn,Mdn,Adn])}function l3e(n){return $M(),Zc(yU,n)?u(ee(yU,n),341).Qg():null}function Uo(n,e,t){return e<0?hF(n,t):u(t,69).wk().Bk(n,n.hi(),e)}function a3e(n,e,t){var i;return i=wm(t),FA(n.j,i,e),Xe(n.k,e,t),e}function d3e(n,e,t){var i;return i=wm(t),FA(n.d,i,e),Xe(n.e,e,t),e}function $Dn(n){var e,t;return e=(B1(),t=new HO,t),n&&AA(e,n),e}function jJ(n){var e;return e=n.aj(n.i),n.i>0&&Ic(n.g,0,e,0,n.i),e}function xDn(n,e){var t;for(t=n.j.c.length;t>24}function w3e(n){if(n.p!=1)throw M(new Cu);return Ae(n.k)<<24>>24}function g3e(n){if(n.p!=7)throw M(new Cu);return Ae(n.k)<<16>>16}function p3e(n){if(n.p!=7)throw M(new Cu);return Ae(n.f)<<16>>16}function Pg(n,e){return e.e==0||n.e==0?O8:(Am(),vF(n,e))}function RDn(n,e){return x(e)===x(n)?"(this Map)":e==null?gu:Jr(e)}function m3e(n,e,t){return tN(R(Kr(wr(n.f,e))),R(Kr(wr(n.f,t))))}function v3e(n,e,t){var i;i=u(ee(n.g,t),60),nn(n.a.c,new bi(e,i))}function KDn(n,e,t){n.i=0,n.e=0,e!=t&&(jFn(n,e,t),yFn(n,e,t))}function k3e(n,e,t,i,r){var c;c=yMe(r,t,i),nn(e,dEe(r,c)),rje(n,r,e)}function EJ(n,e,t,i,r){this.i=n,this.a=e,this.e=t,this.j=i,this.f=r}function _Dn(n,e){nJ.call(this),this.a=n,this.b=e,nn(this.a.b,this)}function HDn(n){this.b=new de,this.c=new de,this.d=new de,this.a=n}function qDn(n,e){var t;return t=new lp,n.Gd(t),t.a+="..",e.Hd(t),t.a}function UDn(n,e){var t;for(t=e;t;)a0(n,t.i,t.j),t=At(t);return n}function GDn(n,e,t){var i;return i=wm(t),Xe(n.b,i,e),Xe(n.c,e,t),e}function wl(n){var e;for(e=0;n.Ob();)n.Pb(),e=nr(e,1);return oT(e)}function Fh(n,e){dr();var t;return t=u(n,69).vk(),kje(t,e),t.xl(e)}function y3e(n,e,t){if(t){var i=t.oe();n.a[e]=i(t)}else delete n.a[e]}function CJ(n,e){var t;t=n.q.getHours(),n.q.setFullYear(e+fa),G5(n,t)}function j3e(n,e){return u(e==null?Kr(wr(n.f,null)):d6(n.i,e),288)}function MJ(n,e){return n==(Vn(),zt)&&e==zt?4:n==zt||e==zt?8:32}function _M(n,e,t){return RA(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function E3e(n,e,t){return Om(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function C3e(n,e,t){return bMe(n,e,t,O(e,102)&&(u(e,19).Bb&hr)!=0)}function TJ(n){n.b!=n.c&&(n.a=K(ki,Fn,1,8,5,1),n.b=0,n.c=0)}function e5(n){return oe(n.a=0&&n.a[t]===e[t];t--);return t<0}function HM(n){var e;return n?new fW(n):(e=new ih,A$(e,n),e)}function O3e(n,e){var t,i;i=!1;do t=lFn(n,e),i=i|t;while(t);return i}function D3e(n){n&&rme((az(),sun)),--cP,n&&uP!=-1&&(Ele(uP),uP=-1)}function qM(n){nnn(),LTn(this,Ae(vi(w0(n,24),YA)),Ae(vi(n,YA)))}function JDn(){JDn=F,HQn=Ce((YT(),S(T(Bun,1),G,436,0,[o_,Fun])))}function QDn(){QDn=F,qQn=Ce((cT(),S(T(Kun,1),G,435,0,[Run,s_])))}function YDn(){YDn=F,GYn=Ce((uT(),S(T(bon,1),G,432,0,[v_,vP])))}function ZDn(){ZDn=F,_Zn=Ce((V4(),S(T(KZn,1),G,517,0,[dj,L_])))}function nLn(){nLn=F,Ane=Ce((KM(),S(T(Qsn,1),G,429,0,[fH,Jsn])))}function eLn(){eLn=F,gne=Ce((pk(),S(T($sn,1),G,428,0,[WP,Nsn])))}function tLn(){tLn=F,kne=Ce((hk(),S(T(Bsn,1),G,488,0,[Fsn,QP])))}function iLn(){iLn=F,rie=Ce((wk(),S(T(qhn,1),G,430,0,[UH,GH])))}function rLn(){rLn=F,Die=Ce((n5(),S(T(Oie,1),G,531,0,[r9,i9])))}function cLn(){cLn=F,ane=Ce((QM(),S(T(Asn,1),G,431,0,[Tsn,V_])))}function uLn(){uLn=F,xre=Ce((FM(),S(T(Bln,1),G,433,0,[dq,Fln])))}function oLn(){oLn=F,_re=Ce((yT(),S(T(Rln,1),G,501,0,[RI,D2])))}function sLn(){sLn=F,Rie=Ce((sh(),S(T(Bie,1),G,523,0,[mb,y1])))}function fLn(){fLn=F,_ie=Ce((Sf(),S(T(Kie,1),G,522,0,[Rd,zf])))}function hLn(){hLn=F,tre=Ce((lf(),S(T(ere,1),G,528,0,[zw,ja])))}function lLn(){lLn=F,fre=Ce((M0(),S(T(sre,1),G,465,0,[Ea,P2])))}function aLn(){aLn=F,Ure=Ce((ZM(),S(T(_ln,1),G,434,0,[Kln,vq])))}function dLn(){dLn=F,Rce=Ce((GM(),S(T(S1n,1),G,491,0,[$q,A1n])))}function bLn(){bLn=F,_ce=Ce((N$(),S(T(N1n,1),G,492,0,[D1n,L1n])))}function wLn(){wLn=F,Vce=Ce((ck(),S(T(x1n,1),G,438,0,[Kq,JI])))}function gLn(){gLn=F,aue=Ce((Ak(),S(T(ran,1),G,437,0,[YI,ian])))}function pLn(){pLn=F,aoe=Ce((RL(),S(T(dO,1),G,347,0,[vdn,kdn])))}function L3e(){return ci(),S(T(E9,1),G,88,0,[Wf,Xr,Br,Vf,us])}function N3e(){return tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])}function $3e(n,e,t){return u(e==null?Vc(n.f,null,t):$0(n.i,e,t),288)}function x3e(n){return(n.k==(Vn(),zt)||n.k==Zt)&&kt(n,(W(),H8))}function XN(n){return n.c&&n.d?aJ(n.c)+"->"+aJ(n.d):"e_"+l0(n)}function qi(n,e){var t,i;for(Jn(e),i=n.Kc();i.Ob();)t=i.Pb(),e.Cd(t)}function F3e(n,e){var t;t=new op,nd(t,"x",e.a),nd(t,"y",e.b),Ip(n,t)}function B3e(n,e){var t;t=new op,nd(t,"x",e.a),nd(t,"y",e.b),Ip(n,t)}function mLn(n,e){var t;for(t=e;t;)a0(n,-t.i,-t.j),t=At(t);return n}function SJ(n,e){var t,i;for(t=e,i=0;t>0;)i+=n.a[t],t-=t&-t;return i}function Go(n,e,t){var i;return i=(Ln(e,n.c.length),n.c[e]),n.c[e]=t,i}function PJ(n,e,t){n.a.c.length=0,fOe(n,e,t),n.a.c.length==0||xSe(n,e)}function tk(n){n.i=0,s7(n.b,null),s7(n.c,null),n.a=null,n.e=null,++n.g}function UM(){UM=F,qf=!0,DQn=!1,LQn=!1,$Qn=!1,NQn=!1}function VN(n){UM(),!qf&&(this.c=n,this.e=!0,this.a=new Z)}function vLn(n,e){this.c=0,this.b=e,HMn.call(this,n,17493),this.a=this.c}function kLn(n){jzn(),Syn(this),this.a=new Ct,sY(this,n),xe(this.a,n)}function yLn(){pL(this),this.b=new V(St,St),this.a=new V(li,li)}function GM(){GM=F,$q=new fX(cin,0),A1n=new fX("TARGET_WIDTH",1)}function Ig(n,e){return(ea(n),s4(new Tn(n,new tQ(e,n.a)))).Bd(v3)}function R3e(){return Vi(),S(T(Ion,1),G,367,0,[Xs,Jh,Oc,Kc,zr])}function K3e(){return ow(),S(T(ine,1),G,375,0,[gj,zP,XP,GP,UP])}function _3e(){return o1(),S(T(Lsn,1),G,348,0,[J_,Dsn,Q_,pv,gv])}function H3e(){return T5(),S(T($hn,1),G,323,0,[Nhn,KH,_H,Y8,Z8])}function q3e(){return Yo(),S(T(hfn,1),G,171,0,[Ej,U8,ka,G8,xw])}function U3e(){return wA(),S(T(Hre,1),G,368,0,[pq,bq,mq,wq,gq])}function G3e(){return R5(),S(T(Hce,1),G,373,0,[L2,D3,g9,w9,_j])}function z3e(){return Yk(),S(T(K1n,1),G,324,0,[F1n,_q,R1n,Hq,B1n])}function X3e(){return gf(),S(T(Zh,1),G,170,0,[xn,pi,Ph,Kd,E1])}function V3e(){return Fg(),S(T(A9,1),G,256,0,[Aa,eE,adn,T9,ddn])}function W3e(n){return HE(),function(){return Kpe(n,this,arguments)}}function fr(n){return!n.c||!n.d?!1:!!n.c.i&&n.c.i==n.d.i}function IJ(n,e){return O(e,143)?An(n.c,u(e,143).c):!1}function Zu(n){return n.t||(n.t=new myn(n),k5(new Njn(n),0,n.t)),n.t}function jLn(n){this.b=n,ne.call(this,n),this.a=u(Un(this.b.a,4),129)}function ELn(n){this.b=n,yp.call(this,n),this.a=u(Un(this.b.a,4),129)}function Bs(n,e,t,i,r){LLn.call(this,e,i,r),this.c=n,this.b=t}function OJ(n,e,t,i,r){VOn.call(this,e,i,r),this.c=n,this.a=t}function DJ(n,e,t,i,r){WOn.call(this,e,i,r),this.c=n,this.a=t}function LJ(n,e,t,i,r){LLn.call(this,e,i,r),this.c=n,this.a=t}function WN(n,e){var t;return t=u(Lf(n.d,e),23),t||u(Lf(n.e,e),23)}function CLn(n,e){var t,i;return t=e.ld(),i=n.Fe(t),!!i&&mc(i.e,e.md())}function MLn(n,e){var t;return t=e.ld(),new i0(t,n.e.pc(t,u(e.md(),16)))}function J3e(n,e){var t;return t=n.a.get(e),t??K(ki,Fn,1,0,5,1)}function TLn(n){var e;return e=n.length,An(Yn.substr(Yn.length-e,e),n)}function fe(n){if(pe(n))return n.c=n.a,n.a.Pb();throw M(new nc)}function NJ(n,e){return e==0||n.e==0?n:e>0?wqn(n,e):RBn(n,-e)}function Fp(n,e){return e==0||n.e==0?n:e>0?RBn(n,e):wqn(n,-e)}function $J(n){ole.call(this,n==null?gu:Jr(n),O(n,82)?u(n,82):null)}function ALn(n){var e;return n.c||(e=n.r,O(e,90)&&(n.c=u(e,29))),n.c}function JN(n){var e;return e=new E0,Ur(e,n),U(e,(cn(),Fr),null),e}function SLn(n){var e,t;return e=n.c.i,t=n.d.i,e.k==(Vn(),Zt)&&t.k==Zt}function QN(n){var e,t,i;return e=n&ro,t=n>>22&ro,i=n<0?Il:0,Yc(e,t,i)}function Q3e(n){var e,t,i,r;for(t=n,i=0,r=t.length;i=0?n.Lh(i,t,!0):H0(n,e,t)}function Z3e(n,e,t){return bt(vp(pm(n),Ki(e.b)),vp(pm(n),Ki(t.b)))}function n4e(n,e,t){return bt(vp(pm(n),Ki(e.e)),vp(pm(n),Ki(t.e)))}function e4e(n,e){return y.Math.min(W1(e.a,n.d.d.c),W1(e.b,n.d.d.c))}function ik(n,e){n._i(n.i+1),O6(n,n.i,n.Zi(n.i,e)),n.Mi(n.i++,e),n.Ni()}function t5(n){var e,t;++n.j,e=n.g,t=n.i,n.g=null,n.i=0,n.Oi(t,e),n.Ni()}function PLn(n,e,t){var i;i=new NX(n.a),f5(i,n.a.a),Vc(i.f,e,t),n.a.a=i}function xJ(n,e,t,i){var r;for(r=0;re)throw M(new Ir(Mnn(n,e,"index")));return n}function Yl(n,e){var t;return t=(Ln(e,n.c.length),n.c[e]),Pz(n.c,e,1),t}function RJ(n,e){var t,i;return t=(Jn(n),n),i=(Jn(e),e),t==i?0:te.p?-1:0}function FLn(n){var e;return n.a||(e=n.r,O(e,156)&&(n.a=u(e,156))),n.a}function o4e(n,e,t){var i;return++n.e,--n.f,i=u(n.d[e].gd(t),136),i.md()}function s4e(n){var e,t;return e=n.ld(),t=u(n.md(),16),x7(t.Nc(),new L8n(e))}function BLn(n,e){return Zc(n.a,e)?(Bp(n.a,e),!0):!1}function Rp(n,e,t){return ek(e,n.e.Rd().gc()),ek(t,n.c.Rd().gc()),n.a[e][t]}function XM(n,e,t){this.a=n,this.b=e,this.c=t,nn(n.t,this),nn(e.i,this)}function VM(n,e,t,i){this.f=n,this.e=e,this.d=t,this.b=i,this.c=i?i.d:null}function rk(){this.b=new Ct,this.a=new Ct,this.b=new Ct,this.a=new Ct}function $4(){$4=F;var n,e;MO=(o4(),e=new xE,e),TO=(n=new fD,n)}function f4e(n){var e;return ea(n),e=new ISn(n,n.a.e,n.a.d|4),new uV(n,e)}function RLn(n){var e;for(z1(n),e=0;n.a.Bd(new W0n);)e=nr(e,1);return e}function WM(n,e){return Jn(e),n.c=0,"Initial capacity must not be negative")}function JM(){JM=F,p9=new lt("org.eclipse.elk.labels.labelManager")}function KLn(){KLn=F,ysn=new Dt("separateLayerConnections",(OT(),F_))}function lf(){lf=F,zw=new rX("REGULAR",0),ja=new rX("CRITICAL",1)}function ck(){ck=F,Kq=new lX("FIXED",0),JI=new lX("CENTER_NODE",1)}function QM(){QM=F,Tsn=new Jz("QUADRATIC",0),V_=new Jz("SCANLINE",1)}function _Ln(){_Ln=F,dne=Ce((u5(),S(T(Psn,1),G,322,0,[B8,pj,Ssn])))}function HLn(){HLn=F,bne=Ce((bT(),S(T(Osn,1),G,351,0,[Isn,VP,W_])))}function qLn(){qLn=F,fne=Ce((D0(),S(T(R_,1),G,372,0,[ub,ma,cb])))}function ULn(){ULn=F,mne=Ce((hd(),S(T(pne,1),G,460,0,[Y_,mv,p2])))}function GLn(){GLn=F,Cne=Ce((Z4(),S(T(sH,1),G,299,0,[uH,oH,mj])))}function zLn(){zLn=F,Tne=Ce((vl(),S(T(Mne,1),G,311,0,[vj,v2,E3])))}function XLn(){XLn=F,Zte=Ce((g5(),S(T(Lhn,1),G,390,0,[FH,Dhn,MI])))}function VLn(){VLn=F,oie=Ce((ST(),S(T(zhn,1),G,387,0,[Uhn,zH,Ghn])))}function WLn(){WLn=F,sie=Ce((d5(),S(T(Xhn,1),G,349,0,[VH,XH,Ij])))}function JLn(){JLn=F,uie=Ce((gr(),S(T(cie,1),G,463,0,[n9,Vu,Jc])))}function QLn(){QLn=F,fie=Ce((om(),S(T(Whn,1),G,350,0,[WH,Vhn,e9])))}function YLn(){YLn=F,hie=Ce((dT(),S(T(Yhn,1),G,352,0,[Qhn,JH,Jhn])))}function ZLn(){ZLn=F,lie=Ce((DT(),S(T(Zhn,1),G,388,0,[QH,Ov,Gw])))}function nNn(){nNn=F,are=Ce((b5(),S(T(gln,1),G,392,0,[wln,nq,Lj])))}function eNn(){eNn=F,Gre=Ce((Ok(),S(T(Uln,1),G,393,0,[KI,Hln,qln])))}function tNn(){tNn=F,ace=Ce((AT(),S(T(s1n,1),G,300,0,[Cq,o1n,u1n])))}function iNn(){iNn=F,dce=Ce((XT(),S(T(f1n,1),G,445,0,[Bj,qI,Mq])))}function rNn(){rNn=F,wce=Ce((rA(),S(T(bce,1),G,456,0,[Tq,Sq,Aq])))}function cNn(){cNn=F,mce=Ce((_T(),S(T(a1n,1),G,394,0,[l1n,Oq,h1n])))}function uNn(){uNn=F,Kce=Ce((nT(),S(T(O1n,1),G,439,0,[xq,I1n,P1n])))}function oNn(){oNn=F,Aie=Ce((O0(),S(T(Tie,1),G,464,0,[Oj,t9,PI])))}function sNn(){sNn=F,WQn=Ce((Uu(),S(T(VQn,1),G,471,0,[Mh,ga,Gs])))}function fNn(){fNn=F,XQn=Ce((bf(),S(T(Sw,1),G,237,0,[bc,Wc,wc])))}function hNn(){hNn=F,QQn=Ce((bu(),S(T(JQn,1),G,472,0,[vf,pa,zs])))}function lNn(){lNn=F,xQn=Ce((Gu(),S(T(xr,1),G,108,0,[xun,Yr,Aw])))}function aNn(){aNn=F,pZn=Ce((i5(),S(T(Pon,1),G,391,0,[E_,j_,C_])))}function dNn(){dNn=F,Que=Ce((jl(),S(T(ldn,1),G,346,0,[uO,M1,M9])))}function bNn(){bNn=F,Uce=Ce((Fk(),S(T(Fq,1),G,444,0,[XI,VI,WI])))}function wNn(){wNn=F,Xue=Ce((Nf(),S(T(Zan,1),G,278,0,[Bv,Jw,Rv])))}function gNn(){gNn=F,loe=Ce((Gp(),S(T(mdn,1),G,280,0,[pdn,Yw,aO])))}function Df(n,e){return!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),wx(n.o,e)}function h4e(n,e){var t;n.C&&(t=u(Cr(n.b,e),127).n,t.d=n.C.d,t.a=n.C.a)}function UJ(n){var e,t,i,r;r=n.d,e=n.a,t=n.b,i=n.c,n.d=t,n.a=i,n.b=r,n.c=e}function l4e(n){return!n.g&&(n.g=new CE),!n.g.b&&(n.g.b=new byn(n)),n.g.b}function uk(n){return!n.g&&(n.g=new CE),!n.g.c&&(n.g.c=new pyn(n)),n.g.c}function a4e(n){return!n.g&&(n.g=new CE),!n.g.d&&(n.g.d=new wyn(n)),n.g.d}function d4e(n){return!n.g&&(n.g=new CE),!n.g.a&&(n.g.a=new gyn(n)),n.g.a}function b4e(n,e,t,i){return t&&(i=t.Rh(e,Ot(t.Dh(),n.c.uk()),null,i)),i}function w4e(n,e,t,i){return t&&(i=t.Th(e,Ot(t.Dh(),n.c.uk()),null,i)),i}function e$(n,e,t,i){var r;return r=K(ye,Ke,28,e+1,15,1),vPe(r,n,e,t,i),r}function K(n,e,t,i,r,c){var s;return s=_Rn(r,i),r!=10&&S(T(n,c),e,t,r,s),s}function g4e(n,e,t){var i,r;for(r=new Y4(e,n),i=0;it||e=0?n.Lh(t,!0,!0):H0(n,e,!0)}function L4e(n,e,t){var i;return i=vFn(n,e,t),n.b=new ET(i.c.length),den(n,i)}function N4e(n){if(n.b<=0)throw M(new nc);return--n.b,n.a-=n.c.c,Y(n.a)}function $4e(n){var e;if(!n.a)throw M(new PIn);return e=n.a,n.a=At(n.a),e}function x4e(n){for(;!n.a;)if(!eSn(n.c,new C9n(n)))return!1;return!0}function Kp(n){var e;return Se(n),O(n,204)?(e=u(n,204),e):new _8n(n)}function F4e(n){YM(),u(n.of((qe(),Ww)),181).Fc((zu(),tE)),n.qf(sU,null)}function YM(){YM=F,wue=new Emn,pue=new Cmn,gue=M6e((qe(),sU),wue,Ma,pue)}function ZM(){ZM=F,Kln=new sX("LEAF_NUMBER",0),vq=new sX("NODE_SIZE",1)}function u$(n){n.a=K(ye,Ke,28,n.b+1,15,1),n.c=K(ye,Ke,28,n.b,15,1),n.d=0}function B4e(n,e){n.a.Ne(e.d,n.b)>0&&(nn(n.c,new GV(e.c,e.d,n.d)),n.b=e.d)}function nQ(n,e){if(n.g==null||e>=n.i)throw M(new aL(e,n.i));return n.g[e]}function kNn(n,e,t){if(rm(n,t),t!=null&&!n.fk(t))throw M(new uD);return t}function o$(n,e){return gk(e)!=10&&S(wo(e),e.Sm,e.__elementTypeId$,gk(e),n),n}function F4(n,e,t,i){var r;i=(j0(),i||Pun),r=n.slice(e,t),Tnn(r,n,e,t,-e,i)}function zo(n,e,t,i,r){return e<0?H0(n,t,i):u(t,69).wk().yk(n,n.hi(),e,i,r)}function R4e(n,e){return bt($(R(v(n,(W(),fb)))),$(R(v(e,fb))))}function yNn(){yNn=F,IQn=Ce((B4(),S(T(lP,1),G,304,0,[e_,t_,i_,r_])))}function B4(){B4=F,e_=new uC("All",0),t_=new lTn,i_=new kTn,r_=new hTn}function Uu(){Uu=F,Mh=new FD(s3,0),ga=new FD(qm,1),Gs=new FD(f3,2)}function jNn(){jNn=F,KA(),s0n=St,mse=li,f0n=new V9(St),vse=new V9(li)}function ENn(){ENn=F,jYn=Ce((N0(),S(T(yYn,1),G,417,0,[rj,ij,a_,d_])))}function CNn(){CNn=F,AYn=Ce((A5(),S(T(TYn,1),G,406,0,[fj,wP,gP,hj])))}function MNn(){MNn=F,CYn=Ce((Vp(),S(T(EYn,1),G,332,0,[uj,cj,oj,sj])))}function TNn(){TNn=F,DZn=Ce((dd(),S(T(Lon,1),G,389,0,[Ow,Don,P_,I_])))}function ANn(){ANn=F,TZn=Ce((nm(),S(T(MZn,1),G,416,0,[rb,Iw,Pw,a2])))}function SNn(){SNn=F,tne=Ce(($f(),S(T(ene,1),G,421,0,[j3,lv,av,B_])))}function PNn(){PNn=F,GZn=Ce((OT(),S(T(UZn,1),G,371,0,[F_,HP,qP,wj])))}function INn(){INn=F,nie=Ce((cw(),S(T(RH,1),G,203,0,[TI,BH,S2,A2])))}function ONn(){ONn=F,iie=Ce((lh(),S(T(Hhn,1),G,284,0,[k1,_hn,HH,qH])))}function hk(){hk=F,Fsn=new Yz(kh,0),QP=new Yz("IMPROVE_STRAIGHTNESS",1)}function DNn(n,e){var t,i;return i=e/n.c.Rd().gc()|0,t=e%n.c.Rd().gc(),Rp(n,i,t)}function LNn(n){var e;if(n.nl())for(e=n.i-1;e>=0;--e)L(n,e);return jJ(n)}function eQ(n){var e,t;if(!n.b)return null;for(t=n.b;e=t.a[0];)t=e;return t}function NNn(n){var e,t;if(!n.b)return null;for(t=n.b;e=t.a[1];)t=e;return t}function K4e(n){return O(n,180)?""+u(n,180).a:n==null?null:Jr(n)}function _4e(n){return O(n,180)?""+u(n,180).a:n==null?null:Jr(n)}function $Nn(n,e){if(e.a)throw M(new ec(nXn));fi(n.a,e),e.a=n,!n.j&&(n.j=e)}function tQ(n,e){IC.call(this,e.zd(),e.yd()&-16449),Jn(n),this.a=n,this.c=e}function H4e(n,e){return new _L(e,a0(Ki(e.e),e.f.a+n,e.f.b+n),(_n(),!1))}function q4e(n,e){return k4(),nn(n,new bi(e,Y(e.e.c.length+e.g.c.length)))}function U4e(n,e){return k4(),nn(n,new bi(e,Y(e.e.c.length+e.g.c.length)))}function xNn(){xNn=F,lce=Ce((sA(),S(T(c1n,1),G,354,0,[Eq,i1n,r1n,t1n])))}function FNn(){FNn=F,$re=Ce((w5(),S(T(xln,1),G,353,0,[aq,BI,lq,hq])))}function BNn(){BNn=F,hre=Ce((Qp(),S(T(rln,1),G,405,0,[LI,c9,u9,o9])))}function RNn(){RNn=F,Vue=Ce((El(),S(T(aU,1),G,223,0,[lU,Yj,Kv,F3])))}function KNn(){KNn=F,Zue=Ce((To(),S(T(Yue,1),G,291,0,[nE,nl,Ta,Zj])))}function _Nn(){_Nn=F,foe=Ce((go(),S(T(I9,1),G,386,0,[rE,Gd,iE,Qw])))}function HNn(){HNn=F,doe=Ce((qT(),S(T(Cdn,1),G,320,0,[wU,ydn,Edn,jdn])))}function qNn(){qNn=F,goe=Ce((LT(),S(T(woe,1),G,415,0,[gU,Tdn,Mdn,Adn])))}function nT(){nT=F,xq=new oL(mVn,0),I1n=new oL(Crn,1),P1n=new oL(kh,2)}function Wb(n,e,t,i,r){return Jn(n),Jn(e),Jn(t),Jn(i),Jn(r),new AW(n,e,i)}function UNn(n,e){var t;return t=u(Bp(n.e,e),400),t?(tW(t),t.e):null}function du(n,e){var t;return t=qr(n,e,0),t==-1?!1:(Yl(n,t),!0)}function GNn(n,e,t){var i;return z1(n),i=new LO,i.a=e,n.a.Nb(new TCn(i,t)),i.a}function G4e(n){var e;return z1(n),e=K(Pi,Tr,28,0,15,1),hg(n.a,new y9n(e)),e}function iQ(n){var e;if(!E$(n))throw M(new nc);return n.e=1,e=n.d,n.d=null,e}function n1(n){var e;return Vr(n)&&(e=0-n,!isNaN(e))?e:Q1(tm(n))}function qr(n,e,t){for(;t=0?tA(n,t,!0,!0):H0(n,e,!0)}function cQ(n){var e;return e=cd(Un(n,32)),e==null&&(iu(n),e=cd(Un(n,32))),e}function uQ(n){var e;return n.Oh()||(e=se(n.Dh())-n.ji(),n.$h().Mk(e)),n.zh()}function QNn(n,e){con=new kE,MYn=e,L8=n,u(L8.b,68),XJ(L8,con,null),aGn(L8)}function i5(){i5=F,E_=new RD("XY",0),j_=new RD("X",1),C_=new RD("Y",2)}function bu(){bu=F,vf=new BD("TOP",0),pa=new BD(qm,1),zs=new BD(Ftn,2)}function vl(){vl=F,vj=new GD(kh,0),v2=new GD("TOP",1),E3=new GD(Ftn,2)}function wk(){wk=F,UH=new nX("INPUT_ORDER",0),GH=new nX("PORT_DEGREE",1)}function R4(){R4=F,hun=Yc(ro,ro,524287),bQn=Yc(0,0,Ty),lun=QN(1),QN(2),aun=QN(0)}function a$(n){var e;return n.d!=n.r&&(e=ws(n),n.e=!!e&&e.lk()==bJn,n.d=e),n.e}function d$(n,e,t){var i;return i=n.g[e],O6(n,e,n.Zi(e,t)),n.Ri(e,t,i),n.Ni(),i}function rT(n,e){var t;return t=n.dd(e),t>=0?(n.gd(t),!0):!1}function b$(n,e){var t;for(Se(n),Se(e),t=!1;e.Ob();)t=t|n.Fc(e.Pb());return t}function Lf(n,e){var t;return t=u(ee(n.e,e),400),t?(DTn(n,t),t.e):null}function YNn(n){var e,t;return e=n/60|0,t=n%60,t==0?""+e:""+e+":"+(""+t)}function Jb(n,e){var t=n.a[e],i=(K$(),WK)[typeof t];return i?i(t):wY(typeof t)}function rc(n,e){var t,i;return ea(n),i=new _J(e,n.a),t=new rSn(i),new Tn(n,t)}function w$(n){var e;return e=n.b.c.length==0?null:sn(n.b,0),e!=null&&M$(n,0),e}function W4e(n,e){var t,i,r;r=e.c.i,t=u(ee(n.f,r),60),i=t.d.c-t.e.c,BQ(e.a,i,0)}function oQ(n,e){var t;for(++n.d,++n.c[e],t=e+1;t=0;)++e[0]}function J4e(n,e){eu(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Q4e(n,e){tu(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Y4e(n,e){I0(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function Z4e(n,e){P0(n,e==null||GC((Jn(e),e))||isNaN((Jn(e),e))?0:(Jn(e),e))}function nme(n,e,t){return vp(new V(t.e.a+t.f.a/2,t.e.b+t.f.b/2),n)==(Jn(e),e)}function eme(n,e){return O(e,102)&&u(e,19).Bb&hr?new dL(e,n):new Y4(e,n)}function tme(n,e){return O(e,102)&&u(e,19).Bb&hr?new dL(e,n):new Y4(e,n)}function gk(n){return n.__elementTypeCategory$==null?10:n.__elementTypeCategory$}function e$n(n,e){return e==(xL(),xL(),AQn)?n.toLocaleLowerCase():n.toLowerCase()}function t$n(n){if(!n.e)throw M(new nc);return n.c=n.a=n.e,n.e=n.e.e,--n.d,n.a.f}function sQ(n){if(!n.c)throw M(new nc);return n.e=n.a=n.c,n.c=n.c.c,++n.d,n.a.f}function i$n(n){var e;for(++n.a,e=n.c.a.length;n.an.a[i]&&(i=t);return i}function r$n(n){var e;return e=u(v(n,(W(),ob)),313),e?e.a==n:!1}function c$n(n){var e;return e=u(v(n,(W(),ob)),313),e?e.i==n:!1}function u$n(){u$n=F,yZn=Ce((Vi(),S(T(Ion,1),G,367,0,[Xs,Jh,Oc,Kc,zr])))}function o$n(){o$n=F,rne=Ce((ow(),S(T(ine,1),G,375,0,[gj,zP,XP,GP,UP])))}function s$n(){s$n=F,wne=Ce((o1(),S(T(Lsn,1),G,348,0,[J_,Dsn,Q_,pv,gv])))}function f$n(){f$n=F,eie=Ce((T5(),S(T($hn,1),G,323,0,[Nhn,KH,_H,Y8,Z8])))}function h$n(){h$n=F,Sne=Ce((Yo(),S(T(hfn,1),G,171,0,[Ej,U8,ka,G8,xw])))}function l$n(){l$n=F,qre=Ce((wA(),S(T(Hre,1),G,368,0,[pq,bq,mq,wq,gq])))}function a$n(){a$n=F,qce=Ce((R5(),S(T(Hce,1),G,373,0,[L2,D3,g9,w9,_j])))}function d$n(){d$n=F,Wce=Ce((Yk(),S(T(K1n,1),G,324,0,[F1n,_q,R1n,Hq,B1n])))}function b$n(){b$n=F,zue=Ce((ci(),S(T(E9,1),G,88,0,[Wf,Xr,Br,Vf,us])))}function w$n(){w$n=F,mue=Ce((gf(),S(T(Zh,1),G,170,0,[xn,pi,Ph,Kd,E1])))}function g$n(){g$n=F,eoe=Ce((Fg(),S(T(A9,1),G,256,0,[Aa,eE,adn,T9,ddn])))}function p$n(){p$n=F,roe=Ce((tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])))}function cT(){cT=F,Run=new Uz("BY_SIZE",0),s_=new Uz("BY_SIZE_AND_SHAPE",1)}function uT(){uT=F,v_=new Xz("EADES",0),vP=new Xz("FRUCHTERMAN_REINGOLD",1)}function pk(){pk=F,WP=new Qz("READING_DIRECTION",0),Nsn=new Qz("ROTATION",1)}function r5(){r5=F,PZn=new rwn,IZn=new own,AZn=new swn,SZn=new uwn,OZn=new fwn}function m$n(n){this.b=new Z,this.a=new Z,this.c=new Z,this.d=new Z,this.e=n}function v$n(n){this.g=n,this.f=new Z,this.a=y.Math.min(this.g.c.c,this.g.d.c)}function k$n(n,e,t){qC.call(this),lQ(this),this.a=n,this.c=t,this.b=e.d,this.f=e.e}function sme(n,e,t){var i,r;for(r=new C(t);r.a=0&&e0?e-1:e,eEn($he(U$n(YV(new up,t),n.n),n.j),n.k)}function Nr(n){var e,t;t=(e=new hD,e),ve((!n.q&&(n.q=new q(As,n,11,10)),n.q),t)}function fQ(n){return(n.i&2?"interface ":n.i&1?"":"class ")+(ll(n),n.o)}function oT(n){return Ec(n,et)>0?et:Ec(n,Wi)<0?Wi:Ae(n)}function Qb(n){return n<3?(Co(n,$zn),n+1):n=-.01&&n.a<=Kf&&(n.a=0),n.b>=-.01&&n.b<=Kf&&(n.b=0),n}function Og(n){Xg();var e,t;for(t=Arn,e=0;et&&(t=n[e]);return t}function C$n(n,e){var t;if(t=oy(n.Dh(),e),!t)throw M(new Gn(da+e+sK));return t}function Yb(n,e){var t;for(t=n;At(t);)if(t=At(t),t==e)return!0;return!1}function vme(n,e){var t,i,r;for(i=e.a.ld(),t=u(e.a.md(),16).gc(),r=0;rn||n>e)throw M(new pz("fromIndex: 0, toIndex: "+n+Mtn+e))}function S0(n){if(n<0)throw M(new Gn("Illegal Capacity: "+n));this.g=this.aj(n)}function hQ(n,e){return Mf(),Rs(sa),y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)}function m$(n,e){var t,i,r,c;for(i=n.d,r=0,c=i.length;r0&&(n.a/=e,n.b/=e),n}function jo(n){var e;return n.w?n.w:(e=lpe(n),e&&!e.Vh()&&(n.w=e),e)}function K4(n,e){var t,i;i=n.a,t=w5e(n,e,null),i!=e&&!n.e&&(t=Nm(n,e,t)),t&&t.oj()}function P$n(n,e,t){var i,r;i=e;do r=$(n.p[i.p])+t,n.p[i.p]=r,i=n.a[i.p];while(i!=e)}function I$n(n,e,t){var i=function(){return n.apply(i,arguments)};return e.apply(i,t),i}function Tme(n){var e;return n==null?null:(e=u(n,195),Bye(e,e.length))}function L(n,e){if(n.g==null||e>=n.i)throw M(new aL(e,n.i));return n.Wi(e,n.g[e])}function Ame(n,e){Dn();var t,i;for(i=new Z,t=0;t=14&&e<=16))),n}function Ee(n,e){var t;return Jn(e),t=n[":"+e],B7(!!t,"Enum constant undefined: "+e),t}function we(n,e,t,i,r,c){var s;return s=bN(n,e),G$n(t,s),s.i=r?8:0,s.f=i,s.e=r,s.g=c,s}function dQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=1,this.c=n,this.a=t}function bQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=2,this.c=n,this.a=t}function wQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=6,this.c=n,this.a=t}function gQ(n,e,t,i,r){this.d=e,this.k=i,this.f=r,this.o=-1,this.p=7,this.c=n,this.a=t}function pQ(n,e,t,i,r){this.d=e,this.j=i,this.e=r,this.o=-1,this.p=4,this.c=n,this.a=t}function z$n(n,e){var t,i,r,c;for(i=e,r=0,c=i.length;r=0))throw M(new Gn("tolerance ("+n+") must be >= 0"));return n}function V$n(n,e){var t;return O(e,44)?n.c.Mc(e):(t=wx(n,e),VT(n,e),t)}function Mr(n,e,t){return ad(n,e),zc(n,t),e1(n,0),Zb(n,1),u1(n,!0),c1(n,!0),n}function vk(n,e){var t;if(t=n.gc(),e<0||e>t)throw M(new Kb(e,t));return new SV(n,e)}function wT(n,e){n.b=y.Math.max(n.b,e.d),n.e+=e.r+(n.a.c.length==0?0:n.c),nn(n.a,e)}function W$n(n){Fb(n.c>=0),_8e(n.d,n.c)<0&&(n.a=n.a-1&n.d.a.length-1,n.b=n.d.c),n.c=-1}function gT(n){var e,t;for(t=n.c.Cc().Kc();t.Ob();)e=u(t.Pb(),16),e.$b();n.c.$b(),n.d=0}function Fme(n){var e,t,i,r;for(t=n.a,i=0,r=t.length;i=0}function CQ(n,e){n.r>0&&n.c0&&n.g!=0&&CQ(n.i,e/n.r*n.i.d))}function MQ(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.c))}function y$(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,4,t,n.c))}function X4(n,e){var t;t=n.k,n.k=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,2,t,n.k))}function j$(n,e){var t;t=n.D,n.D=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,2,t,n.D))}function mT(n,e){var t;t=n.f,n.f=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,8,t,n.f))}function vT(n,e){var t;t=n.i,n.i=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,7,t,n.i))}function TQ(n,e){var t;t=n.a,n.a=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,8,t,n.a))}function AQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,0,t,n.b))}function SQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,0,t,n.b))}function PQ(n,e){var t;t=n.c,n.c=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.c))}function IQ(n,e){var t;t=n.d,n.d=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,1,t,n.d))}function Ume(n,e,t){var i;n.b=e,n.a=t,i=(n.a&512)==512?new gjn:new rG,n.c=rAe(i,n.b,n.a)}function oxn(n,e){return Sl(n.e,e)?(dr(),a$(e)?new eM(e,n):new j7(e,n)):new $Mn(e,n)}function Gme(n){var e,t;return 0>n?new Dz:(e=n+1,t=new vLn(e,n),new oV(null,t))}function zme(n,e){Dn();var t;return t=new ap(1),Ai(n)?Dr(t,n,e):Vc(t.f,n,e),new eD(t)}function Xme(n,e){var t,i;return t=n.c,i=e.e[n.p],i>0?u(sn(t.a,i-1),10):null}function Vme(n,e){var t,i;return t=n.o+n.p,i=e.o+e.p,te?(e<<=1,e>0?e:Y5):e}function E$(n){switch(_X(n.e!=3),n.e){case 2:return!1;case 0:return!0}return i4e(n)}function fxn(n,e){var t;return O(e,8)?(t=u(e,8),n.a==t.a&&n.b==t.b):!1}function Jme(n,e){var t;t=new kE,u(e.b,68),u(e.b,68),u(e.b,68),nu(e.a,new BV(n,t,e))}function hxn(n,e){var t,i;for(i=e.vc().Kc();i.Ob();)t=u(i.Pb(),44),Vk(n,t.ld(),t.md())}function OQ(n,e){var t;t=n.d,n.d=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,11,t,n.d))}function kT(n,e){var t;t=n.j,n.j=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,13,t,n.j))}function DQ(n,e){var t;t=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,1,21,t,n.b))}function Qme(n,e){(UM(),qf?null:e.c).length==0&&TAn(e,new BU),Dr(n.a,qf?null:e.c,e)}function Yme(n,e){e.Ug("Hierarchical port constraint processing",1),g9e(n),xLe(n),e.Vg()}function D0(){D0=F,ub=new KD("START",0),ma=new KD("MIDDLE",1),cb=new KD("END",2)}function yT(){yT=F,RI=new oX("P1_NODE_PLACEMENT",0),D2=new oX("P2_EDGE_ROUTING",1)}function J1(){J1=F,y3=new lt(Jtn),jP=new lt(MXn),$8=new lt(TXn),lj=new lt(AXn)}function L0(n){var e;return FL(n.f.g,n.d),oe(n.b),n.c=n.a,e=u(n.a.Pb(),44),n.b=GQ(n),e}function LQ(n){var e;return n.b==null?(Gl(),Gl(),dE):(e=n.ul()?n.tl():n.sl(),e)}function lxn(n,e){var t;return t=e==null?-1:qr(n.b,e,0),t<0?!1:(M$(n,t),!0)}function Ks(n,e){var t;return Jn(e),t=e.g,n.b[t]?!1:($t(n.b,t,e),++n.c,!0)}function jT(n,e){var t,i;return t=1-e,i=n.a[t],n.a[t]=i.a[e],i.a[e]=n,n.b=!0,i.b=!1,i}function Zme(n,e){var t,i;for(i=e.Kc();i.Ob();)t=u(i.Pb(),272),n.b=!0,fi(n.e,t),t.b=n}function nve(n,e){var t,i;return t=u(v(n,(cn(),Hw)),8),i=u(v(e,Hw),8),bt(t.b,i.b)}function C$(n,e,t){var i,r,c;return c=e>>5,r=e&31,i=vi(U1(n.n[t][c],Ae(Fs(r,1))),3),i}function axn(n,e,t){var i,r,c;for(c=n.a.length-1,r=n.b,i=0;i0?1:0:(!n.c&&(n.c=Y7(vc(n.f))),n.c).e}function yxn(n,e){e?n.B==null&&(n.B=n.D,n.D=null):n.B!=null&&(n.D=n.B,n.B=null)}function rve(n,e){return nm(),n==rb&&e==Iw||n==Iw&&e==rb||n==a2&&e==Pw||n==Pw&&e==a2}function cve(n,e){return nm(),n==rb&&e==Pw||n==rb&&e==a2||n==Iw&&e==a2||n==Iw&&e==Pw}function jxn(n,e){return Mf(),Rs(Kf),y.Math.abs(0-e)<=Kf||e==0||isNaN(0)&&isNaN(e)?0:n/e}function Exn(n,e){return $(R(ho($k(_r(new Tn(null,new In(n.c.b,16)),new I7n(n)),e))))}function FQ(n,e){return $(R(ho($k(_r(new Tn(null,new In(n.c.b,16)),new P7n(n)),e))))}function uve(){return pr(),S(T(cH,1),G,259,0,[ZP,cs,K8,nI,yv,m2,_8,vv,kv,eI])}function ove(){return gs(),S(T(Khn,1),G,243,0,[AI,Sj,Pj,Fhn,Bhn,xhn,Rhn,SI,pb,Uw])}function sve(n,e){var t;e.Ug("General Compactor",1),t=d8e(u(z(n,(ua(),yq)),393)),t.Cg(n)}function fve(n,e){var t,i;return t=u(z(n,(ua(),_I)),17),i=u(z(e,_I),17),jc(t.a,i.a)}function BQ(n,e,t){var i,r;for(r=ge(n,0);r.b!=r.d.c;)i=u(be(r),8),i.a+=e,i.b+=t;return n}function o5(n,e,t){var i;for(i=n.b[t&n.f];i;i=i.b)if(t==i.a&&oh(e,i.g))return i;return null}function s5(n,e,t){var i;for(i=n.c[t&n.f];i;i=i.d)if(t==i.f&&oh(e,i.i))return i;return null}function hve(n,e,t){var i,r,c;for(i=0,r=0;r>>31;i!=0&&(n[t]=i)}function P$(n,e,t,i,r,c){var s;this.c=n,s=new Z,pZ(n,s,e,n.b,t,i,r,c),this.a=new xi(s,0)}function Cxn(){this.c=new XE(0),this.b=new XE(Trn),this.d=new XE(lVn),this.a=new XE(QB)}function Vo(n,e,t,i,r,c,s){je.call(this,n,e),this.d=t,this.e=i,this.c=r,this.b=c,this.a=If(s)}function Ut(n,e,t,i,r,c,s,f,h,l,a,d,g){return P_n(n,e,t,i,r,c,s,f,h,l,a,d,g),sx(n,!1),n}function lve(n){return n.b.c.i.k==(Vn(),Zt)?u(v(n.b.c.i,(W(),st)),12):n.b.c}function Mxn(n){return n.b.d.i.k==(Vn(),Zt)?u(v(n.b.d.i,(W(),st)),12):n.b.d}function ave(n){var e;return e=BM(n),o0(e.a,0)?(QE(),QE(),SQn):(QE(),new uAn(e.b))}function I$(n){var e;return e=gJ(n),o0(e.a,0)?(Ob(),Ob(),n_):(Ob(),new AL(e.b))}function O$(n){var e;return e=gJ(n),o0(e.a,0)?(Ob(),Ob(),n_):(Ob(),new AL(e.c))}function Txn(n){switch(n.g){case 2:return tn(),Wn;case 4:return tn(),Zn;default:return n}}function Axn(n){switch(n.g){case 1:return tn(),ae;case 3:return tn(),Xn;default:return n}}function Sxn(n){switch(n.g){case 0:return new hmn;case 1:return new lmn;default:return null}}function Hp(){Hp=F,x_=new Dt("edgelabelcenterednessanalysis.includelabel",(_n(),wa))}function RQ(){RQ=F,Mie=ah(WMn(Re(Re(new ii,(Vi(),Oc),(tr(),NP)),Kc,PP),zr),LP)}function Pxn(){Pxn=F,Pie=ah(WMn(Re(Re(new ii,(Vi(),Oc),(tr(),NP)),Kc,PP),zr),LP)}function D$(){D$=F,x9=new ljn,CU=S(T(ku,1),s2,179,0,[]),Joe=S(T(As,1),Gcn,62,0,[])}function V4(){V4=F,dj=new Vz("TO_INTERNAL_LTR",0),L_=new Vz("TO_INPUT_DIRECTION",1)}function Ou(){Ou=F,Ron=new wwn,Fon=new gwn,Bon=new pwn,xon=new mwn,Kon=new vwn,_on=new kwn}function dve(n,e){e.Ug(HXn,1),HY(Qhe(new IE((o6(),new kN(n,!1,!1,new qU))))),e.Vg()}function bve(n,e,t){t.Ug("DFS Treeifying phase",1),O8e(n,e),PTe(n,e),n.a=null,n.b=null,t.Vg()}function kk(n,e){return _n(),Ai(n)?RJ(n,Oe(e)):$b(n)?tN(n,R(e)):Nb(n)?rwe(n,un(e)):n.Fd(e)}function f5(n,e){var t,i;for(Jn(e),i=e.vc().Kc();i.Ob();)t=u(i.Pb(),44),n.zc(t.ld(),t.md())}function wve(n,e,t){var i;for(i=t.Kc();i.Ob();)if(!_M(n,e,i.Pb()))return!1;return!0}function gve(n,e,t,i,r){var c;return t&&(c=Ot(e.Dh(),n.c),r=t.Rh(e,-1-(c==-1?i:c),null,r)),r}function pve(n,e,t,i,r){var c;return t&&(c=Ot(e.Dh(),n.c),r=t.Th(e,-1-(c==-1?i:c),null,r)),r}function Ixn(n){var e;if(n.b==-2){if(n.e==0)e=-1;else for(e=0;n.a[e]==0;e++);n.b=e}return n.b}function mve(n){if(Jn(n),n.length==0)throw M(new eh("Zero length BigInteger"));ESe(this,n)}function KQ(n){this.i=n.gc(),this.i>0&&(this.g=this.aj(this.i+(this.i/8|0)+1),n.Qc(this.g))}function Oxn(n,e,t){this.g=n,this.d=e,this.e=t,this.a=new Z,IEe(this),Dn(),Yt(this.a,null)}function _Q(n,e){e.q=n,n.d=y.Math.max(n.d,e.r),n.b+=e.d+(n.a.c.length==0?0:n.c),nn(n.a,e)}function W4(n,e){var t,i,r,c;return r=n.c,t=n.c+n.b,c=n.d,i=n.d+n.a,e.a>r&&e.ac&&e.br?t=r:zn(e,t+1),n.a=qo(n.a,0,e)+(""+i)+$W(n.a,t)}function Kxn(n,e){n.a=nr(n.a,1),n.c=y.Math.min(n.c,e),n.b=y.Math.max(n.b,e),n.d=nr(n.d,e)}function Mve(n,e){return e1||n.Ob())return++n.a,n.g=0,e=n.i,n.Ob(),e;throw M(new nc)}function Uxn(n){switch(n.a.g){case 1:return new WCn;case 3:return new WRn;default:return new s8n}}function qQ(n,e){switch(e){case 1:return!!n.n&&n.n.i!=0;case 2:return n.k!=null}return wJ(n,e)}function vc(n){return Ay>22),r=n.h+e.h+(i>>22),Yc(t&ro,i&ro,r&Il)}function Yxn(n,e){var t,i,r;return t=n.l-e.l,i=n.m-e.m+(t>>22),r=n.h-e.h+(i>>22),Yc(t&ro,i&ro,r&Il)}function zve(n){var e,t;for(RDe(n),t=new C(n.d);t.ai)throw M(new Kb(e,i));return n.Si()&&(t=gOn(n,t)),n.Ei(e,t)}function em(n,e,t,i,r){var c,s;for(s=t;s<=r;s++)for(c=e;c<=i;c++)Rg(n,c,s)||xA(n,c,s,!0,!1)}function u6e(n){Xg();var e,t,i;for(t=K(Ei,J,8,2,0,1),i=0,e=0;e<2;e++)i+=.5,t[e]=Z9e(i,n);return t}function tm(n){var e,t,i;return e=~n.l+1&ro,t=~n.m+(e==0?1:0)&ro,i=~n.h+(e==0&&t==0?1:0)&Il,Yc(e,t,i)}function QQ(n){var e;if(n<0)return Wi;if(n==0)return 0;for(e=Y5;!(e&n);e>>=1);return e}function R$(n,e,t){return n>=128?!1:n<64?M6(vi(Fs(1,n),t),0):M6(vi(Fs(1,n-64),e),0)}function Pk(n,e,t){return t==null?(!n.q&&(n.q=new de),Bp(n.q,e)):(!n.q&&(n.q=new de),Xe(n.q,e,t)),n}function U(n,e,t){return t==null?(!n.q&&(n.q=new de),Bp(n.q,e)):(!n.q&&(n.q=new de),Xe(n.q,e,t)),n}function fFn(n){var e,t;return t=new zM,Ur(t,n),U(t,(J1(),y3),n),e=new de,$Pe(n,t,e),fDe(n,t,e),t}function hFn(n){var e,t;return e=n.t-n.k[n.o.p]*n.d+n.j[n.o.p]>n.f,t=n.u+n.e[n.o.p]*n.d>n.f*n.s*n.d,e||t}function lFn(n,e){var t,i,r,c;for(t=!1,i=n.a[e].length,c=0;c=0,"Negative initial capacity"),B7(e>=0,"Non-positive load factor"),Hu(this)}function s6e(n,e,t,i,r){var c,s;if(s=n.length,c=t.length,e<0||i<0||r<0||e+r>s||i+r>c)throw M(new qG)}function eY(n,e){Dn();var t,i,r,c,s;for(s=!1,i=e,r=0,c=i.length;r1||e>=0&&n.b<3)}function H$(n){var e,t,i;e=~n.l+1&ro,t=~n.m+(e==0?1:0)&ro,i=~n.h+(e==0&&t==0?1:0)&Il,n.l=e,n.m=t,n.h=i}function rY(n){Dn();var e,t,i;for(i=1,t=n.Kc();t.Ob();)e=t.Pb(),i=31*i+(e!=null?mt(e):0),i=i|0;return i}function d6e(n,e,t,i,r){var c;return c=Xnn(n,e),t&&H$(c),r&&(n=u7e(n,e),i?ba=tm(n):ba=Yc(n.l,n.m,n.h)),c}function yFn(n,e,t){n.g=uF(n,e,(tn(),Zn),n.b),n.d=uF(n,t,Zn,n.b),!(n.g.c==0||n.d.c==0)&&YKn(n)}function jFn(n,e,t){n.g=uF(n,e,(tn(),Wn),n.j),n.d=uF(n,t,Wn,n.j),!(n.g.c==0||n.d.c==0)&&YKn(n)}function cY(n,e){switch(e){case 7:return!!n.e&&n.e.i!=0;case 8:return!!n.d&&n.d.i!=0}return qY(n,e)}function b6e(n,e){switch(e.g){case 0:O(n.b,641)||(n.b=new Rxn);break;case 1:O(n.b,642)||(n.b=new BSn)}}function EFn(n){switch(n.g){case 0:return new gmn;default:throw M(new Gn(xS+(n.f!=null?n.f:""+n.g)))}}function CFn(n){switch(n.g){case 0:return new wmn;default:throw M(new Gn(xS+(n.f!=null?n.f:""+n.g)))}}function w6e(n,e,t){return!s4(ut(new Tn(null,new In(n.c,16)),new Z3(new hMn(e,t)))).Bd((Xa(),v3))}function MFn(n,e){return vp(pm(u(v(e,(lc(),vb)),88)),new V(n.c.e.a-n.b.e.a,n.c.e.b-n.b.e.b))<=0}function g6e(n,e){for(;n.g==null&&!n.c?cJ(n):n.g==null||n.i!=0&&u(n.g[n.i-1],51).Ob();)kle(e,CA(n))}function ld(n){var e,t;for(t=new C(n.a.b);t.ai?1:0}function v6e(n){return nn(n.c,(qp(),bue)),hQ(n.a,$(R(rn((bx(),EI)))))?new tvn:new $kn(n)}function k6e(n){for(;!n.d||!n.d.Ob();)if(n.b&&!i6(n.b))n.d=u(Sp(n.b),51);else return null;return n.d}function oY(n){switch(n.g){case 1:return lVn;default:case 2:return 0;case 3:return QB;case 4:return Trn}}function y6e(){nt();var n;return IU||(n=_1e(oa("M",!0)),n=uM(oa("M",!1),n),IU=n,IU)}function LT(){LT=F,gU=new CC("ELK",0),Tdn=new CC("JSON",1),Mdn=new CC("DOT",2),Adn=new CC("SVG",3)}function d5(){d5=F,VH=new WD("STACKED",0),XH=new WD("REVERSE_STACKED",1),Ij=new WD("SEQUENCED",2)}function b5(){b5=F,wln=new eL(kh,0),nq=new eL("MIDDLE_TO_MIDDLE",1),Lj=new eL("AVOID_OVERLAP",2)}function cm(){cm=F,Esn=new Ygn,Csn=new Zgn,JZn=new Jgn,WZn=new n2n,VZn=new Qgn,jsn=(Jn(VZn),new O0n)}function NT(){NT=F,hdn=new f0(15),Jue=new Ni((qe(),C1),hdn),C9=N3,udn=Pue,odn=Hd,fdn=K2,sdn=Vw}function Lg(n,e){var t,i,r,c,s;for(i=e,r=0,c=i.length;r=n.b.c.length||(fY(n,2*e+1),t=2*e+2,t0&&(e.Cd(t),t.i&&E5e(t))}function hY(n,e,t){var i;for(i=t-1;i>=0&&n[i]===e[i];i--);return i<0?0:ND(vi(n[i],mr),vi(e[i],mr))?-1:1}function SFn(n,e,t){var i,r;this.g=n,this.c=e,this.a=this,this.d=this,r=sxn(t),i=K(sQn,Cy,227,r,0,1),this.b=i}function X$(n,e,t,i,r){var c,s;for(s=t;s<=r;s++)for(c=e;c<=i;c++)if(Rg(n,c,s))return!0;return!1}function A6e(n,e){var t,i;for(i=n.Zb().Cc().Kc();i.Ob();)if(t=u(i.Pb(),16),t.Hc(e))return!0;return!1}function PFn(n,e,t){var i,r,c,s;for(Jn(t),s=!1,c=n.fd(e),r=t.Kc();r.Ob();)i=r.Pb(),c.Rb(i),s=!0;return s}function V$(n,e){var t,i;return i=u(Un(n.a,4),129),t=K(jU,MK,424,e,0,1),i!=null&&Ic(i,0,t,0,i.length),t}function IFn(n,e){var t;return t=new jF((n.f&256)!=0,n.i,n.a,n.d,(n.f&16)!=0,n.j,n.g,e),n.e!=null||(t.c=n),t}function S6e(n,e){var t;return n===e?!0:O(e,85)?(t=u(e,85),dnn(Wa(n),t.vc())):!1}function OFn(n,e,t){var i,r;for(r=t.Kc();r.Ob();)if(i=u(r.Pb(),44),n.Be(e,i.md()))return!0;return!1}function DFn(n,e,t){return n.d[e.p][t.p]||(O9e(n,e,t),n.d[e.p][t.p]=!0,n.d[t.p][e.p]=!0),n.a[e.p][t.p]}function P6e(n,e){var t;return!n||n==e||!kt(e,(W(),sb))?!1:(t=u(v(e,(W(),sb)),10),t!=n)}function W$(n){switch(n.i){case 2:return!0;case 1:return!1;case-1:++n.c;default:return n.$l()}}function LFn(n){switch(n.i){case-2:return!0;case-1:return!1;case 1:--n.c;default:return n._l()}}function NFn(n){yOn.call(this,"The given string does not match the expected format for individual spacings.",n)}function I6e(n,e){var t;e.Ug("Min Size Preprocessing",1),t=jnn(n),ht(n,(_h(),a9),t.a),ht(n,UI,t.b),e.Vg()}function O6e(n){var e,t,i;for(e=0,i=K(Ei,J,8,n.b,0,1),t=ge(n,0);t.b!=t.d.c;)i[e++]=u(be(t),8);return i}function J$(n,e,t){var i,r,c;for(i=new Ct,c=ge(t,0);c.b!=c.d.c;)r=u(be(c),8),xe(i,new rr(r));PFn(n,e,i)}function D6e(n,e){var t;return t=nr(n,e),ND(RN(n,e),0)|AC(RN(n,t),0)?t:nr(Ey,RN(U1(t,63),1))}function L6e(n,e){var t,i;return t=u(n.d.Bc(e),16),t?(i=n.e.hc(),i.Gc(t),n.e.d-=t.gc(),t.$b(),i):null}function $Fn(n){var e;if(e=n.a.c.length,e>0)return E4(e-1,n.a.c.length),Yl(n.a,e-1);throw M(new $yn)}function xFn(n,e,t){if(n>e)throw M(new Gn(ZA+n+Qzn+e));if(n<0||e>t)throw M(new pz(ZA+n+Stn+e+Mtn+t))}function um(n,e){n.D==null&&n.B!=null&&(n.D=n.B,n.B=null),j$(n,e==null?null:(Jn(e),e)),n.C&&n.hl(null)}function N6e(n,e){var t;t=rn((bx(),EI))!=null&&e.Sg()!=null?$(R(e.Sg()))/$(R(rn(EI))):1,Xe(n.b,e,t)}function lY(n,e){var t,i;if(i=n.c[e],i!=0)for(n.c[e]=0,n.d-=i,t=e+1;tPS?n-t>PS:t-n>PS}function XFn(n,e){var t;for(t=0;tr&&(EKn(e.q,r),i=t!=e.q.d)),i}function VFn(n,e){var t,i,r,c,s,f,h,l;return h=e.i,l=e.j,i=n.f,r=i.i,c=i.j,s=h-r,f=l-c,t=y.Math.sqrt(s*s+f*f),t}function pY(n,e){var t,i;return i=WT(n),i||(t=(UF(),$Hn(e)),i=new Cyn(t),ve(i.El(),n)),i}function Lk(n,e){var t,i;return t=u(n.c.Bc(e),16),t?(i=n.hc(),i.Gc(t),n.d-=t.gc(),t.$b(),n.mc(i)):n.jc()}function G6e(n,e){var t,i;for(i=to(n.d,1)!=0,t=!0;t;)t=!1,t=e.c.mg(e.e,i),t=t|sy(n,e,i,!1),i=!i;$Q(n)}function WFn(n,e,t,i){var r,c;n.a=e,c=i?0:1,n.f=(r=new s_n(n.c,n.a,t,c),new Kqn(t,n.a,r,n.e,n.b,n.c==(O0(),t9)))}function xT(n){var e;return oe(n.a!=n.b),e=n.d.a[n.a],EAn(n.b==n.d.c&&e!=null),n.c=n.a,n.a=n.a+1&n.d.a.length-1,e}function JFn(n){var e;if(n.c!=0)return n.c;for(e=0;e=n.c.b:n.a<=n.c.b))throw M(new nc);return e=n.a,n.a+=n.c.c,++n.b,Y(e)}function ex(n){var e;return e=new DX(n.a),Ur(e,n),U(e,(W(),st),n),e.o.a=n.g,e.o.b=n.f,e.n.a=n.i,e.n.b=n.j,e}function tx(n){return(tn(),mu).Hc(n.j)?$(R(v(n,(W(),jv)))):cc(S(T(Ei,1),J,8,0,[n.i.n,n.n,n.a])).b}function X6e(n){var e;return e=DC(Cie),u(v(n,(W(),Hc)),21).Hc((pr(),yv))&&Re(e,(Vi(),Oc),(tr(),FP)),e}function V6e(n){var e,t,i,r;for(r=new ni,i=new C(n);i.a=0?e:-e;i>0;)i%2==0?(t*=t,i=i/2|0):(r*=t,i-=1);return e<0?1/r:r}function Z6e(n,e){var t,i,r;for(r=1,t=n,i=e>=0?e:-e;i>0;)i%2==0?(t*=t,i=i/2|0):(r*=t,i-=1);return e<0?1/r:r}function na(n,e){var t,i,r,c;return c=(r=n?WT(n):null,O_n((i=e,r&&r.Gl(),i))),c==e&&(t=WT(n),t&&t.Gl()),c}function QFn(n,e,t){var i,r;return r=n.f,n.f=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,0,r,e),t?t.nj(i):t=i),t}function YFn(n,e,t){var i,r;return r=n.b,n.b=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,3,r,e),t?t.nj(i):t=i),t}function vY(n,e,t){var i,r;return r=n.a,n.a=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,1,r,e),t?t.nj(i):t=i),t}function ZFn(n){var e,t;if(n!=null)for(t=0;t=i||e-129&&n<128?(FSn(),e=n+128,t=pun[e],!t&&(t=pun[e]=new vG(n)),t):new vG(n)}function sm(n){var e,t;return n>-129&&n<128?(nPn(),e=n+128,t=yun[e],!t&&(t=yun[e]=new yG(n)),t):new yG(n)}function tBn(n,e){var t;n.a.c.length>0&&(t=u(sn(n.a,n.a.c.length-1),579),sY(t,e))||nn(n.a,new kLn(e))}function c5e(n){xs();var e,t;e=n.d.c-n.e.c,t=u(n.g,154),nu(t.b,new p7n(e)),nu(t.c,new m7n(e)),qi(t.i,new v7n(e))}function iBn(n){var e;return e=new x1,e.a+="VerticalSegment ",Dc(e,n.e),e.a+=" ",Be(e,RX(new yD,new C(n.k))),e.a}function ix(n,e){var t,i,r;for(t=0,r=uc(n,e).Kc();r.Ob();)i=u(r.Pb(),12),t+=v(i,(W(),Xu))!=null?1:0;return t}function xg(n,e,t){var i,r,c;for(i=0,c=ge(n,0);c.b!=c.d.c&&(r=$(R(be(c))),!(r>t));)r>=e&&++i;return i}function rBn(n,e){Se(n);try{return n._b(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return!1;throw M(t)}}function yY(n,e){Se(n);try{return n.Hc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return!1;throw M(t)}}function u5e(n,e){Se(n);try{return n.Mc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return!1;throw M(t)}}function tw(n,e){Se(n);try{return n.xc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return null;throw M(t)}}function o5e(n,e){Se(n);try{return n.Bc(e)}catch(t){if(t=It(t),O(t,212)||O(t,169))return null;throw M(t)}}function p5(n,e){switch(e.g){case 2:case 1:return uc(n,e);case 3:case 4:return Qo(uc(n,e))}return Dn(),Dn(),sr}function m5(n){var e;return n.Db&64?_s(n):(e=new ls(_s(n)),e.a+=" (name: ",Er(e,n.zb),e.a+=")",e.a)}function s5e(n){var e;return e=u(Lf(n.c.c,""),233),e||(e=new Np(u4(c4(new ep,""),"Other")),s1(n.c.c,"",e)),e}function jY(n,e,t){var i,r;return r=n.sb,n.sb=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,4,r,e),t?t.nj(i):t=i),t}function EY(n,e,t){var i,r;return r=n.r,n.r=e,n.Db&4&&!(n.Db&1)&&(i=new Ci(n,1,8,r,n.r),t?t.nj(i):t=i),t}function f5e(n,e,t){var i,r;return i=new ml(n.e,4,13,(r=e.c,r||(On(),Yf)),null,f1(n,e),!1),t?t.nj(i):t=i,t}function h5e(n,e,t){var i,r;return i=new ml(n.e,3,13,null,(r=e.c,r||(On(),Yf)),f1(n,e),!1),t?t.nj(i):t=i,t}function r1(n,e){var t,i;return t=u(e,691),i=t.el(),!i&&t.fl(i=O(e,90)?new xMn(n,u(e,29)):new cDn(n,u(e,156))),i}function Nk(n,e,t){var i;n._i(n.i+1),i=n.Zi(e,t),e!=n.i&&Ic(n.g,e,n.g,e+1,n.i-e),$t(n.g,e,i),++n.i,n.Mi(e,t),n.Ni()}function l5e(n,e){var t;return e.a&&(t=e.a.a.length,n.a?Be(n.a,n.b):n.a=new mo(n.d),aDn(n.a,e.a,e.d.length,t)),n}function a5e(n,e){var t;n.c=e,n.a=p8e(e),n.a<54&&(n.f=(t=e.d>1?hDn(e.a[0],e.a[1]):hDn(e.a[0],0),id(e.e>0?t:n1(t))))}function $k(n,e){var t;return t=new LO,n.a.Bd(t)?(b4(),new wD(Jn(GNn(n,t.a,e)))):(z1(n),b4(),b4(),Dun)}function cBn(n,e){var t;n.c.length!=0&&(t=u(xf(n,K(Qh,b1,10,n.c.length,0,1)),199),CX(t,new rgn),Y_n(t,e))}function uBn(n,e){var t;n.c.length!=0&&(t=u(xf(n,K(Qh,b1,10,n.c.length,0,1)),199),CX(t,new cgn),Y_n(t,e))}function rt(n,e){return Ai(n)?An(n,e):$b(n)?nSn(n,e):Nb(n)?(Jn(n),x(n)===x(e)):pW(n)?n.Fb(e):hW(n)?YMn(n,e):hJ(n,e)}function Wo(n,e,t){if(e<0)Pnn(n,t);else{if(!t.rk())throw M(new Gn(da+t.xe()+p8));u(t,69).wk().Ek(n,n.hi(),e)}}function oBn(n,e,t){if(n<0||e>t)throw M(new Ir(ZA+n+Stn+e+", size: "+t));if(n>e)throw M(new Gn(ZA+n+Qzn+e))}function sBn(n){var e;return n.Db&64?_s(n):(e=new ls(_s(n)),e.a+=" (source: ",Er(e,n.d),e.a+=")",e.a)}function fBn(n){return n>=65&&n<=70?n-65+10:n>=97&&n<=102?n-97+10:n>=48&&n<=57?n-48:0}function d5e(n){VA();var e,t,i,r;for(t=jx(),i=0,r=t.length;i=0?ta(n):G6(ta(n1(n))))}function aBn(n,e,t,i,r,c){this.e=new Z,this.f=(gr(),n9),nn(this.e,n),this.d=e,this.a=t,this.b=i,this.f=r,this.c=c}function g5e(n,e,t){n.n=Va(xa,[J,SB],[376,28],14,[t,wi(y.Math.ceil(e/32))],2),n.o=e,n.p=t,n.j=e-1>>1,n.k=t-1>>1}function dBn(n){return n-=n>>1&1431655765,n=(n>>2&858993459)+(n&858993459),n=(n>>4)+n&252645135,n+=n>>8,n+=n>>16,n&63}function bBn(n,e){var t,i;for(i=new ne(n);i.e!=i.i.gc();)if(t=u(ce(i),142),x(e)===x(t))return!0;return!1}function p5e(n,e,t){var i,r,c;return c=(r=Mm(n.b,e),r),c&&(i=u(qA(ak(n,c),""),29),i)?Qnn(n,i,e,t):null}function rx(n,e,t){var i,r,c;return c=(r=Mm(n.b,e),r),c&&(i=u(qA(ak(n,c),""),29),i)?Ynn(n,i,e,t):null}function m5e(n,e){var t;if(t=Dg(n.i,e),t==null)throw M(new nh("Node did not exist in input."));return HQ(e,t),null}function v5e(n,e){var t;if(t=oy(n,e),O(t,331))return u(t,35);throw M(new Gn(da+e+"' is not a valid attribute"))}function k5(n,e,t){var i;if(i=n.gc(),e>i)throw M(new Kb(e,i));if(n.Si()&&n.Hc(t))throw M(new Gn(Vy));n.Gi(e,t)}function k5e(n,e){e.Ug("Sort end labels",1),qt(ut(rc(new Tn(null,new In(n.b,16)),new Hwn),new qwn),new Uwn),e.Vg()}function ci(){ci=F,Wf=new v7(i8,0),Xr=new v7(f3,1),Br=new v7(s3,2),Vf=new v7(_B,3),us=new v7("UP",4)}function Fk(){Fk=F,XI=new sL("P1_STRUCTURE",0),VI=new sL("P2_PROCESSING_ORDER",1),WI=new sL("P3_EXECUTION",2)}function wBn(){wBn=F,Rre=ah(ah(l6(ah(ah(l6(Re(new ii,(Qp(),c9),(q5(),ZH)),u9),lln),dln),o9),oln),bln)}function y5e(n){switch(u(v(n,(W(),Od)),311).g){case 1:U(n,Od,(vl(),E3));break;case 2:U(n,Od,(vl(),v2))}}function j5e(n){switch(n){case 0:return new rjn;case 1:return new tjn;case 2:return new ijn;default:throw M(new Q9)}}function gBn(n){switch(n.g){case 2:return Xr;case 1:return Br;case 4:return Vf;case 3:return us;default:return Wf}}function AY(n,e){switch(n.b.g){case 0:case 1:return e;case 2:case 3:return new Ho(e.d,0,e.a,e.b);default:return null}}function SY(n){switch(n.g){case 1:return Wn;case 2:return Xn;case 3:return Zn;case 4:return ae;default:return sc}}function Bk(n){switch(n.g){case 1:return ae;case 2:return Wn;case 3:return Xn;case 4:return Zn;default:return sc}}function RT(n){switch(n.g){case 1:return Zn;case 2:return ae;case 3:return Wn;case 4:return Xn;default:return sc}}function PY(n,e,t,i){switch(e){case 1:return!n.n&&(n.n=new q(Ar,n,1,7)),n.n;case 2:return n.k}return yZ(n,e,t,i)}function y5(n,e,t){var i,r;return n.Pj()?(r=n.Qj(),i=lF(n,e,t),n.Jj(n.Ij(7,Y(t),i,e,r)),i):lF(n,e,t)}function cx(n,e){var t,i,r;n.d==null?(++n.e,--n.f):(r=e.ld(),t=e.Bi(),i=(t&et)%n.d.length,o4e(n,i,RHn(n,i,t,r)))}function fm(n,e){var t;t=(n.Bb&Us)!=0,e?n.Bb|=Us:n.Bb&=-1025,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,10,t,e))}function hm(n,e){var t;t=(n.Bb&vw)!=0,e?n.Bb|=vw:n.Bb&=-4097,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,12,t,e))}function lm(n,e){var t;t=(n.Bb&$u)!=0,e?n.Bb|=$u:n.Bb&=-8193,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,15,t,e))}function am(n,e){var t;t=(n.Bb&Tw)!=0,e?n.Bb|=Tw:n.Bb&=-2049,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,11,t,e))}function E5e(n){var e;n.g&&(e=n.c.kg()?n.f:n.a,len(e.a,n.o,!0),len(e.a,n.o,!1),U(n.o,(cn(),Kt),(Oi(),Ud)))}function C5e(n){var e;if(!n.a)throw M(new Or("Cannot offset an unassigned cut."));e=n.c-n.b,n.b+=e,_In(n,e),KIn(n,e)}function M5e(n,e){var t;if(t=ee(n.k,e),t==null)throw M(new nh("Port did not exist in input."));return HQ(e,t),null}function T5e(n){var e,t;for(t=xHn(jo(n)).Kc();t.Ob();)if(e=Oe(t.Pb()),U5(n,e))return A3e((mCn(),Boe),e);return null}function pBn(n){var e,t;for(t=n.p.a.ec().Kc();t.Ob();)if(e=u(t.Pb(),218),e.f&&n.b[e.c]<-1e-10)return e;return null}function A5e(n){var e,t;for(t=Ya(new x1,91),e=!0;n.Ob();)e||(t.a+=ur),e=!1,Dc(t,n.Pb());return(t.a+="]",t).a}function S5e(n){var e,t,i;for(e=new Z,i=new C(n.b);i.ae?1:n==e?n==0?bt(1/n,1/e):0:isNaN(n)?isNaN(e)?0:1:-1}function I5e(n){var e;return e=n.a[n.c-1&n.a.length-1],e==null?null:(n.c=n.c-1&n.a.length-1,$t(n.a,n.c,null),e)}function O5e(n){var e,t,i;for(i=0,t=n.length,e=0;e=1?Xr:Vf):t}function $5e(n){switch(u(v(n,(cn(),$l)),223).g){case 1:return new Ppn;case 3:return new Npn;default:return new Spn}}function ea(n){if(n.c)ea(n.c);else if(n.d)throw M(new Or("Stream already terminated, can't be modified or used"))}function $0(n,e,t){var i;return i=n.a.get(e),n.a.set(e,t===void 0?null:t),i===void 0?(++n.c,++n.b.g):++n.d,i}function x5e(n,e,t){var i,r;for(r=n.a.ec().Kc();r.Ob();)if(i=u(r.Pb(),10),Mk(t,u(sn(e,i.p),16)))return i;return null}function OY(n,e,t){var i;return i=0,e&&(mg(n.a)?i+=e.f.a/2:i+=e.f.b/2),t&&(mg(n.a)?i+=t.f.a/2:i+=t.f.b/2),i}function F5e(n,e,t){var i;i=t,!i&&(i=YV(new up,0)),i.Ug(PXn,2),jRn(n.b,e,i.eh(1)),YIe(n,e,i.eh(1)),eLe(e,i.eh(1)),i.Vg()}function DY(n,e,t){var i,r;return i=(B1(),r=new yE,r),aT(i,e),lT(i,t),n&&ve((!n.a&&(n.a=new ti(xo,n,5)),n.a),i),i}function ox(n){var e;return n.Db&64?_s(n):(e=new ls(_s(n)),e.a+=" (identifier: ",Er(e,n.k),e.a+=")",e.a)}function sx(n,e){var t;t=(n.Bb&kc)!=0,e?n.Bb|=kc:n.Bb&=-32769,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,18,t,e))}function LY(n,e){var t;t=(n.Bb&kc)!=0,e?n.Bb|=kc:n.Bb&=-32769,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,18,t,e))}function dm(n,e){var t;t=(n.Bb&wh)!=0,e?n.Bb|=wh:n.Bb&=-16385,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,16,t,e))}function NY(n,e){var t;t=(n.Bb&hr)!=0,e?n.Bb|=hr:n.Bb&=-65537,n.Db&4&&!(n.Db&1)&&it(n,new Bs(n,1,20,t,e))}function $Y(n){var e;return e=K(fs,gh,28,2,15,1),n-=hr,e[0]=(n>>10)+Sy&ui,e[1]=(n&1023)+56320&ui,hh(e,0,e.length)}function B5e(n){var e;return e=sw(n),e>34028234663852886e22?St:e<-34028234663852886e22?li:e}function nr(n,e){var t;return Vr(n)&&Vr(e)&&(t=n+e,Ay"+td(e.c):"e_"+mt(e),n.b&&n.c?td(n.b)+"->"+td(n.c):"e_"+mt(n))}function _5e(n,e){return An(e.b&&e.c?td(e.b)+"->"+td(e.c):"e_"+mt(e),n.b&&n.c?td(n.b)+"->"+td(n.c):"e_"+mt(n))}function x0(n,e){return Mf(),Rs(sa),y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e))}function El(){El=F,lU=new kC(i8,0),Yj=new kC("POLYLINE",1),Kv=new kC("ORTHOGONAL",2),F3=new kC("SPLINES",3)}function _T(){_T=F,l1n=new uL("ASPECT_RATIO_DRIVEN",0),Oq=new uL("MAX_SCALE_DRIVEN",1),h1n=new uL("AREA_DRIVEN",2)}function H5e(n,e,t){var i;try{l6e(n,e,t)}catch(r){throw r=It(r),O(r,606)?(i=r,M(new $J(i))):M(r)}return e}function q5e(n){var e,t,i;for(t=0,i=n.length;te&&i.Ne(n[c-1],n[c])>0;--c)s=n[c],$t(n,c,n[c-1]),$t(n,c-1,s)}function vn(n,e){var t,i,r,c,s;if(t=e.f,s1(n.c.d,t,e),e.g!=null)for(r=e.g,c=0,s=r.length;ce){wDn(t);break}}q7(t,e)}function X5e(n,e){var t,i,r;i=Sg(e),r=$(R(rw(i,(cn(),Vs)))),t=y.Math.max(0,r/2-.5),I5(e,t,1),nn(n,new NCn(e,t))}function V5e(n,e,t){var i;t.Ug("Straight Line Edge Routing",1),t.dh(e,xrn),i=u(z(e,(Mg(),O2)),27),iGn(n,i),t.dh(e,DS)}function xY(n,e){n.n.c.length==0&&nn(n.n,new NM(n.s,n.t,n.i)),nn(n.b,e),gZ(u(sn(n.n,n.n.c.length-1),209),e),RUn(n,e)}function j5(n){var e;this.a=(e=u(n.e&&n.e(),9),new _o(e,u($s(e,e.length),9),0)),this.b=K(ki,Fn,1,this.a.a.length,5,1)}function Jr(n){var e;return Array.isArray(n)&&n.Tm===J2?za(wo(n))+"@"+(e=mt(n)>>>0,e.toString(16)):n.toString()}function W5e(n,e){return n.h==Ty&&n.m==0&&n.l==0?(e&&(ba=Yc(0,0,0)),nTn((R4(),lun))):(e&&(ba=Yc(n.l,n.m,n.h)),Yc(0,0,0))}function J5e(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function yBn(n,e){switch(e.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function FY(n,e,t,i){switch(e){case 3:return n.f;case 4:return n.g;case 5:return n.i;case 6:return n.j}return PY(n,e,t,i)}function HT(n,e){if(e==n.d)return n.e;if(e==n.e)return n.d;throw M(new Gn("Node "+e+" not part of edge "+n))}function Q5e(n,e){var t;if(t=oy(n.Dh(),e),O(t,102))return u(t,19);throw M(new Gn(da+e+"' is not a valid reference"))}function Jo(n,e,t,i){if(e<0)ten(n,t,i);else{if(!t.rk())throw M(new Gn(da+t.xe()+p8));u(t,69).wk().Ck(n,n.hi(),e,i)}}function eo(n){var e;if(n.b){if(eo(n.b),n.b.d!=n.c)throw M(new Bo)}else n.d.dc()&&(e=u(n.f.c.xc(n.e),16),e&&(n.d=e))}function Y5e(n){Bb();var e,t,i,r;for(e=n.o.b,i=u(u(ot(n.r,(tn(),ae)),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r=t.e,r.b+=e}function Z5e(n){var e,t,i;for(this.a=new ih,i=new C(n);i.a=r)return e.c+t;return e.c+e.b.gc()}function e8e(n,e){m4();var t,i,r,c;for(i=LNn(n),r=e,F4(i,0,i.length,r),t=0;t0&&(i+=r,++t);return t>1&&(i+=n.d*(t-1)),i}function i8e(n){var e,t,i,r,c;return c=enn(n),t=e7(n.c),i=!t,i&&(r=new Ka,df(c,"knownLayouters",r),e=new lyn(r),qi(n.c,e)),c}function KY(n){var e,t,i;for(i=new Hl,i.a+="[",e=0,t=n.gc();e0&&(zn(e-1,n.length),n.charCodeAt(e-1)==58)&&!lx(n,N9,$9))}function _Y(n,e){var t;return x(n)===x(e)?!0:O(e,92)?(t=u(e,92),n.e==t.e&&n.d==t.d&&I3e(n,t.a)):!1}function zp(n){switch(tn(),n.g){case 4:return Xn;case 1:return Zn;case 3:return ae;case 2:return Wn;default:return sc}}function o8e(n){var e,t;if(n.b)return n.b;for(t=qf?null:n.d;t;){if(e=qf?null:t.b,e)return e;t=qf?null:t.d}return a4(),$un}function HY(n){var e,t,i;for(i=$(R(n.a.of((qe(),iO)))),t=new C(n.a.Sf());t.a>5,e=n&31,i=K(ye,Ke,28,t+1,15,1),i[t]=1<3;)r*=10,--c;n=(n+(r>>1))/r|0}return i.i=n,!0}function Ot(n,e){var t,i,r;if(t=(n.i==null&&bh(n),n.i),i=e.Lj(),i!=-1){for(r=t.length;i=0;--i)for(e=t[i],r=0;r>1,this.k=e-1>>1}function j8e(n){YM(),u(n.of((qe(),Ma)),181).Hc((io(),hO))&&(u(n.of(Ww),181).Fc((zu(),B3)),u(n.of(Ma),181).Mc(hO))}function SBn(n){var e,t;e=n.d==(Yp(),dv),t=GZ(n),e&&!t||!e&&t?U(n.a,(cn(),Th),(Rh(),Uj)):U(n.a,(cn(),Th),(Rh(),qj))}function bx(){bx=F,nC(),EI=(cn(),gb),Qte=If(S(T(Xq,1),Ern,149,0,[Tj,Vs,M2,wb,qw,IH,Av,Sv,OH,J8,C2,Bd,T2]))}function E8e(n,e){var t;return t=u(Wr(n,qu(new ju,new yu,new Eu,S(T(xr,1),G,108,0,[(Gu(),Yr)]))),15),t.Qc(WSn(t.gc()))}function PBn(n,e){var t,i;if(i=new Y3(n.a.ad(e,!0)),i.a.gc()<=1)throw M(new ip);return t=i.a.ec().Kc(),t.Pb(),u(t.Pb(),40)}function C8e(n,e,t){var i,r;return i=$(n.p[e.i.p])+$(n.d[e.i.p])+e.n.b+e.a.b,r=$(n.p[t.i.p])+$(n.d[t.i.p])+t.n.b+t.a.b,r-i}function WY(n,e){var t;return n.i>0&&(e.lengthn.i&&$t(e,n.i,null),e}function UT(n){var e;return n.Db&64?m5(n):(e=new ls(m5(n)),e.a+=" (instanceClassName: ",Er(e,n.D),e.a+=")",e.a)}function GT(n){var e,t,i,r;for(r=0,t=0,i=n.length;t0?(n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=RHn(n,r,i,e),t!=-1):!1}function IBn(n,e){var t,i;n.a=nr(n.a,1),n.c=y.Math.min(n.c,e),n.b=y.Math.max(n.b,e),n.d+=e,t=e-n.f,i=n.e+t,n.f=i-n.e-t,n.e=i}function JY(n,e){switch(e){case 3:P0(n,0);return;case 4:I0(n,0);return;case 5:eu(n,0);return;case 6:tu(n,0);return}kY(n,e)}function F0(n,e){switch(e.g){case 1:return Cp(n.j,(Ou(),Fon));case 2:return Cp(n.j,(Ou(),Ron));default:return Dn(),Dn(),sr}}function QY(n){m0();var e;switch(e=n.Pc(),e.length){case 0:return qK;case 1:return new VL(Se(e[0]));default:return new PN(q5e(e))}}function OBn(n,e){n.Xj();try{n.d.bd(n.e++,e),n.f=n.d.j,n.g=-1}catch(t){throw t=It(t),O(t,77)?M(new Bo):M(t)}}function gx(){gx=F,TU=new Tvn,zdn=new Avn,Xdn=new Svn,Vdn=new Pvn,Wdn=new Ivn,Jdn=new Ovn,Qdn=new Dvn,Ydn=new Lvn,Zdn=new Nvn}function zT(n,e){kX();var t,i;return t=D7((KE(),KE(),P8)),i=null,e==t&&(i=u(Nc(fun,n),624)),i||(i=new JPn(n),e==t&&Dr(fun,n,i)),i}function DBn(n){cw();var e;return(n.q?n.q:(Dn(),Dn(),Wh))._b((cn(),db))?e=u(v(n,db),203):e=u(v(Hi(n),W8),203),e}function rw(n,e){var t,i;return i=null,kt(n,(cn(),yI))&&(t=u(v(n,yI),96),t.pf(e)&&(i=t.of(e))),i==null&&(i=v(Hi(n),e)),i}function LBn(n,e){var t,i,r;return O(e,44)?(t=u(e,44),i=t.ld(),r=tw(n.Rc(),i),oh(r,t.md())&&(r!=null||n.Rc()._b(i))):!1}function wf(n,e){var t,i,r;return n.f>0&&(n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=xnn(n,r,i,e),t)?t.md():null}function Xc(n,e,t){var i,r,c;return n.Pj()?(i=n.i,c=n.Qj(),Nk(n,i,e),r=n.Ij(3,null,e,i,c),t?t.nj(r):t=r):Nk(n,n.i,e),t}function T8e(n,e,t){var i,r;return i=new ml(n.e,4,10,(r=e.c,O(r,90)?u(r,29):(On(),Ps)),null,f1(n,e),!1),t?t.nj(i):t=i,t}function A8e(n,e,t){var i,r;return i=new ml(n.e,3,10,null,(r=e.c,O(r,90)?u(r,29):(On(),Ps)),f1(n,e),!1),t?t.nj(i):t=i,t}function NBn(n){Bb();var e;return e=new rr(u(n.e.of((qe(),K2)),8)),n.B.Hc((io(),Hv))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e}function ta(n){dh();var e,t;return t=Ae(n),e=Ae(U1(n,32)),e!=0?new HOn(t,e):t>10||t<0?new gl(1,t):kQn[t]}function Kk(n,e){var t;return Vr(n)&&Vr(e)&&(t=n%e,Ay=0?c=c.a[1]:(r=c,c=c.a[0])}return r}function Hk(n,e,t){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.Ne(e,c.d),t&&i==0)return c;i<=0?c=c.a[0]:(r=c,c=c.a[1])}return r}function L8e(n,e,t,i){var r,c,s;return r=!1,xOe(n.f,t,i)&&(e9e(n.f,n.a[e][t],n.a[e][i]),c=n.a[e],s=c[i],c[i]=c[t],c[t]=s,r=!0),r}function BBn(n,e,t){var i,r,c,s;for(r=u(ee(n.b,t),183),i=0,s=new C(e.j);s.a>5,e&=31,r=n.d+t+(e==0?0:1),i=K(ye,Ke,28,r,15,1),Oye(i,n.a,t,e),c=new Qa(n.e,r,i),Q6(c),c}function N8e(n,e){var t,i,r;for(i=new te(re(Qt(n).a.Kc(),new En));pe(i);)if(t=u(fe(i),18),r=t.d.i,r.c==e)return!1;return!0}function nZ(n,e,t){var i,r,c,s,f;return s=n.k,f=e.k,i=t[s.g][f.g],r=R(rw(n,i)),c=R(rw(e,i)),y.Math.max((Jn(r),r),(Jn(c),c))}function $8e(){return Error.stackTraceLimit>0?(y.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function x8e(n,e){return Mf(),Mf(),Rs(sa),(y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))>0}function eZ(n,e){return Mf(),Mf(),Rs(sa),(y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))<0}function KBn(n,e){return Mf(),Mf(),Rs(sa),(y.Math.abs(n-e)<=sa||n==e||isNaN(n)&&isNaN(e)?0:ne?1:s0(isNaN(n),isNaN(e)))<=0}function mx(n,e){for(var t=0;!e[t]||e[t]=="";)t++;for(var i=e[t++];t0&&this.b>0&&(this.g=cM(this.c,this.b,this.a))}function F8e(n,e){var t=n.a,i;e=String(e),t.hasOwnProperty(e)&&(i=t[e]);var r=(K$(),WK)[typeof i],c=r?r(i):wY(typeof i);return c}function wm(n){var e,t,i;if(i=null,e=Eh in n.a,t=!e,t)throw M(new nh("Every element must have an id."));return i=Zp(dl(n,Eh)),i}function B0(n){var e,t;for(t=a_n(n),e=null;n.c==2;)Ye(n),e||(e=(nt(),nt(),new P6(2)),pd(e,t),t=e),t.Jm(a_n(n));return t}function VT(n,e){var t,i,r;return n._j(),i=e==null?0:mt(e),r=(i&et)%n.d.length,t=xnn(n,r,i,e),t?(V$n(n,t),t.md()):null}function XBn(n,e){return n.e>e.e?1:n.ee.d?n.e:n.d=48&&n<48+y.Math.min(10,10)?n-48:n>=97&&n<97?n-97+10:n>=65&&n<65?n-65+10:-1}function B8e(n,e){if(e.c==n)return e.d;if(e.d==n)return e.c;throw M(new Gn("Input edge is not connected to the input port."))}function R8e(n){if(JT(nv,n))return _n(),ov;if(JT(cK,n))return _n(),wa;throw M(new Gn("Expecting true or false"))}function rZ(n){switch(typeof n){case nB:return t1(n);case dtn:return pp(n);case i3:return SAn(n);default:return n==null?0:l0(n)}}function ah(n,e){if(n.a<0)throw M(new Or("Did not call before(...) or after(...) before calling add(...)."));return YX(n,n.a,e),n}function cZ(n){return $M(),O(n,162)?u(ee(hE,MQn),295).Rg(n):Zc(hE,wo(n))?u(ee(hE,wo(n)),295).Rg(n):null}function iu(n){var e,t;return n.Db&32||(t=(e=u(Un(n,16),29),se(e||n.ii())-se(n.ii())),t!=0&&Xp(n,32,K(ki,Fn,1,t,5,1))),n}function Xp(n,e,t){var i;n.Db&e?t==null?jCe(n,e):(i=Rx(n,e),i==-1?n.Eb=t:$t(cd(n.Eb),i,t)):t!=null&>e(n,e,t)}function K8e(n,e,t,i){var r,c;e.c.length!=0&&(r=$Me(t,i),c=xEe(e),qt(fT(new Tn(null,new In(c,1)),new L3n),new MIn(n,t,r,i)))}function _8e(n,e){var t,i,r,c;return i=n.a.length-1,t=e-n.b&i,c=n.c-e&i,r=n.c-n.b&i,EAn(t=c?(R6e(n,e),-1):(B6e(n,e),1)}function WT(n){var e,t,i;if(i=n.Jh(),!i)for(e=0,t=n.Ph();t;t=t.Ph()){if(++e>PB)return t.Qh();if(i=t.Jh(),i||t==n)break}return i}function WBn(n,e){var t;return x(e)===x(n)?!0:!O(e,21)||(t=u(e,21),t.gc()!=n.gc())?!1:n.Ic(t)}function H8e(n,e){return n.ee.e?1:n.fe.f?1:mt(n)-mt(e)}function JT(n,e){return Jn(n),e==null?!1:An(n,e)?!0:n.length==e.length&&An(n.toLowerCase(),e.toLowerCase())}function Ml(n){var e,t;return Ec(n,-129)>0&&Ec(n,128)<0?(ZSn(),e=Ae(n)+128,t=mun[e],!t&&(t=mun[e]=new kG(n)),t):new kG(n)}function dd(){dd=F,Ow=new aC(kh,0),Don=new aC("INSIDE_PORT_SIDE_GROUPS",1),P_=new aC("GROUP_MODEL_ORDER",2),I_=new aC(tin,3)}function q8e(n){var e;return n.b||xhe(n,(e=$ae(n.e,n.a),!e||!An(cK,wf((!e.b&&(e.b=new lo((On(),ar),pc,e)),e.b),"qualified")))),n.c}function U8e(n,e){var t,i;for(t=(zn(e,n.length),n.charCodeAt(e)),i=e+1;i2e3&&(hQn=n,uP=y.setTimeout(_he,10))),cP++==0?(ime((az(),sun)),!0):!1}function r9e(n,e,t){var i;(DQn?(o8e(n),!0):LQn||$Qn?(a4(),!0):NQn&&(a4(),!1))&&(i=new aSn(e),i.b=t,aje(n,i))}function kx(n,e){var t;t=!n.A.Hc((go(),Gd))||n.q==(Oi(),qc),n.u.Hc((zu(),Fl))?t?XDe(n,e):UGn(n,e):n.u.Hc(Pa)&&(t?dDe(n,e):czn(n,e))}function eRn(n){var e;x(z(n,(qe(),B2)))===x((jl(),uO))&&(At(n)?(e=u(z(At(n),B2),346),ht(n,B2,e)):ht(n,B2,M9))}function c9e(n){var e,t;return kt(n.d.i,(cn(),Cv))?(e=u(v(n.c.i,Cv),17),t=u(v(n.d.i,Cv),17),jc(e.a,t.a)>0):!1}function tRn(n,e,t){return new Ho(y.Math.min(n.a,e.a)-t/2,y.Math.min(n.b,e.b)-t/2,y.Math.abs(n.a-e.a)+t,y.Math.abs(n.b-e.b)+t)}function iRn(n){var e;this.d=new Z,this.j=new Li,this.g=new Li,e=n.g.b,this.f=u(v(Hi(e),(cn(),Do)),88),this.e=$(R(nA(e,qw)))}function rRn(n){this.d=new Z,this.e=new Ql,this.c=K(ye,Ke,28,(tn(),S(T(lr,1),Mc,64,0,[sc,Xn,Zn,ae,Wn])).length,15,1),this.b=n}function sZ(n,e,t){var i;switch(i=t[n.g][e],n.g){case 1:case 3:return new V(0,i);case 2:case 4:return new V(i,0);default:return null}}function cRn(n,e,t){var i,r;r=u(V7(e.f),205);try{r.rf(n,t),hIn(e.f,r)}catch(c){throw c=It(c),O(c,103)?(i=c,M(i)):M(c)}}function uRn(n,e,t){var i,r,c,s,f,h;return i=null,f=Zen(z4(),e),c=null,f&&(r=null,h=Qen(f,t),s=null,h!=null&&(s=n.qf(f,h)),r=s,c=r),i=c,i}function yx(n,e,t,i){var r;if(r=n.length,e>=r)return r;for(e=e>0?e:0;ei&&$t(e,i,null),e}function oRn(n,e){var t,i;for(i=n.a.length,e.lengthi&&$t(e,i,null),e}function gm(n,e){var t,i;if(++n.j,e!=null&&(t=(i=n.a.Cb,O(i,99)?u(i,99).th():null),hCe(e,t))){Xp(n.a,4,t);return}Xp(n.a,4,u(e,129))}function u9e(n){var e;if(n==null)return null;if(e=lMe(Fc(n,!0)),e==null)throw M(new kD("Invalid hexBinary value: '"+n+"'"));return e}function QT(n,e,t){var i;e.a.length>0&&(nn(n.b,new SSn(e.a,t)),i=e.a.length,0i&&(e.a+=ITn(K(fs,gh,28,-i,15,1))))}function sRn(n,e,t){var i,r,c;if(!t[e.d])for(t[e.d]=!0,r=new C($g(e));r.a=n.b>>1)for(i=n.c,t=n.b;t>e;--t)i=i.b;else for(i=n.a.a,t=0;t=0?n.Wh(r):hF(n,i)):t<0?hF(n,i):u(i,69).wk().Bk(n,n.hi(),t)}function aRn(n){var e,t,i;for(i=(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),n.o),t=i.c.Kc();t.e!=t.i.gc();)e=u(t.Yj(),44),e.md();return uk(i)}function rn(n){var e;if(O(n.a,4)){if(e=cZ(n.a),e==null)throw M(new Or(NVn+n.b+"'. "+LVn+(ll(lE),lE.k)+bcn));return e}else return n.a}function b9e(n,e){var t,i;if(n.j.length!=e.j.length)return!1;for(t=0,i=n.j.length;t=64&&e<128&&(r=hf(r,Fs(1,e-64)));return r}function nA(n,e){var t,i;return i=null,kt(n,(qe(),$3))&&(t=u(v(n,$3),96),t.pf(e)&&(i=t.of(e))),i==null&&Hi(n)&&(i=v(Hi(n),e)),i}function w9e(n,e){var t;return t=u(v(n,(cn(),Fr)),75),yL(e,LZn)?t?vo(t):(t=new Mu,U(n,Fr,t)):t&&U(n,Fr,null),t}function M5(){M5=F,aon=(qe(),qan),g_=Ean,DYn=$2,lon=C1,xYn=(aA(),Uun),$Yn=Hun,FYn=zun,NYn=_un,LYn=(Q$(),son),w_=PYn,hon=IYn,pP=OYn}function eA(n){switch($z(),this.c=new Z,this.d=n,n.g){case 0:case 2:this.a=qW(Oon),this.b=St;break;case 3:case 1:this.a=Oon,this.b=li}}function g9e(n){var e;Ep(u(v(n,(cn(),Kt)),101))&&(e=n.b,nHn((Ln(0,e.c.length),u(e.c[0],30))),nHn(u(sn(e,e.c.length-1),30)))}function p9e(n,e){e.Ug("Self-Loop post-processing",1),qt(ut(ut(rc(new Tn(null,new In(n.b,16)),new s2n),new f2n),new h2n),new l2n),e.Vg()}function dRn(n,e,t){var i,r;if(n.c)eu(n.c,n.c.i+e),tu(n.c,n.c.j+t);else for(r=new C(n.b);r.a=0&&(t.d=n.t);break;case 3:n.t>=0&&(t.a=n.t)}n.C&&(t.b=n.C.b,t.c=n.C.c)}function T5(){T5=F,Nhn=new d7(Crn,0),KH=new d7(sR,1),_H=new d7("LINEAR_SEGMENTS",2),Y8=new d7("BRANDES_KOEPF",3),Z8=new d7(sVn,4)}function A5(){A5=F,fj=new hC(eS,0),wP=new hC(HB,1),gP=new hC(qB,2),hj=new hC(UB,3),fj.a=!1,wP.a=!0,gP.a=!1,hj.a=!0}function Vp(){Vp=F,uj=new fC(eS,0),cj=new fC(HB,1),oj=new fC(qB,2),sj=new fC(UB,3),uj.a=!1,cj.a=!0,oj.a=!1,sj.a=!0}function Wp(n,e,t,i){var r;return t>=0?n.Sh(e,t,i):(n.Ph()&&(i=(r=n.Fh(),r>=0?n.Ah(i):n.Ph().Th(n,-1-r,null,i))),n.Ch(e,t,i))}function fZ(n,e){switch(e){case 7:!n.e&&(n.e=new Nn(Vt,n,7,4)),me(n.e);return;case 8:!n.d&&(n.d=new Nn(Vt,n,8,5)),me(n.d);return}JY(n,e)}function ht(n,e,t){return t==null?(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),VT(n.o,e)):(!n.o&&(n.o=new Iu((Cc(),il),T1,n,0)),Vk(n.o,e,t)),n}function pRn(n,e){Dn();var t,i,r,c;for(t=n,c=e,O(n,21)&&!O(e,21)&&(t=e,c=n),r=t.Kc();r.Ob();)if(i=r.Pb(),c.Hc(i))return!1;return!0}function j9e(n,e,t,i){if(e.at.b)return!0}return!1}function Tx(n,e){return Ai(n)?!!iQn[e]:n.Sm?!!n.Sm[e]:$b(n)?!!tQn[e]:Nb(n)?!!eQn[e]:!1}function E9e(n){var e;e=n.a;do e=u(fe(new te(re(ji(e).a.Kc(),new En))),18).c.i,e.k==(Vn(),Mi)&&n.b.Fc(e);while(e.k==(Vn(),Mi));n.b=Qo(n.b)}function mRn(n,e){var t,i,r;for(r=n,i=new te(re(ji(e).a.Kc(),new En));pe(i);)t=u(fe(i),18),t.c.i.c&&(r=y.Math.max(r,t.c.i.c.p));return r}function C9e(n,e){var t,i,r;for(r=0,i=u(u(ot(n.r,e),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r+=t.d.d+t.b.Mf().b+t.d.a,i.Ob()&&(r+=n.w);return r}function M9e(n,e){var t,i,r;for(r=0,i=u(u(ot(n.r,e),21),87).Kc();i.Ob();)t=u(i.Pb(),117),r+=t.d.b+t.b.Mf().a+t.d.c,i.Ob()&&(r+=n.w);return r}function vRn(n){var e,t,i,r;if(i=0,r=aw(n),r.c.length==0)return 1;for(t=new C(r);t.a=0?n.Lh(s,t,!0):H0(n,c,t)):u(c,69).wk().yk(n,n.hi(),r,t,i)}function P9e(n,e,t,i){var r,c;c=e.pf((qe(),R2))?u(e.of(R2),21):n.j,r=d5e(c),r!=(VA(),l_)&&(t&&!tZ(r)||bnn(aMe(n,r,i),e))}function I9e(n){switch(n.g){case 1:return N0(),rj;case 3:return N0(),ij;case 2:return N0(),d_;case 4:return N0(),a_;default:return null}}function O9e(n,e,t){if(n.e)switch(n.b){case 1:yge(n.c,e,t);break;case 0:jge(n.c,e,t)}else KDn(n.c,e,t);n.a[e.p][t.p]=n.c.i,n.a[t.p][e.p]=n.c.e}function kRn(n){var e,t;if(n==null)return null;for(t=K(Qh,J,199,n.length,0,2),e=0;e=0)return r;if(n.ol()){for(i=0;i=r)throw M(new Kb(e,r));if(n.Si()&&(i=n.dd(t),i>=0&&i!=e))throw M(new Gn(Vy));return n.Xi(e,t)}function hZ(n,e){if(this.a=u(Se(n),253),this.b=u(Se(e),253),n.Ed(e)>0||n==(dD(),_K)||e==(bD(),HK))throw M(new Gn("Invalid range: "+qDn(n,e)))}function yRn(n){var e,t;for(this.b=new Z,this.c=n,this.a=!1,t=new C(n.a);t.a0),(e&-e)==e)return wi(e*to(n,31)*4656612873077393e-25);do t=to(n,31),i=t%e;while(t-i+(e-1)<0);return wi(i)}function F9e(n,e,t){switch(t.g){case 1:n.a=e.a/2,n.b=0;break;case 2:n.a=e.a,n.b=e.b/2;break;case 3:n.a=e.a/2,n.b=e.b;break;case 4:n.a=0,n.b=e.b/2}}function qk(n,e,t,i){var r,c;for(r=e;r1&&(c=L9e(n,e)),c}function CRn(n){var e;return e=$(R(z(n,(qe(),Qj))))*y.Math.sqrt((!n.a&&(n.a=new q(Qe,n,10,11)),n.a).i),new V(e,e/$(R(z(n,rO))))}function Sx(n){var e;return n.f&&n.f.Vh()&&(e=u(n.f,54),n.f=u(na(n,e),84),n.f!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,8,e,n.f))),n.f}function Px(n){var e;return n.i&&n.i.Vh()&&(e=u(n.i,54),n.i=u(na(n,e),84),n.i!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,7,e,n.i))),n.i}function br(n){var e;return n.b&&n.b.Db&64&&(e=n.b,n.b=u(na(n,e),19),n.b!=e&&n.Db&4&&!(n.Db&1)&&it(n,new Ci(n,9,21,e,n.b))),n.b}function uA(n,e){var t,i,r;n.d==null?(++n.e,++n.f):(i=e.Bi(),uTe(n,n.f+1),r=(i&et)%n.d.length,t=n.d[r],!t&&(t=n.d[r]=n.dk()),t.Fc(e),++n.f)}function dZ(n,e,t){var i;return e.tk()?!1:e.Ik()!=-2?(i=e.ik(),i==null?t==null:rt(i,t)):e.qk()==n.e.Dh()&&t==null}function oA(){var n;Co(16,$zn),n=sxn(16),this.b=K(UK,Cy,303,n,0,1),this.c=K(UK,Cy,303,n,0,1),this.a=null,this.e=null,this.i=0,this.f=n-1,this.g=0}function Tl(n){vV.call(this),this.k=(Vn(),zt),this.j=(Co(6,mw),new Gc(6)),this.b=(Co(2,mw),new Gc(2)),this.d=new sD,this.f=new nz,this.a=n}function R9e(n){var e,t;n.c.length<=1||(e=Sqn(n,(tn(),ae)),w_n(n,u(e.a,17).a,u(e.b,17).a),t=Sqn(n,Wn),w_n(n,u(t.a,17).a,u(t.b,17).a))}function K9e(n,e,t){var i,r;for(r=n.a.b,i=r.c.length;i102?-1:n<=57?n-48:n<65?-1:n<=70?n-65+10:n<97?-1:n-97+10}function Nx(n,e){if(n==null)throw M(new sp("null key in entry: null="+e));if(e==null)throw M(new sp("null value in entry: "+n+"=null"))}function q9e(n,e){for(var t,i;n.Ob();)if(!e.Ob()||(t=n.Pb(),i=e.Pb(),!(x(t)===x(i)||t!=null&&rt(t,i))))return!1;return!e.Ob()}function ARn(n,e){var t;return t=S(T(Pi,1),Tr,28,15,[Z$(n.a[0],e),Z$(n.a[1],e),Z$(n.a[2],e)]),n.d&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function SRn(n,e){var t;return t=S(T(Pi,1),Tr,28,15,[$T(n.a[0],e),$T(n.a[1],e),$T(n.a[2],e)]),n.d&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function wZ(n,e,t){Ep(u(v(e,(cn(),Kt)),101))||(PJ(n,e,h1(e,t)),PJ(n,e,h1(e,(tn(),ae))),PJ(n,e,h1(e,Xn)),Dn(),Yt(e.j,new N7n(n)))}function PRn(n){var e,t;for(n.c||sOe(n),t=new Mu,e=new C(n.a),E(e);e.a0&&(zn(0,e.length),e.charCodeAt(0)==43)?(zn(1,e.length+1),e.substr(1)):e))}function i7e(n){var e;return n==null?null:new H1((e=Fc(n,!0),e.length>0&&(zn(0,e.length),e.charCodeAt(0)==43)?(zn(1,e.length+1),e.substr(1)):e))}function pZ(n,e,t,i,r,c,s,f){var h,l;i&&(h=i.a[0],h&&pZ(n,e,t,h,r,c,s,f),qx(n,t,i.d,r,c,s,f)&&e.Fc(i),l=i.a[1],l&&pZ(n,e,t,l,r,c,s,f))}function Rg(n,e,t){try{return o0(C$(n,e,t),1)}catch(i){throw i=It(i),O(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function NRn(n,e,t){try{return o0(C$(n,e,t),0)}catch(i){throw i=It(i),O(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function $Rn(n,e,t){try{return o0(C$(n,e,t),2)}catch(i){throw i=It(i),O(i,333)?M(new Ir(GB+n.o+"*"+n.p+zB+e+ur+t+XB)):M(i)}}function xRn(n,e){if(n.g==-1)throw M(new Cu);n.Xj();try{n.d.hd(n.g,e),n.f=n.d.j}catch(t){throw t=It(t),O(t,77)?M(new Bo):M(t)}}function r7e(n){var e,t,i,r,c;for(i=new C(n.b);i.ac&&$t(e,c,null),e}function c7e(n,e){var t,i;if(i=n.gc(),e==null){for(t=0;t0&&(h+=r),l[a]=s,s+=f*(h+i)}function BRn(n){var e,t,i;for(i=n.f,n.n=K(Pi,Tr,28,i,15,1),n.d=K(Pi,Tr,28,i,15,1),e=0;e0?n.c:0),++r;n.b=i,n.d=c}function qRn(n,e){var t;return t=S(T(Pi,1),Tr,28,15,[aZ(n,(bf(),bc),e),aZ(n,Wc,e),aZ(n,wc,e)]),n.f&&(t[0]=y.Math.max(t[0],t[2]),t[2]=t[0]),t}function d7e(n,e,t){var i;try{xA(n,e+n.j,t+n.k,!1,!0)}catch(r){throw r=It(r),O(r,77)?(i=r,M(new Ir(i.g+iS+e+ur+t+")."))):M(r)}}function b7e(n,e,t){var i;try{xA(n,e+n.j,t+n.k,!0,!1)}catch(r){throw r=It(r),O(r,77)?(i=r,M(new Ir(i.g+iS+e+ur+t+")."))):M(r)}}function URn(n){var e;kt(n,(cn(),ab))&&(e=u(v(n,ab),21),e.Hc((lw(),Js))?(e.Mc(Js),e.Fc(Qs)):e.Hc(Qs)&&(e.Mc(Qs),e.Fc(Js)))}function GRn(n){var e;kt(n,(cn(),ab))&&(e=u(v(n,ab),21),e.Hc((lw(),Zs))?(e.Mc(Zs),e.Fc(Cs)):e.Hc(Cs)&&(e.Mc(Cs),e.Fc(Zs)))}function Kx(n,e,t,i){var r,c,s,f;return n.a==null&&gje(n,e),s=e.b.j.c.length,c=t.d.p,f=i.d.p,r=f-1,r<0&&(r=s-1),c<=r?n.a[r]-n.a[c]:n.a[s-1]-n.a[c]+n.a[r]}function w7e(n){var e,t;if(!n.b)for(n.b=RM(u(n.f,27).kh().i),t=new ne(u(n.f,27).kh());t.e!=t.i.gc();)e=u(ce(t),135),nn(n.b,new pD(e));return n.b}function g7e(n){var e,t;if(!n.e)for(n.e=RM(mN(u(n.f,27)).i),t=new ne(mN(u(n.f,27)));t.e!=t.i.gc();)e=u(ce(t),123),nn(n.e,new Bkn(e));return n.e}function zRn(n){var e,t;if(!n.a)for(n.a=RM(AM(u(n.f,27)).i),t=new ne(AM(u(n.f,27)));t.e!=t.i.gc();)e=u(ce(t),27),nn(n.a,new ML(n,e));return n.a}function K0(n){var e;if(!n.C&&(n.D!=null||n.B!=null))if(e=iDe(n),e)n.hl(e);else try{n.hl(null)}catch(t){if(t=It(t),!O(t,63))throw M(t)}return n.C}function p7e(n){switch(n.q.g){case 5:gKn(n,(tn(),Xn)),gKn(n,ae);break;case 4:mGn(n,(tn(),Xn)),mGn(n,ae);break;default:y_n(n,(tn(),Xn)),y_n(n,ae)}}function m7e(n){switch(n.q.g){case 5:pKn(n,(tn(),Zn)),pKn(n,Wn);break;case 4:vGn(n,(tn(),Zn)),vGn(n,Wn);break;default:j_n(n,(tn(),Zn)),j_n(n,Wn)}}function Kg(n,e){var t,i,r;for(r=new Li,i=n.Kc();i.Ob();)t=u(i.Pb(),36),Sm(t,r.a,0),r.a+=t.f.a+e,r.b=y.Math.max(r.b,t.f.b);return r.b>0&&(r.b+=e),r}function hA(n,e){var t,i,r;for(r=new Li,i=n.Kc();i.Ob();)t=u(i.Pb(),36),Sm(t,0,r.b),r.b+=t.f.b+e,r.a=y.Math.max(r.a,t.f.a);return r.a>0&&(r.a+=e),r}function XRn(n){var e,t,i;for(i=et,t=new C(n.a);t.a>16==6?n.Cb.Th(n,5,jf,e):(i=br(u($n((t=u(Un(n,16),29),t||n.ii()),n.Db>>16),19)),n.Cb.Th(n,i.n,i.f,e))}function v7e(n){O4();var e=n.e;if(e&&e.stack){var t=e.stack,i=e+` `;return t.substring(0,i.length)==i&&(t=t.substring(i.length)),t.split(` diff --git a/assets/ganttDiagram-b62c793e-DNQqloZc.js b/assets/ganttDiagram-b62c793e-BBZElqEr.js similarity index 99% rename from assets/ganttDiagram-b62c793e-DNQqloZc.js rename to assets/ganttDiagram-b62c793e-BBZElqEr.js index 10f3cfe..e869cc9 100644 --- a/assets/ganttDiagram-b62c793e-DNQqloZc.js +++ b/assets/ganttDiagram-b62c793e-BBZElqEr.js @@ -1,4 +1,4 @@ -import{au as Be,av as Ze,aw as Xe,ax as qe,ay as Dn,az as Kt,aA as Mn,aB as ye,aC as ke,aD as nt,c as wt,s as Sn,g as _n,x as Un,y as Yn,b as Fn,a as Ln,A as An,m as En,l as qt,h as Pt,i as In,j as Wn,z as On}from"./mermaid.core-Cio1iadR.js";import{b as Hn,t as Ue,c as Nn,a as Vn,l as zn}from"./linear-DyHMIkCX.js";import{i as Pn}from"./init-Gi6I4Gst.js";import"./app-BQ_RvZRm.js";function Rn(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n=i)&&(n=i)}return n}function Bn(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function Zn(t){return t}var Bt=1,te=2,ue=3,Rt=4,Ye=1e-6;function Xn(t){return"translate("+t+",0)"}function qn(t){return"translate(0,"+t+")"}function Gn(t){return e=>+t(e)}function jn(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function Qn(){return!this.__axis}function Ge(t,e){var n=[],r=null,i=null,s=6,a=6,k=3,Y=typeof window<"u"&&window.devicePixelRatio>1?0:.5,g=t===Bt||t===Rt?-1:1,b=t===Rt||t===te?"x":"y",U=t===Bt||t===ue?Xn:qn;function C(v){var q=r??(e.ticks?e.ticks.apply(e,n):e.domain()),y=i??(e.tickFormat?e.tickFormat.apply(e,n):Zn),L=Math.max(s,0)+k,O=e.range(),W=+O[0]+Y,B=+O[O.length-1]+Y,Z=(e.bandwidth?jn:Gn)(e.copy(),Y),Q=v.selection?v.selection():v,x=Q.selectAll(".domain").data([null]),E=Q.selectAll(".tick").data(q,e).order(),T=E.exit(),F=E.enter().append("g").attr("class","tick"),D=E.select("line"),w=E.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),E=E.merge(F),D=D.merge(F.append("line").attr("stroke","currentColor").attr(b+"2",g*s)),w=w.merge(F.append("text").attr("fill","currentColor").attr(b,g*L).attr("dy",t===Bt?"0em":t===ue?"0.71em":"0.32em")),v!==Q&&(x=x.transition(v),E=E.transition(v),D=D.transition(v),w=w.transition(v),T=T.transition(v).attr("opacity",Ye).attr("transform",function(o){return isFinite(o=Z(o))?U(o+Y):this.getAttribute("transform")}),F.attr("opacity",Ye).attr("transform",function(o){var d=this.parentNode.__axis;return U((d&&isFinite(d=d(o))?d:Z(o))+Y)})),T.remove(),x.attr("d",t===Rt||t===te?a?"M"+g*a+","+W+"H"+Y+"V"+B+"H"+g*a:"M"+Y+","+W+"V"+B:a?"M"+W+","+g*a+"V"+Y+"H"+B+"V"+g*a:"M"+W+","+Y+"H"+B),E.attr("opacity",1).attr("transform",function(o){return U(Z(o)+Y)}),D.attr(b+"2",g*s),w.attr(b,g*L).text(y),Q.filter(Qn).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===te?"start":t===Rt?"end":"middle"),Q.each(function(){this.__axis=Z})}return C.scale=function(v){return arguments.length?(e=v,C):e},C.ticks=function(){return n=Array.from(arguments),C},C.tickArguments=function(v){return arguments.length?(n=v==null?[]:Array.from(v),C):n.slice()},C.tickValues=function(v){return arguments.length?(r=v==null?null:Array.from(v),C):r&&r.slice()},C.tickFormat=function(v){return arguments.length?(i=v,C):i},C.tickSize=function(v){return arguments.length?(s=a=+v,C):s},C.tickSizeInner=function(v){return arguments.length?(s=+v,C):s},C.tickSizeOuter=function(v){return arguments.length?(a=+v,C):a},C.tickPadding=function(v){return arguments.length?(k=+v,C):k},C.offset=function(v){return arguments.length?(Y=+v,C):Y},C}function Jn(t){return Ge(Bt,t)}function $n(t){return Ge(ue,t)}const Kn=Math.PI/180,tr=180/Math.PI,Gt=18,je=.96422,Qe=1,Je=.82521,$e=4/29,Ct=6/29,Ke=3*Ct*Ct,er=Ct*Ct*Ct;function tn(t){if(t instanceof ot)return new ot(t.l,t.a,t.b,t.opacity);if(t instanceof ut)return en(t);t instanceof Xe||(t=Dn(t));var e=ie(t.r),n=ie(t.g),r=ie(t.b),i=ee((.2225045*e+.7168786*n+.0606169*r)/Qe),s,a;return e===n&&n===r?s=a=i:(s=ee((.4360747*e+.3850649*n+.1430804*r)/je),a=ee((.0139322*e+.0971045*n+.7141733*r)/Je)),new ot(116*i-16,500*(s-i),200*(i-a),t.opacity)}function nr(t,e,n,r){return arguments.length===1?tn(t):new ot(t,e,n,r??1)}function ot(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}Be(ot,nr,Ze(qe,{brighter(t){return new ot(this.l+Gt*(t??1),this.a,this.b,this.opacity)},darker(t){return new ot(this.l-Gt*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=je*ne(e),t=Qe*ne(t),n=Je*ne(n),new Xe(re(3.1338561*e-1.6168667*t-.4906146*n),re(-.9787684*e+1.9161415*t+.033454*n),re(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function ee(t){return t>er?Math.pow(t,1/3):t/Ke+$e}function ne(t){return t>Ct?t*t*t:Ke*(t-$e)}function re(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ie(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function rr(t){if(t instanceof ut)return new ut(t.h,t.c,t.l,t.opacity);if(t instanceof ot||(t=tn(t)),t.a===0&&t.b===0)return new ut(NaN,0(t(s=new Date(+s)),s),i.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),i.round=s=>{const a=i(s),k=i.ceil(s);return s-a(e(s=new Date(+s),a==null?1:Math.floor(a)),s),i.range=(s,a,k)=>{const Y=[];if(s=i.ceil(s),k=k==null?1:Math.floor(k),!(s0))return Y;let g;do Y.push(g=new Date(+s)),e(s,k),t(s);while(gK(a=>{if(a>=a)for(;t(a),!s(a);)a.setTime(a-1)},(a,k)=>{if(a>=a)if(k<0)for(;++k<=0;)for(;e(a,-1),!s(a););else for(;--k>=0;)for(;e(a,1),!s(a););}),n&&(i.count=(s,a)=>(se.setTime(+s),ae.setTime(+a),t(se),t(ae),Math.floor(n(se,ae))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(r?a=>r(a)%s===0:a=>i.count(0,a)%s===0):i)),i}const Mt=K(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Mt.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?K(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):Mt);Mt.range;const ft=1e3,rt=ft*60,ht=rt*60,dt=ht*24,pe=dt*7,Fe=dt*30,oe=dt*365,gt=K(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*ft)},(t,e)=>(e-t)/ft,t=>t.getUTCSeconds());gt.range;const At=K(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ft)},(t,e)=>{t.setTime(+t+e*rt)},(t,e)=>(e-t)/rt,t=>t.getMinutes());At.range;const or=K(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*rt)},(t,e)=>(e-t)/rt,t=>t.getUTCMinutes());or.range;const Et=K(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ft-t.getMinutes()*rt)},(t,e)=>{t.setTime(+t+e*ht)},(t,e)=>(e-t)/ht,t=>t.getHours());Et.range;const cr=K(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*ht)},(t,e)=>(e-t)/ht,t=>t.getUTCHours());cr.range;const yt=K(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*rt)/dt,t=>t.getDate()-1);yt.range;const Te=K(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/dt,t=>t.getUTCDate()-1);Te.range;const lr=K(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/dt,t=>Math.floor(t/dt));lr.range;function Tt(t){return K(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*rt)/pe)}const Ot=Tt(0),It=Tt(1),nn=Tt(2),rn=Tt(3),kt=Tt(4),sn=Tt(5),an=Tt(6);Ot.range;It.range;nn.range;rn.range;kt.range;sn.range;an.range;function vt(t){return K(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/pe)}const on=vt(0),jt=vt(1),ur=vt(2),fr=vt(3),St=vt(4),hr=vt(5),dr=vt(6);on.range;jt.range;ur.range;fr.range;St.range;hr.range;dr.range;const Wt=K(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());Wt.range;const mr=K(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());mr.range;const mt=K(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());mt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:K(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});mt.range;const pt=K(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());pt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:K(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});pt.range;function gr(t,e,n,r,i,s){const a=[[gt,1,ft],[gt,5,5*ft],[gt,15,15*ft],[gt,30,30*ft],[s,1,rt],[s,5,5*rt],[s,15,15*rt],[s,30,30*rt],[i,1,ht],[i,3,3*ht],[i,6,6*ht],[i,12,12*ht],[r,1,dt],[r,2,2*dt],[n,1,pe],[e,1,Fe],[e,3,3*Fe],[t,1,oe]];function k(g,b,U){const C=bL).right(a,C);if(v===a.length)return t.every(Ue(g/oe,b/oe,U));if(v===0)return Mt.every(Math.max(Ue(g,b,U),1));const[q,y]=a[C/a[v-1][2]53)return null;"w"in l||(l.w=1),"Z"in l?(N=le(Yt(l.y,0,1)),j=N.getUTCDay(),N=j>4||j===0?jt.ceil(N):jt(N),N=Te.offset(N,(l.V-1)*7),l.y=N.getUTCFullYear(),l.m=N.getUTCMonth(),l.d=N.getUTCDate()+(l.w+6)%7):(N=ce(Yt(l.y,0,1)),j=N.getDay(),N=j>4||j===0?It.ceil(N):It(N),N=yt.offset(N,(l.V-1)*7),l.y=N.getFullYear(),l.m=N.getMonth(),l.d=N.getDate()+(l.w+6)%7)}else("W"in l||"U"in l)&&("w"in l||(l.w="u"in l?l.u%7:"W"in l?1:0),j="Z"in l?le(Yt(l.y,0,1)).getUTCDay():ce(Yt(l.y,0,1)).getDay(),l.m=0,l.d="W"in l?(l.w+6)%7+l.W*7-(j+5)%7:l.w+l.U*7-(j+6)%7);return"Z"in l?(l.H+=l.Z/100|0,l.M+=l.Z%100,le(l)):ce(l)}}function T(p,A,M,l){for(var R=0,N=A.length,j=M.length,J,et;R=j)return-1;if(J=A.charCodeAt(R++),J===37){if(J=A.charAt(R++),et=Q[J in Le?A.charAt(R++):J],!et||(l=et(p,M,l))<0)return-1}else if(J!=M.charCodeAt(l++))return-1}return l}function F(p,A,M){var l=g.exec(A.slice(M));return l?(p.p=b.get(l[0].toLowerCase()),M+l[0].length):-1}function D(p,A,M){var l=v.exec(A.slice(M));return l?(p.w=q.get(l[0].toLowerCase()),M+l[0].length):-1}function w(p,A,M){var l=U.exec(A.slice(M));return l?(p.w=C.get(l[0].toLowerCase()),M+l[0].length):-1}function o(p,A,M){var l=O.exec(A.slice(M));return l?(p.m=W.get(l[0].toLowerCase()),M+l[0].length):-1}function d(p,A,M){var l=y.exec(A.slice(M));return l?(p.m=L.get(l[0].toLowerCase()),M+l[0].length):-1}function m(p,A,M){return T(p,e,A,M)}function u(p,A,M){return T(p,n,A,M)}function S(p,A,M){return T(p,r,A,M)}function c(p){return a[p.getDay()]}function X(p){return s[p.getDay()]}function f(p){return Y[p.getMonth()]}function h(p){return k[p.getMonth()]}function _(p){return i[+(p.getHours()>=12)]}function G(p){return 1+~~(p.getMonth()/3)}function H(p){return a[p.getUTCDay()]}function V(p){return s[p.getUTCDay()]}function I(p){return Y[p.getUTCMonth()]}function z(p){return k[p.getUTCMonth()]}function st(p){return i[+(p.getUTCHours()>=12)]}function it(p){return 1+~~(p.getUTCMonth()/3)}return{format:function(p){var A=x(p+="",B);return A.toString=function(){return p},A},parse:function(p){var A=E(p+="",!1);return A.toString=function(){return p},A},utcFormat:function(p){var A=x(p+="",Z);return A.toString=function(){return p},A},utcParse:function(p){var A=E(p+="",!0);return A.toString=function(){return p},A}}}var Le={"-":"",_:" ",0:"0"},tt=/^\s*\d+/,Tr=/^%/,vr=/[\\^$*+?|[\]().{}]/g;function P(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",s=i.length;return r+(s[e.toLowerCase(),n]))}function xr(t,e,n){var r=tt.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function wr(t,e,n){var r=tt.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Cr(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Dr(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Mr(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Ae(t,e,n){var r=tt.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Ee(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Sr(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function _r(t,e,n){var r=tt.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Ur(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Ie(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Yr(t,e,n){var r=tt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function We(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Fr(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Lr(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Ar(t,e,n){var r=tt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Er(t,e,n){var r=tt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Ir(t,e,n){var r=Tr.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Wr(t,e,n){var r=tt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Or(t,e,n){var r=tt.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Oe(t,e){return P(t.getDate(),e,2)}function Hr(t,e){return P(t.getHours(),e,2)}function Nr(t,e){return P(t.getHours()%12||12,e,2)}function Vr(t,e){return P(1+yt.count(mt(t),t),e,3)}function cn(t,e){return P(t.getMilliseconds(),e,3)}function zr(t,e){return cn(t,e)+"000"}function Pr(t,e){return P(t.getMonth()+1,e,2)}function Rr(t,e){return P(t.getMinutes(),e,2)}function Br(t,e){return P(t.getSeconds(),e,2)}function Zr(t){var e=t.getDay();return e===0?7:e}function Xr(t,e){return P(Ot.count(mt(t)-1,t),e,2)}function ln(t){var e=t.getDay();return e>=4||e===0?kt(t):kt.ceil(t)}function qr(t,e){return t=ln(t),P(kt.count(mt(t),t)+(mt(t).getDay()===4),e,2)}function Gr(t){return t.getDay()}function jr(t,e){return P(It.count(mt(t)-1,t),e,2)}function Qr(t,e){return P(t.getFullYear()%100,e,2)}function Jr(t,e){return t=ln(t),P(t.getFullYear()%100,e,2)}function $r(t,e){return P(t.getFullYear()%1e4,e,4)}function Kr(t,e){var n=t.getDay();return t=n>=4||n===0?kt(t):kt.ceil(t),P(t.getFullYear()%1e4,e,4)}function ti(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+P(e/60|0,"0",2)+P(e%60,"0",2)}function He(t,e){return P(t.getUTCDate(),e,2)}function ei(t,e){return P(t.getUTCHours(),e,2)}function ni(t,e){return P(t.getUTCHours()%12||12,e,2)}function ri(t,e){return P(1+Te.count(pt(t),t),e,3)}function un(t,e){return P(t.getUTCMilliseconds(),e,3)}function ii(t,e){return un(t,e)+"000"}function si(t,e){return P(t.getUTCMonth()+1,e,2)}function ai(t,e){return P(t.getUTCMinutes(),e,2)}function oi(t,e){return P(t.getUTCSeconds(),e,2)}function ci(t){var e=t.getUTCDay();return e===0?7:e}function li(t,e){return P(on.count(pt(t)-1,t),e,2)}function fn(t){var e=t.getUTCDay();return e>=4||e===0?St(t):St.ceil(t)}function ui(t,e){return t=fn(t),P(St.count(pt(t),t)+(pt(t).getUTCDay()===4),e,2)}function fi(t){return t.getUTCDay()}function hi(t,e){return P(jt.count(pt(t)-1,t),e,2)}function di(t,e){return P(t.getUTCFullYear()%100,e,2)}function mi(t,e){return t=fn(t),P(t.getUTCFullYear()%100,e,2)}function gi(t,e){return P(t.getUTCFullYear()%1e4,e,4)}function yi(t,e){var n=t.getUTCDay();return t=n>=4||n===0?St(t):St.ceil(t),P(t.getUTCFullYear()%1e4,e,4)}function ki(){return"+0000"}function Ne(){return"%"}function Ve(t){return+t}function ze(t){return Math.floor(+t/1e3)}var xt,Qt;pi({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function pi(t){return xt=pr(t),Qt=xt.format,xt.parse,xt.utcFormat,xt.utcParse,xt}function Ti(t){return new Date(t)}function vi(t){return t instanceof Date?+t:+new Date(+t)}function hn(t,e,n,r,i,s,a,k,Y,g){var b=Nn(),U=b.invert,C=b.domain,v=g(".%L"),q=g(":%S"),y=g("%I:%M"),L=g("%I %p"),O=g("%a %d"),W=g("%b %d"),B=g("%B"),Z=g("%Y");function Q(x){return(Y(x)4&&(v+=7),C.add(v,n));return q.diff(y,"week")+1},k.isoWeekday=function(g){return this.$utils().u(g)?this.day()||7:this.day(this.day()%7?g:g-7)};var Y=k.startOf;k.startOf=function(g,b){var U=this.$utils(),C=!!U.u(b)||b;return U.p(g)==="isoweek"?C?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):Y.bind(this)(g,b)}}})})(dn);var xi=dn.exports;const wi=ke(xi);var mn={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(ye,function(){var n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},r=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d\d/,s=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,k={},Y=function(y){return(y=+y)+(y>68?1900:2e3)},g=function(y){return function(L){this[y]=+L}},b=[/[+-]\d\d:?(\d\d)?|Z/,function(y){(this.zone||(this.zone={})).offset=function(L){if(!L||L==="Z")return 0;var O=L.match(/([+-]|\d\d)/g),W=60*O[1]+(+O[2]||0);return W===0?0:O[0]==="+"?-W:W}(y)}],U=function(y){var L=k[y];return L&&(L.indexOf?L:L.s.concat(L.f))},C=function(y,L){var O,W=k.meridiem;if(W){for(var B=1;B<=24;B+=1)if(y.indexOf(W(B,0,L))>-1){O=B>12;break}}else O=y===(L?"pm":"PM");return O},v={A:[a,function(y){this.afternoon=C(y,!1)}],a:[a,function(y){this.afternoon=C(y,!0)}],S:[/\d/,function(y){this.milliseconds=100*+y}],SS:[i,function(y){this.milliseconds=10*+y}],SSS:[/\d{3}/,function(y){this.milliseconds=+y}],s:[s,g("seconds")],ss:[s,g("seconds")],m:[s,g("minutes")],mm:[s,g("minutes")],H:[s,g("hours")],h:[s,g("hours")],HH:[s,g("hours")],hh:[s,g("hours")],D:[s,g("day")],DD:[i,g("day")],Do:[a,function(y){var L=k.ordinal,O=y.match(/\d+/);if(this.day=O[0],L)for(var W=1;W<=31;W+=1)L(W).replace(/\[|\]/g,"")===y&&(this.day=W)}],M:[s,g("month")],MM:[i,g("month")],MMM:[a,function(y){var L=U("months"),O=(U("monthsShort")||L.map(function(W){return W.slice(0,3)})).indexOf(y)+1;if(O<1)throw new Error;this.month=O%12||O}],MMMM:[a,function(y){var L=U("months").indexOf(y)+1;if(L<1)throw new Error;this.month=L%12||L}],Y:[/[+-]?\d+/,g("year")],YY:[i,function(y){this.year=Y(y)}],YYYY:[/\d{4}/,g("year")],Z:b,ZZ:b};function q(y){var L,O;L=y,O=k&&k.formats;for(var W=(y=L.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(F,D,w){var o=w&&w.toUpperCase();return D||O[w]||n[w]||O[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(d,m,u){return m||u.slice(1)})})).match(r),B=W.length,Z=0;Z-1)return new Date((c==="X"?1e3:1)*S);var f=q(c)(S),h=f.year,_=f.month,G=f.day,H=f.hours,V=f.minutes,I=f.seconds,z=f.milliseconds,st=f.zone,it=new Date,p=G||(h||_?1:it.getDate()),A=h||it.getFullYear(),M=0;h&&!_||(M=_>0?_-1:it.getMonth());var l=H||0,R=V||0,N=I||0,j=z||0;return st?new Date(Date.UTC(A,M,p,l,R,N,j+60*st.offset*1e3)):X?new Date(Date.UTC(A,M,p,l,R,N,j)):new Date(A,M,p,l,R,N,j)}catch{return new Date("")}}(Q,T,x),this.init(),o&&o!==!0&&(this.$L=this.locale(o).$L),w&&Q!=this.format(T)&&(this.$d=new Date("")),k={}}else if(T instanceof Array)for(var d=T.length,m=1;m<=d;m+=1){E[1]=T[m-1];var u=O.apply(this,E);if(u.isValid()){this.$d=u.$d,this.$L=u.$L,this.init();break}m===d&&(this.$d=new Date(""))}else B.call(this,Z)}}})})(mn);var Ci=mn.exports;const Di=ke(Ci);var gn={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(ye,function(){return function(n,r){var i=r.prototype,s=i.format;i.format=function(a){var k=this,Y=this.$locale();if(!this.isValid())return s.bind(this)(a);var g=this.$utils(),b=(a||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(U){switch(U){case"Q":return Math.ceil((k.$M+1)/3);case"Do":return Y.ordinal(k.$D);case"gggg":return k.weekYear();case"GGGG":return k.isoWeekYear();case"wo":return Y.ordinal(k.week(),"W");case"w":case"ww":return g.s(k.week(),U==="w"?1:2,"0");case"W":case"WW":return g.s(k.isoWeek(),U==="W"?1:2,"0");case"k":case"kk":return g.s(String(k.$H===0?24:k.$H),U==="k"?1:2,"0");case"X":return Math.floor(k.$d.getTime()/1e3);case"x":return k.$d.getTime();case"z":return"["+k.offsetName()+"]";case"zzz":return"["+k.offsetName("long")+"]";default:return U}});return s.bind(this)(b)}}})})(gn);var Mi=gn.exports;const Si=ke(Mi);var he=function(){var t=function(w,o,d,m){for(d=d||{},m=w.length;m--;d[w[m]]=o);return d},e=[6,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,32,33,35,37],n=[1,25],r=[1,26],i=[1,27],s=[1,28],a=[1,29],k=[1,30],Y=[1,31],g=[1,9],b=[1,10],U=[1,11],C=[1,12],v=[1,13],q=[1,14],y=[1,15],L=[1,16],O=[1,18],W=[1,19],B=[1,20],Z=[1,21],Q=[1,22],x=[1,24],E=[1,32],T={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,dateFormat:19,inclusiveEndDates:20,topAxis:21,axisFormat:22,tickInterval:23,excludes:24,includes:25,todayMarker:26,title:27,acc_title:28,acc_title_value:29,acc_descr:30,acc_descr_value:31,acc_descr_multiline_value:32,section:33,clickStatement:34,taskTxt:35,taskData:36,click:37,callbackname:38,callbackargs:39,href:40,clickStatementDebug:41,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",19:"dateFormat",20:"inclusiveEndDates",21:"topAxis",22:"axisFormat",23:"tickInterval",24:"excludes",25:"includes",26:"todayMarker",27:"title",28:"acc_title",29:"acc_title_value",30:"acc_descr",31:"acc_descr_value",32:"acc_descr_multiline_value",33:"section",35:"taskTxt",36:"taskData",37:"click",38:"callbackname",39:"callbackargs",40:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[34,2],[34,3],[34,3],[34,4],[34,3],[34,4],[34,2],[41,2],[41,3],[41,3],[41,4],[41,3],[41,4],[41,2]],performAction:function(o,d,m,u,S,c,X){var f=c.length-1;switch(S){case 1:return c[f-1];case 2:this.$=[];break;case 3:c[f-1].push(c[f]),this.$=c[f-1];break;case 4:case 5:this.$=c[f];break;case 6:case 7:this.$=[];break;case 8:u.setWeekday("monday");break;case 9:u.setWeekday("tuesday");break;case 10:u.setWeekday("wednesday");break;case 11:u.setWeekday("thursday");break;case 12:u.setWeekday("friday");break;case 13:u.setWeekday("saturday");break;case 14:u.setWeekday("sunday");break;case 15:u.setDateFormat(c[f].substr(11)),this.$=c[f].substr(11);break;case 16:u.enableInclusiveEndDates(),this.$=c[f].substr(18);break;case 17:u.TopAxis(),this.$=c[f].substr(8);break;case 18:u.setAxisFormat(c[f].substr(11)),this.$=c[f].substr(11);break;case 19:u.setTickInterval(c[f].substr(13)),this.$=c[f].substr(13);break;case 20:u.setExcludes(c[f].substr(9)),this.$=c[f].substr(9);break;case 21:u.setIncludes(c[f].substr(9)),this.$=c[f].substr(9);break;case 22:u.setTodayMarker(c[f].substr(12)),this.$=c[f].substr(12);break;case 24:u.setDiagramTitle(c[f].substr(6)),this.$=c[f].substr(6);break;case 25:this.$=c[f].trim(),u.setAccTitle(this.$);break;case 26:case 27:this.$=c[f].trim(),u.setAccDescription(this.$);break;case 28:u.addSection(c[f].substr(8)),this.$=c[f].substr(8);break;case 30:u.addTask(c[f-1],c[f]),this.$="task";break;case 31:this.$=c[f-1],u.setClickEvent(c[f-1],c[f],null);break;case 32:this.$=c[f-2],u.setClickEvent(c[f-2],c[f-1],c[f]);break;case 33:this.$=c[f-2],u.setClickEvent(c[f-2],c[f-1],null),u.setLink(c[f-2],c[f]);break;case 34:this.$=c[f-3],u.setClickEvent(c[f-3],c[f-2],c[f-1]),u.setLink(c[f-3],c[f]);break;case 35:this.$=c[f-2],u.setClickEvent(c[f-2],c[f],null),u.setLink(c[f-2],c[f-1]);break;case 36:this.$=c[f-3],u.setClickEvent(c[f-3],c[f-1],c[f]),u.setLink(c[f-3],c[f-2]);break;case 37:this.$=c[f-1],u.setLink(c[f-1],c[f]);break;case 38:case 44:this.$=c[f-1]+" "+c[f];break;case 39:case 40:case 42:this.$=c[f-2]+" "+c[f-1]+" "+c[f];break;case 41:case 43:this.$=c[f-3]+" "+c[f-2]+" "+c[f-1]+" "+c[f];break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:r,14:i,15:s,16:a,17:k,18:Y,19:g,20:b,21:U,22:C,23:v,24:q,25:y,26:L,27:O,28:W,30:B,32:Z,33:Q,34:23,35:x,37:E},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:33,11:17,12:n,13:r,14:i,15:s,16:a,17:k,18:Y,19:g,20:b,21:U,22:C,23:v,24:q,25:y,26:L,27:O,28:W,30:B,32:Z,33:Q,34:23,35:x,37:E},t(e,[2,5]),t(e,[2,6]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),{29:[1,34]},{31:[1,35]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),{36:[1,36]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),{38:[1,37],40:[1,38]},t(e,[2,4]),t(e,[2,25]),t(e,[2,26]),t(e,[2,30]),t(e,[2,31],{39:[1,39],40:[1,40]}),t(e,[2,37],{38:[1,41]}),t(e,[2,32],{40:[1,42]}),t(e,[2,33]),t(e,[2,35],{39:[1,43]}),t(e,[2,34]),t(e,[2,36])],defaultActions:{},parseError:function(o,d){if(d.recoverable)this.trace(o);else{var m=new Error(o);throw m.hash=d,m}},parse:function(o){var d=this,m=[0],u=[],S=[null],c=[],X=this.table,f="",h=0,_=0,G=2,H=1,V=c.slice.call(arguments,1),I=Object.create(this.lexer),z={yy:{}};for(var st in this.yy)Object.prototype.hasOwnProperty.call(this.yy,st)&&(z.yy[st]=this.yy[st]);I.setInput(o,z.yy),z.yy.lexer=I,z.yy.parser=this,typeof I.yylloc>"u"&&(I.yylloc={});var it=I.yylloc;c.push(it);var p=I.options&&I.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function A(){var ct;return ct=u.pop()||I.lex()||H,typeof ct!="number"&&(ct instanceof Array&&(u=ct,ct=u.pop()),ct=d.symbols_[ct]||ct),ct}for(var M,l,R,N,j={},J,et,Ut,zt;;){if(l=m[m.length-1],this.defaultActions[l]?R=this.defaultActions[l]:((M===null||typeof M>"u")&&(M=A()),R=X[l]&&X[l][M]),typeof R>"u"||!R.length||!R[0]){var $t="";zt=[];for(J in X[l])this.terminals_[J]&&J>G&&zt.push("'"+this.terminals_[J]+"'");I.showPosition?$t="Parse error on line "+(h+1)+`: +import{au as Be,av as Ze,aw as Xe,ax as qe,ay as Dn,az as Kt,aA as Mn,aB as ye,aC as ke,aD as nt,c as wt,s as Sn,g as _n,x as Un,y as Yn,b as Fn,a as Ln,A as An,m as En,l as qt,h as Pt,i as In,j as Wn,z as On}from"./mermaid.core-D8sVPjx9.js";import{b as Hn,t as Ue,c as Nn,a as Vn,l as zn}from"./linear-DPKUxXbT.js";import{i as Pn}from"./init-Gi6I4Gst.js";import"./app-B7rxM88G.js";function Rn(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n=i)&&(n=i)}return n}function Bn(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function Zn(t){return t}var Bt=1,te=2,ue=3,Rt=4,Ye=1e-6;function Xn(t){return"translate("+t+",0)"}function qn(t){return"translate(0,"+t+")"}function Gn(t){return e=>+t(e)}function jn(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function Qn(){return!this.__axis}function Ge(t,e){var n=[],r=null,i=null,s=6,a=6,k=3,Y=typeof window<"u"&&window.devicePixelRatio>1?0:.5,g=t===Bt||t===Rt?-1:1,b=t===Rt||t===te?"x":"y",U=t===Bt||t===ue?Xn:qn;function C(v){var q=r??(e.ticks?e.ticks.apply(e,n):e.domain()),y=i??(e.tickFormat?e.tickFormat.apply(e,n):Zn),L=Math.max(s,0)+k,O=e.range(),W=+O[0]+Y,B=+O[O.length-1]+Y,Z=(e.bandwidth?jn:Gn)(e.copy(),Y),Q=v.selection?v.selection():v,x=Q.selectAll(".domain").data([null]),E=Q.selectAll(".tick").data(q,e).order(),T=E.exit(),F=E.enter().append("g").attr("class","tick"),D=E.select("line"),w=E.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),E=E.merge(F),D=D.merge(F.append("line").attr("stroke","currentColor").attr(b+"2",g*s)),w=w.merge(F.append("text").attr("fill","currentColor").attr(b,g*L).attr("dy",t===Bt?"0em":t===ue?"0.71em":"0.32em")),v!==Q&&(x=x.transition(v),E=E.transition(v),D=D.transition(v),w=w.transition(v),T=T.transition(v).attr("opacity",Ye).attr("transform",function(o){return isFinite(o=Z(o))?U(o+Y):this.getAttribute("transform")}),F.attr("opacity",Ye).attr("transform",function(o){var d=this.parentNode.__axis;return U((d&&isFinite(d=d(o))?d:Z(o))+Y)})),T.remove(),x.attr("d",t===Rt||t===te?a?"M"+g*a+","+W+"H"+Y+"V"+B+"H"+g*a:"M"+Y+","+W+"V"+B:a?"M"+W+","+g*a+"V"+Y+"H"+B+"V"+g*a:"M"+W+","+Y+"H"+B),E.attr("opacity",1).attr("transform",function(o){return U(Z(o)+Y)}),D.attr(b+"2",g*s),w.attr(b,g*L).text(y),Q.filter(Qn).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===te?"start":t===Rt?"end":"middle"),Q.each(function(){this.__axis=Z})}return C.scale=function(v){return arguments.length?(e=v,C):e},C.ticks=function(){return n=Array.from(arguments),C},C.tickArguments=function(v){return arguments.length?(n=v==null?[]:Array.from(v),C):n.slice()},C.tickValues=function(v){return arguments.length?(r=v==null?null:Array.from(v),C):r&&r.slice()},C.tickFormat=function(v){return arguments.length?(i=v,C):i},C.tickSize=function(v){return arguments.length?(s=a=+v,C):s},C.tickSizeInner=function(v){return arguments.length?(s=+v,C):s},C.tickSizeOuter=function(v){return arguments.length?(a=+v,C):a},C.tickPadding=function(v){return arguments.length?(k=+v,C):k},C.offset=function(v){return arguments.length?(Y=+v,C):Y},C}function Jn(t){return Ge(Bt,t)}function $n(t){return Ge(ue,t)}const Kn=Math.PI/180,tr=180/Math.PI,Gt=18,je=.96422,Qe=1,Je=.82521,$e=4/29,Ct=6/29,Ke=3*Ct*Ct,er=Ct*Ct*Ct;function tn(t){if(t instanceof ot)return new ot(t.l,t.a,t.b,t.opacity);if(t instanceof ut)return en(t);t instanceof Xe||(t=Dn(t));var e=ie(t.r),n=ie(t.g),r=ie(t.b),i=ee((.2225045*e+.7168786*n+.0606169*r)/Qe),s,a;return e===n&&n===r?s=a=i:(s=ee((.4360747*e+.3850649*n+.1430804*r)/je),a=ee((.0139322*e+.0971045*n+.7141733*r)/Je)),new ot(116*i-16,500*(s-i),200*(i-a),t.opacity)}function nr(t,e,n,r){return arguments.length===1?tn(t):new ot(t,e,n,r??1)}function ot(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}Be(ot,nr,Ze(qe,{brighter(t){return new ot(this.l+Gt*(t??1),this.a,this.b,this.opacity)},darker(t){return new ot(this.l-Gt*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=je*ne(e),t=Qe*ne(t),n=Je*ne(n),new Xe(re(3.1338561*e-1.6168667*t-.4906146*n),re(-.9787684*e+1.9161415*t+.033454*n),re(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function ee(t){return t>er?Math.pow(t,1/3):t/Ke+$e}function ne(t){return t>Ct?t*t*t:Ke*(t-$e)}function re(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ie(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function rr(t){if(t instanceof ut)return new ut(t.h,t.c,t.l,t.opacity);if(t instanceof ot||(t=tn(t)),t.a===0&&t.b===0)return new ut(NaN,0(t(s=new Date(+s)),s),i.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),i.round=s=>{const a=i(s),k=i.ceil(s);return s-a(e(s=new Date(+s),a==null?1:Math.floor(a)),s),i.range=(s,a,k)=>{const Y=[];if(s=i.ceil(s),k=k==null?1:Math.floor(k),!(s0))return Y;let g;do Y.push(g=new Date(+s)),e(s,k),t(s);while(gK(a=>{if(a>=a)for(;t(a),!s(a);)a.setTime(a-1)},(a,k)=>{if(a>=a)if(k<0)for(;++k<=0;)for(;e(a,-1),!s(a););else for(;--k>=0;)for(;e(a,1),!s(a););}),n&&(i.count=(s,a)=>(se.setTime(+s),ae.setTime(+a),t(se),t(ae),Math.floor(n(se,ae))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(r?a=>r(a)%s===0:a=>i.count(0,a)%s===0):i)),i}const Mt=K(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Mt.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?K(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):Mt);Mt.range;const ft=1e3,rt=ft*60,ht=rt*60,dt=ht*24,pe=dt*7,Fe=dt*30,oe=dt*365,gt=K(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*ft)},(t,e)=>(e-t)/ft,t=>t.getUTCSeconds());gt.range;const At=K(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ft)},(t,e)=>{t.setTime(+t+e*rt)},(t,e)=>(e-t)/rt,t=>t.getMinutes());At.range;const or=K(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*rt)},(t,e)=>(e-t)/rt,t=>t.getUTCMinutes());or.range;const Et=K(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*ft-t.getMinutes()*rt)},(t,e)=>{t.setTime(+t+e*ht)},(t,e)=>(e-t)/ht,t=>t.getHours());Et.range;const cr=K(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*ht)},(t,e)=>(e-t)/ht,t=>t.getUTCHours());cr.range;const yt=K(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*rt)/dt,t=>t.getDate()-1);yt.range;const Te=K(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/dt,t=>t.getUTCDate()-1);Te.range;const lr=K(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/dt,t=>Math.floor(t/dt));lr.range;function Tt(t){return K(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*rt)/pe)}const Ot=Tt(0),It=Tt(1),nn=Tt(2),rn=Tt(3),kt=Tt(4),sn=Tt(5),an=Tt(6);Ot.range;It.range;nn.range;rn.range;kt.range;sn.range;an.range;function vt(t){return K(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/pe)}const on=vt(0),jt=vt(1),ur=vt(2),fr=vt(3),St=vt(4),hr=vt(5),dr=vt(6);on.range;jt.range;ur.range;fr.range;St.range;hr.range;dr.range;const Wt=K(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());Wt.range;const mr=K(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());mr.range;const mt=K(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());mt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:K(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});mt.range;const pt=K(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());pt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:K(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});pt.range;function gr(t,e,n,r,i,s){const a=[[gt,1,ft],[gt,5,5*ft],[gt,15,15*ft],[gt,30,30*ft],[s,1,rt],[s,5,5*rt],[s,15,15*rt],[s,30,30*rt],[i,1,ht],[i,3,3*ht],[i,6,6*ht],[i,12,12*ht],[r,1,dt],[r,2,2*dt],[n,1,pe],[e,1,Fe],[e,3,3*Fe],[t,1,oe]];function k(g,b,U){const C=bL).right(a,C);if(v===a.length)return t.every(Ue(g/oe,b/oe,U));if(v===0)return Mt.every(Math.max(Ue(g,b,U),1));const[q,y]=a[C/a[v-1][2]53)return null;"w"in l||(l.w=1),"Z"in l?(N=le(Yt(l.y,0,1)),j=N.getUTCDay(),N=j>4||j===0?jt.ceil(N):jt(N),N=Te.offset(N,(l.V-1)*7),l.y=N.getUTCFullYear(),l.m=N.getUTCMonth(),l.d=N.getUTCDate()+(l.w+6)%7):(N=ce(Yt(l.y,0,1)),j=N.getDay(),N=j>4||j===0?It.ceil(N):It(N),N=yt.offset(N,(l.V-1)*7),l.y=N.getFullYear(),l.m=N.getMonth(),l.d=N.getDate()+(l.w+6)%7)}else("W"in l||"U"in l)&&("w"in l||(l.w="u"in l?l.u%7:"W"in l?1:0),j="Z"in l?le(Yt(l.y,0,1)).getUTCDay():ce(Yt(l.y,0,1)).getDay(),l.m=0,l.d="W"in l?(l.w+6)%7+l.W*7-(j+5)%7:l.w+l.U*7-(j+6)%7);return"Z"in l?(l.H+=l.Z/100|0,l.M+=l.Z%100,le(l)):ce(l)}}function T(p,A,M,l){for(var R=0,N=A.length,j=M.length,J,et;R=j)return-1;if(J=A.charCodeAt(R++),J===37){if(J=A.charAt(R++),et=Q[J in Le?A.charAt(R++):J],!et||(l=et(p,M,l))<0)return-1}else if(J!=M.charCodeAt(l++))return-1}return l}function F(p,A,M){var l=g.exec(A.slice(M));return l?(p.p=b.get(l[0].toLowerCase()),M+l[0].length):-1}function D(p,A,M){var l=v.exec(A.slice(M));return l?(p.w=q.get(l[0].toLowerCase()),M+l[0].length):-1}function w(p,A,M){var l=U.exec(A.slice(M));return l?(p.w=C.get(l[0].toLowerCase()),M+l[0].length):-1}function o(p,A,M){var l=O.exec(A.slice(M));return l?(p.m=W.get(l[0].toLowerCase()),M+l[0].length):-1}function d(p,A,M){var l=y.exec(A.slice(M));return l?(p.m=L.get(l[0].toLowerCase()),M+l[0].length):-1}function m(p,A,M){return T(p,e,A,M)}function u(p,A,M){return T(p,n,A,M)}function S(p,A,M){return T(p,r,A,M)}function c(p){return a[p.getDay()]}function X(p){return s[p.getDay()]}function f(p){return Y[p.getMonth()]}function h(p){return k[p.getMonth()]}function _(p){return i[+(p.getHours()>=12)]}function G(p){return 1+~~(p.getMonth()/3)}function H(p){return a[p.getUTCDay()]}function V(p){return s[p.getUTCDay()]}function I(p){return Y[p.getUTCMonth()]}function z(p){return k[p.getUTCMonth()]}function st(p){return i[+(p.getUTCHours()>=12)]}function it(p){return 1+~~(p.getUTCMonth()/3)}return{format:function(p){var A=x(p+="",B);return A.toString=function(){return p},A},parse:function(p){var A=E(p+="",!1);return A.toString=function(){return p},A},utcFormat:function(p){var A=x(p+="",Z);return A.toString=function(){return p},A},utcParse:function(p){var A=E(p+="",!0);return A.toString=function(){return p},A}}}var Le={"-":"",_:" ",0:"0"},tt=/^\s*\d+/,Tr=/^%/,vr=/[\\^$*+?|[\]().{}]/g;function P(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",s=i.length;return r+(s[e.toLowerCase(),n]))}function xr(t,e,n){var r=tt.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function wr(t,e,n){var r=tt.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Cr(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Dr(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Mr(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Ae(t,e,n){var r=tt.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Ee(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Sr(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function _r(t,e,n){var r=tt.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Ur(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Ie(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Yr(t,e,n){var r=tt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function We(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function Fr(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function Lr(t,e,n){var r=tt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Ar(t,e,n){var r=tt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Er(t,e,n){var r=tt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Ir(t,e,n){var r=Tr.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Wr(t,e,n){var r=tt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function Or(t,e,n){var r=tt.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Oe(t,e){return P(t.getDate(),e,2)}function Hr(t,e){return P(t.getHours(),e,2)}function Nr(t,e){return P(t.getHours()%12||12,e,2)}function Vr(t,e){return P(1+yt.count(mt(t),t),e,3)}function cn(t,e){return P(t.getMilliseconds(),e,3)}function zr(t,e){return cn(t,e)+"000"}function Pr(t,e){return P(t.getMonth()+1,e,2)}function Rr(t,e){return P(t.getMinutes(),e,2)}function Br(t,e){return P(t.getSeconds(),e,2)}function Zr(t){var e=t.getDay();return e===0?7:e}function Xr(t,e){return P(Ot.count(mt(t)-1,t),e,2)}function ln(t){var e=t.getDay();return e>=4||e===0?kt(t):kt.ceil(t)}function qr(t,e){return t=ln(t),P(kt.count(mt(t),t)+(mt(t).getDay()===4),e,2)}function Gr(t){return t.getDay()}function jr(t,e){return P(It.count(mt(t)-1,t),e,2)}function Qr(t,e){return P(t.getFullYear()%100,e,2)}function Jr(t,e){return t=ln(t),P(t.getFullYear()%100,e,2)}function $r(t,e){return P(t.getFullYear()%1e4,e,4)}function Kr(t,e){var n=t.getDay();return t=n>=4||n===0?kt(t):kt.ceil(t),P(t.getFullYear()%1e4,e,4)}function ti(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+P(e/60|0,"0",2)+P(e%60,"0",2)}function He(t,e){return P(t.getUTCDate(),e,2)}function ei(t,e){return P(t.getUTCHours(),e,2)}function ni(t,e){return P(t.getUTCHours()%12||12,e,2)}function ri(t,e){return P(1+Te.count(pt(t),t),e,3)}function un(t,e){return P(t.getUTCMilliseconds(),e,3)}function ii(t,e){return un(t,e)+"000"}function si(t,e){return P(t.getUTCMonth()+1,e,2)}function ai(t,e){return P(t.getUTCMinutes(),e,2)}function oi(t,e){return P(t.getUTCSeconds(),e,2)}function ci(t){var e=t.getUTCDay();return e===0?7:e}function li(t,e){return P(on.count(pt(t)-1,t),e,2)}function fn(t){var e=t.getUTCDay();return e>=4||e===0?St(t):St.ceil(t)}function ui(t,e){return t=fn(t),P(St.count(pt(t),t)+(pt(t).getUTCDay()===4),e,2)}function fi(t){return t.getUTCDay()}function hi(t,e){return P(jt.count(pt(t)-1,t),e,2)}function di(t,e){return P(t.getUTCFullYear()%100,e,2)}function mi(t,e){return t=fn(t),P(t.getUTCFullYear()%100,e,2)}function gi(t,e){return P(t.getUTCFullYear()%1e4,e,4)}function yi(t,e){var n=t.getUTCDay();return t=n>=4||n===0?St(t):St.ceil(t),P(t.getUTCFullYear()%1e4,e,4)}function ki(){return"+0000"}function Ne(){return"%"}function Ve(t){return+t}function ze(t){return Math.floor(+t/1e3)}var xt,Qt;pi({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function pi(t){return xt=pr(t),Qt=xt.format,xt.parse,xt.utcFormat,xt.utcParse,xt}function Ti(t){return new Date(t)}function vi(t){return t instanceof Date?+t:+new Date(+t)}function hn(t,e,n,r,i,s,a,k,Y,g){var b=Nn(),U=b.invert,C=b.domain,v=g(".%L"),q=g(":%S"),y=g("%I:%M"),L=g("%I %p"),O=g("%a %d"),W=g("%b %d"),B=g("%B"),Z=g("%Y");function Q(x){return(Y(x)4&&(v+=7),C.add(v,n));return q.diff(y,"week")+1},k.isoWeekday=function(g){return this.$utils().u(g)?this.day()||7:this.day(this.day()%7?g:g-7)};var Y=k.startOf;k.startOf=function(g,b){var U=this.$utils(),C=!!U.u(b)||b;return U.p(g)==="isoweek"?C?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):Y.bind(this)(g,b)}}})})(dn);var xi=dn.exports;const wi=ke(xi);var mn={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(ye,function(){var n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},r=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d\d/,s=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,k={},Y=function(y){return(y=+y)+(y>68?1900:2e3)},g=function(y){return function(L){this[y]=+L}},b=[/[+-]\d\d:?(\d\d)?|Z/,function(y){(this.zone||(this.zone={})).offset=function(L){if(!L||L==="Z")return 0;var O=L.match(/([+-]|\d\d)/g),W=60*O[1]+(+O[2]||0);return W===0?0:O[0]==="+"?-W:W}(y)}],U=function(y){var L=k[y];return L&&(L.indexOf?L:L.s.concat(L.f))},C=function(y,L){var O,W=k.meridiem;if(W){for(var B=1;B<=24;B+=1)if(y.indexOf(W(B,0,L))>-1){O=B>12;break}}else O=y===(L?"pm":"PM");return O},v={A:[a,function(y){this.afternoon=C(y,!1)}],a:[a,function(y){this.afternoon=C(y,!0)}],S:[/\d/,function(y){this.milliseconds=100*+y}],SS:[i,function(y){this.milliseconds=10*+y}],SSS:[/\d{3}/,function(y){this.milliseconds=+y}],s:[s,g("seconds")],ss:[s,g("seconds")],m:[s,g("minutes")],mm:[s,g("minutes")],H:[s,g("hours")],h:[s,g("hours")],HH:[s,g("hours")],hh:[s,g("hours")],D:[s,g("day")],DD:[i,g("day")],Do:[a,function(y){var L=k.ordinal,O=y.match(/\d+/);if(this.day=O[0],L)for(var W=1;W<=31;W+=1)L(W).replace(/\[|\]/g,"")===y&&(this.day=W)}],M:[s,g("month")],MM:[i,g("month")],MMM:[a,function(y){var L=U("months"),O=(U("monthsShort")||L.map(function(W){return W.slice(0,3)})).indexOf(y)+1;if(O<1)throw new Error;this.month=O%12||O}],MMMM:[a,function(y){var L=U("months").indexOf(y)+1;if(L<1)throw new Error;this.month=L%12||L}],Y:[/[+-]?\d+/,g("year")],YY:[i,function(y){this.year=Y(y)}],YYYY:[/\d{4}/,g("year")],Z:b,ZZ:b};function q(y){var L,O;L=y,O=k&&k.formats;for(var W=(y=L.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(F,D,w){var o=w&&w.toUpperCase();return D||O[w]||n[w]||O[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(d,m,u){return m||u.slice(1)})})).match(r),B=W.length,Z=0;Z-1)return new Date((c==="X"?1e3:1)*S);var f=q(c)(S),h=f.year,_=f.month,G=f.day,H=f.hours,V=f.minutes,I=f.seconds,z=f.milliseconds,st=f.zone,it=new Date,p=G||(h||_?1:it.getDate()),A=h||it.getFullYear(),M=0;h&&!_||(M=_>0?_-1:it.getMonth());var l=H||0,R=V||0,N=I||0,j=z||0;return st?new Date(Date.UTC(A,M,p,l,R,N,j+60*st.offset*1e3)):X?new Date(Date.UTC(A,M,p,l,R,N,j)):new Date(A,M,p,l,R,N,j)}catch{return new Date("")}}(Q,T,x),this.init(),o&&o!==!0&&(this.$L=this.locale(o).$L),w&&Q!=this.format(T)&&(this.$d=new Date("")),k={}}else if(T instanceof Array)for(var d=T.length,m=1;m<=d;m+=1){E[1]=T[m-1];var u=O.apply(this,E);if(u.isValid()){this.$d=u.$d,this.$L=u.$L,this.init();break}m===d&&(this.$d=new Date(""))}else B.call(this,Z)}}})})(mn);var Ci=mn.exports;const Di=ke(Ci);var gn={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(ye,function(){return function(n,r){var i=r.prototype,s=i.format;i.format=function(a){var k=this,Y=this.$locale();if(!this.isValid())return s.bind(this)(a);var g=this.$utils(),b=(a||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(U){switch(U){case"Q":return Math.ceil((k.$M+1)/3);case"Do":return Y.ordinal(k.$D);case"gggg":return k.weekYear();case"GGGG":return k.isoWeekYear();case"wo":return Y.ordinal(k.week(),"W");case"w":case"ww":return g.s(k.week(),U==="w"?1:2,"0");case"W":case"WW":return g.s(k.isoWeek(),U==="W"?1:2,"0");case"k":case"kk":return g.s(String(k.$H===0?24:k.$H),U==="k"?1:2,"0");case"X":return Math.floor(k.$d.getTime()/1e3);case"x":return k.$d.getTime();case"z":return"["+k.offsetName()+"]";case"zzz":return"["+k.offsetName("long")+"]";default:return U}});return s.bind(this)(b)}}})})(gn);var Mi=gn.exports;const Si=ke(Mi);var he=function(){var t=function(w,o,d,m){for(d=d||{},m=w.length;m--;d[w[m]]=o);return d},e=[6,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,30,32,33,35,37],n=[1,25],r=[1,26],i=[1,27],s=[1,28],a=[1,29],k=[1,30],Y=[1,31],g=[1,9],b=[1,10],U=[1,11],C=[1,12],v=[1,13],q=[1,14],y=[1,15],L=[1,16],O=[1,18],W=[1,19],B=[1,20],Z=[1,21],Q=[1,22],x=[1,24],E=[1,32],T={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,dateFormat:19,inclusiveEndDates:20,topAxis:21,axisFormat:22,tickInterval:23,excludes:24,includes:25,todayMarker:26,title:27,acc_title:28,acc_title_value:29,acc_descr:30,acc_descr_value:31,acc_descr_multiline_value:32,section:33,clickStatement:34,taskTxt:35,taskData:36,click:37,callbackname:38,callbackargs:39,href:40,clickStatementDebug:41,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",19:"dateFormat",20:"inclusiveEndDates",21:"topAxis",22:"axisFormat",23:"tickInterval",24:"excludes",25:"includes",26:"todayMarker",27:"title",28:"acc_title",29:"acc_title_value",30:"acc_descr",31:"acc_descr_value",32:"acc_descr_multiline_value",33:"section",35:"taskTxt",36:"taskData",37:"click",38:"callbackname",39:"callbackargs",40:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[34,2],[34,3],[34,3],[34,4],[34,3],[34,4],[34,2],[41,2],[41,3],[41,3],[41,4],[41,3],[41,4],[41,2]],performAction:function(o,d,m,u,S,c,X){var f=c.length-1;switch(S){case 1:return c[f-1];case 2:this.$=[];break;case 3:c[f-1].push(c[f]),this.$=c[f-1];break;case 4:case 5:this.$=c[f];break;case 6:case 7:this.$=[];break;case 8:u.setWeekday("monday");break;case 9:u.setWeekday("tuesday");break;case 10:u.setWeekday("wednesday");break;case 11:u.setWeekday("thursday");break;case 12:u.setWeekday("friday");break;case 13:u.setWeekday("saturday");break;case 14:u.setWeekday("sunday");break;case 15:u.setDateFormat(c[f].substr(11)),this.$=c[f].substr(11);break;case 16:u.enableInclusiveEndDates(),this.$=c[f].substr(18);break;case 17:u.TopAxis(),this.$=c[f].substr(8);break;case 18:u.setAxisFormat(c[f].substr(11)),this.$=c[f].substr(11);break;case 19:u.setTickInterval(c[f].substr(13)),this.$=c[f].substr(13);break;case 20:u.setExcludes(c[f].substr(9)),this.$=c[f].substr(9);break;case 21:u.setIncludes(c[f].substr(9)),this.$=c[f].substr(9);break;case 22:u.setTodayMarker(c[f].substr(12)),this.$=c[f].substr(12);break;case 24:u.setDiagramTitle(c[f].substr(6)),this.$=c[f].substr(6);break;case 25:this.$=c[f].trim(),u.setAccTitle(this.$);break;case 26:case 27:this.$=c[f].trim(),u.setAccDescription(this.$);break;case 28:u.addSection(c[f].substr(8)),this.$=c[f].substr(8);break;case 30:u.addTask(c[f-1],c[f]),this.$="task";break;case 31:this.$=c[f-1],u.setClickEvent(c[f-1],c[f],null);break;case 32:this.$=c[f-2],u.setClickEvent(c[f-2],c[f-1],c[f]);break;case 33:this.$=c[f-2],u.setClickEvent(c[f-2],c[f-1],null),u.setLink(c[f-2],c[f]);break;case 34:this.$=c[f-3],u.setClickEvent(c[f-3],c[f-2],c[f-1]),u.setLink(c[f-3],c[f]);break;case 35:this.$=c[f-2],u.setClickEvent(c[f-2],c[f],null),u.setLink(c[f-2],c[f-1]);break;case 36:this.$=c[f-3],u.setClickEvent(c[f-3],c[f-1],c[f]),u.setLink(c[f-3],c[f-2]);break;case 37:this.$=c[f-1],u.setLink(c[f-1],c[f]);break;case 38:case 44:this.$=c[f-1]+" "+c[f];break;case 39:case 40:case 42:this.$=c[f-2]+" "+c[f-1]+" "+c[f];break;case 41:case 43:this.$=c[f-3]+" "+c[f-2]+" "+c[f-1]+" "+c[f];break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:r,14:i,15:s,16:a,17:k,18:Y,19:g,20:b,21:U,22:C,23:v,24:q,25:y,26:L,27:O,28:W,30:B,32:Z,33:Q,34:23,35:x,37:E},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:33,11:17,12:n,13:r,14:i,15:s,16:a,17:k,18:Y,19:g,20:b,21:U,22:C,23:v,24:q,25:y,26:L,27:O,28:W,30:B,32:Z,33:Q,34:23,35:x,37:E},t(e,[2,5]),t(e,[2,6]),t(e,[2,15]),t(e,[2,16]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),{29:[1,34]},{31:[1,35]},t(e,[2,27]),t(e,[2,28]),t(e,[2,29]),{36:[1,36]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),{38:[1,37],40:[1,38]},t(e,[2,4]),t(e,[2,25]),t(e,[2,26]),t(e,[2,30]),t(e,[2,31],{39:[1,39],40:[1,40]}),t(e,[2,37],{38:[1,41]}),t(e,[2,32],{40:[1,42]}),t(e,[2,33]),t(e,[2,35],{39:[1,43]}),t(e,[2,34]),t(e,[2,36])],defaultActions:{},parseError:function(o,d){if(d.recoverable)this.trace(o);else{var m=new Error(o);throw m.hash=d,m}},parse:function(o){var d=this,m=[0],u=[],S=[null],c=[],X=this.table,f="",h=0,_=0,G=2,H=1,V=c.slice.call(arguments,1),I=Object.create(this.lexer),z={yy:{}};for(var st in this.yy)Object.prototype.hasOwnProperty.call(this.yy,st)&&(z.yy[st]=this.yy[st]);I.setInput(o,z.yy),z.yy.lexer=I,z.yy.parser=this,typeof I.yylloc>"u"&&(I.yylloc={});var it=I.yylloc;c.push(it);var p=I.options&&I.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function A(){var ct;return ct=u.pop()||I.lex()||H,typeof ct!="number"&&(ct instanceof Array&&(u=ct,ct=u.pop()),ct=d.symbols_[ct]||ct),ct}for(var M,l,R,N,j={},J,et,Ut,zt;;){if(l=m[m.length-1],this.defaultActions[l]?R=this.defaultActions[l]:((M===null||typeof M>"u")&&(M=A()),R=X[l]&&X[l][M]),typeof R>"u"||!R.length||!R[0]){var $t="";zt=[];for(J in X[l])this.terminals_[J]&&J>G&&zt.push("'"+this.terminals_[J]+"'");I.showPosition?$t="Parse error on line "+(h+1)+`: `+I.showPosition()+` Expecting `+zt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":$t="Parse error on line "+(h+1)+": Unexpected "+(M==H?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError($t,{text:I.match,token:this.terminals_[M]||M,line:I.yylineno,loc:it,expected:zt})}if(R[0]instanceof Array&&R.length>1)throw new Error("Parse Error: multiple actions possible at state: "+l+", token: "+M);switch(R[0]){case 1:m.push(M),S.push(I.yytext),c.push(I.yylloc),m.push(R[1]),M=null,_=I.yyleng,f=I.yytext,h=I.yylineno,it=I.yylloc;break;case 2:if(et=this.productions_[R[1]][1],j.$=S[S.length-et],j._$={first_line:c[c.length-(et||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(et||1)].first_column,last_column:c[c.length-1].last_column},p&&(j._$.range=[c[c.length-(et||1)].range[0],c[c.length-1].range[1]]),N=this.performAction.apply(j,[f,_,h,z.yy,R[1],S,c].concat(V)),typeof N<"u")return N;et&&(m=m.slice(0,-1*et*2),S=S.slice(0,-1*et),c=c.slice(0,-1*et)),m.push(this.productions_[R[1]][0]),S.push(j.$),c.push(j._$),Ut=X[m[m.length-2]][m[m.length-1]],m.push(Ut);break;case 3:return!0}}return!0}},F=function(){var w={EOF:1,parseError:function(d,m){if(this.yy.parser)this.yy.parser.parseError(d,m);else throw new Error(d)},setInput:function(o,d){return this.yy=d||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var d=o.match(/(?:\r\n?|\n).*/g);return d?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var d=o.length,m=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-d),this.offset-=d;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),m.length-1&&(this.yylineno-=m.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:m?(m.length===u.length?this.yylloc.first_column:0)+u[u.length-m.length].length-m[0].length:this.yylloc.first_column-d},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-d]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),d=new Array(o.length+1).join("-");return o+this.upcomingInput()+` diff --git a/assets/getting-started.html-B0WO7Lq0.js b/assets/getting-started.html-D1SQk_MT.js similarity index 98% rename from assets/getting-started.html-B0WO7Lq0.js rename to assets/getting-started.html-D1SQk_MT.js index 6a0e0db..4b7ccaa 100644 --- a/assets/getting-started.html-B0WO7Lq0.js +++ b/assets/getting-started.html-D1SQk_MT.js @@ -1,4 +1,4 @@ -import{_ as u}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as c,o as d,c as k,e as o,w as a,b as n,d as s,a as p}from"./app-BQ_RvZRm.js";const m={},v=n("h1",{id:"getting-started",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#getting-started"},[n("span",null,"Getting started")])],-1),b=n("h2",{id:"installation",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#installation"},[n("span",null,"Installation")])],-1),h=n("p",null,"You can install taskiq from pypi or directly from git using pip:",-1),g=n("div",{class:"language-bash","data-ext":"sh","data-title":"sh"},[n("pre",{class:"language-bash"},[n("code",null,[s("pip "),n("span",{class:"token function"},"install"),s(` taskiq +import{_ as u}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as c,o as d,c as k,e as o,w as a,b as n,d as s,a as p}from"./app-B7rxM88G.js";const m={},v=n("h1",{id:"getting-started",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#getting-started"},[n("span",null,"Getting started")])],-1),b=n("h2",{id:"installation",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#installation"},[n("span",null,"Installation")])],-1),h=n("p",null,"You can install taskiq from pypi or directly from git using pip:",-1),g=n("div",{class:"language-bash","data-ext":"sh","data-title":"sh"},[n("pre",{class:"language-bash"},[n("code",null,[s("pip "),n("span",{class:"token function"},"install"),s(` taskiq `)])])],-1),y=n("div",{class:"language-bash","data-ext":"sh","data-title":"sh"},[n("pre",{class:"language-bash"},[n("code",null,[s("pip "),n("span",{class:"token function"},"install"),s(` git+https://github.com/taskiq-python/taskiq.git `)])])],-1),w={href:"https://pypi.org/search/?q=taskiq",target:"_blank",rel:"noopener noreferrer"},_={class:"hint-container info"},f=n("p",{class:"hint-container-title"},"Cool tip!",-1),q={href:"https://pypi.org/project/taskiq-aio-pika/",target:"_blank",rel:"noopener noreferrer"},x={href:"https://pypi.org/project/taskiq-nats/",target:"_blank",rel:"noopener noreferrer"},A={href:"https://pypi.org/project/taskiq-redis/",target:"_blank",rel:"noopener noreferrer"},T=p(`

Running tasks

Now you need to create a python module with broker declaration. It's just a plain python file with the variable of your broker. For this particular example, I'm going to use the InMemoryBroker.

Important note

The InMemoryBroker doesn't send any data over the network, and you cannot use this broker in a real-world scenario, but it's still useful for local development if you do not want to set up a taskiq worker.

# broker.py
 from taskiq import InMemoryBroker
@@ -141,4 +141,4 @@ Returned value: 2
 `),n("span",{class:"token keyword"},"async"),s(),n("span",{class:"token keyword"},"def"),s(),n("span",{class:"token function"},"mytask"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},":"),s(`
     `),n("span",{class:"token keyword"},"await"),s(" asyncio"),n("span",{class:"token punctuation"},"."),s("sleep"),n("span",{class:"token punctuation"},"("),n("span",{class:"token number"},"2"),n("span",{class:"token punctuation"},")"),s(`
 `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),j=n("div",{class:"language-python line-numbers-mode","data-ext":"py","data-title":"py"},[n("pre",{class:"language-python"},[n("code",null,[n("span",{class:"token keyword"},"await"),s(" my_task"),n("span",{class:"token punctuation"},"."),s("kicker"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),s("with_labels"),n("span",{class:"token punctuation"},"("),s("timeout"),n("span",{class:"token operator"},"="),n("span",{class:"token number"},"0.3"),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},"."),s("kiq"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(`
-`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"})])],-1),F={class:"hint-container caution"},Q=n("p",{class:"hint-container-title"},"Cool alert",-1),G={href:"https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.run_in_executor",target:"_blank",rel:"noopener noreferrer"};function V(W,O){const l=c("Tabs"),i=c("ExternalLinkIcon"),r=c("RouteLink");return d(),k("div",null,[v,b,h,o(l,{id:"9",data:[{id:"pypi"},{id:"git"}]},{title0:a(({value:t,isActive:e})=>[s("pypi")]),title1:a(({value:t,isActive:e})=>[s("git")]),tab0:a(({value:t,isActive:e})=>[g]),tab1:a(({value:t,isActive:e})=>[y]),_:1}),n("p",null,[s("After installation of the core library, you need to find the broker that fits you. You can do it using "),n("a",w,[s("PyPI"),o(i)]),s(" search.")]),n("div",_,[f,n("p",null,[s("We highly recommend "),n("a",q,[s("taskiq-aio-pika"),o(i)]),s(" or "),n("a",x,[s("taskiq-nats"),o(i)]),s(" as the broker and "),n("a",A,[s("taskiq-redis"),o(i)]),s(" as the result backend for production use.")])]),T,n("p",null,[s('You can get more information about taskiq types, CLI and internal structure in the "'),o(r,{to:"/guide/architecture-overview.html"},{default:a(()=>[s("Architecture overview")]),_:1}),s('" section.')]),B,I,n("p",null,[s("At first we must install the "),n("a",R,[s("taskiq-aio-pika"),o(i)]),s(" lib.")]),M,o(l,{id:"83",data:[{id:"linux|macos"},{id:"windows"}]},{title0:a(({value:t,isActive:e})=>[s("linux|macos")]),title1:a(({value:t,isActive:e})=>[s("windows")]),tab0:a(({value:t,isActive:e})=>[N]),tab1:a(({value:t,isActive:e})=>[P]),_:1}),n("p",null,[s("Now we need to start worker process by running taskiq cli command. You can get more info about the CLI in the "),o(r,{to:"/guide/cli.html"},{default:a(()=>[s("CLI")]),_:1}),s(" section.")]),S,n("p",null,[s("But the printed result value is not correct. That happens because we didn't provide any result backend that can store results of task execution. To store results, we can use the "),n("a",E,[s("taskiq-redis"),o(i)]),s(" library.")]),L,o(l,{id:"110",data:[{id:"linux|macos"},{id:"windows"}]},{title0:a(({value:t,isActive:e})=>[s("linux|macos")]),title1:a(({value:t,isActive:e})=>[s("windows")]),tab0:a(({value:t,isActive:e})=>[C]),tab1:a(({value:t,isActive:e})=>[Y]),_:1}),D,o(l,{id:"141",data:[{id:"decorator"},{id:"when calling"}]},{title0:a(({value:t,isActive:e})=>[s("decorator")]),title1:a(({value:t,isActive:e})=>[s("when calling")]),tab0:a(({value:t,isActive:e})=>[U]),tab1:a(({value:t,isActive:e})=>[j]),_:1}),n("div",F,[Q,n("p",null,[s("We use "),n("a",G,[s("run_in_executor"),o(i)]),s(" method to run sync functions. Timeouts will raise a TimeoutException, but synchronous function may not stop from execution. This is a constraint of python.")])])])}const J=u(m,[["render",V],["__file","getting-started.html.vue"]]),$=JSON.parse('{"path":"/guide/getting-started.html","title":"Getting started","lang":"en-US","frontmatter":{"title":"Getting started","order":2,"description":"Getting started Installation You can install taskiq from pypi or directly from git using pip: After installation of the core library, you need to find the broker that fits you. ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/getting-started.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Getting started"}],["meta",{"property":"og:description","content":"Getting started Installation You can install taskiq from pypi or directly from git using pip: After installation of the core library, you need to find the broker that fits you. ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Getting started\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]},{"level":2,"title":"Running tasks","slug":"running-tasks","link":"#running-tasks","children":[]},{"level":2,"title":"Distributed run","slug":"distributed-run","link":"#distributed-run","children":[]},{"level":2,"title":"Timeouts","slug":"timeouts","link":"#timeouts","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/getting-started.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Installation

\\n

You can install taskiq from pypi or directly from git using pip:

\\n\\n

After installation of the core library, you need to find the broker that fits you. You can do it using PyPI search.

"}');export{J as comp,$ as data}; +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"})])],-1),F={class:"hint-container caution"},Q=n("p",{class:"hint-container-title"},"Cool alert",-1),G={href:"https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.run_in_executor",target:"_blank",rel:"noopener noreferrer"};function V(W,O){const l=c("Tabs"),i=c("ExternalLinkIcon"),r=c("RouteLink");return d(),k("div",null,[v,b,h,o(l,{id:"9",data:[{id:"pypi"},{id:"git"}]},{title0:a(({value:t,isActive:e})=>[s("pypi")]),title1:a(({value:t,isActive:e})=>[s("git")]),tab0:a(({value:t,isActive:e})=>[g]),tab1:a(({value:t,isActive:e})=>[y]),_:1}),n("p",null,[s("After installation of the core library, you need to find the broker that fits you. You can do it using "),n("a",w,[s("PyPI"),o(i)]),s(" search.")]),n("div",_,[f,n("p",null,[s("We highly recommend "),n("a",q,[s("taskiq-aio-pika"),o(i)]),s(" or "),n("a",x,[s("taskiq-nats"),o(i)]),s(" as the broker and "),n("a",A,[s("taskiq-redis"),o(i)]),s(" as the result backend for production use.")])]),T,n("p",null,[s('You can get more information about taskiq types, CLI and internal structure in the "'),o(r,{to:"/guide/architecture-overview.html"},{default:a(()=>[s("Architecture overview")]),_:1}),s('" section.')]),B,I,n("p",null,[s("At first we must install the "),n("a",R,[s("taskiq-aio-pika"),o(i)]),s(" lib.")]),M,o(l,{id:"83",data:[{id:"linux|macos"},{id:"windows"}]},{title0:a(({value:t,isActive:e})=>[s("linux|macos")]),title1:a(({value:t,isActive:e})=>[s("windows")]),tab0:a(({value:t,isActive:e})=>[N]),tab1:a(({value:t,isActive:e})=>[P]),_:1}),n("p",null,[s("Now we need to start worker process by running taskiq cli command. You can get more info about the CLI in the "),o(r,{to:"/guide/cli.html"},{default:a(()=>[s("CLI")]),_:1}),s(" section.")]),S,n("p",null,[s("But the printed result value is not correct. That happens because we didn't provide any result backend that can store results of task execution. To store results, we can use the "),n("a",E,[s("taskiq-redis"),o(i)]),s(" library.")]),L,o(l,{id:"110",data:[{id:"linux|macos"},{id:"windows"}]},{title0:a(({value:t,isActive:e})=>[s("linux|macos")]),title1:a(({value:t,isActive:e})=>[s("windows")]),tab0:a(({value:t,isActive:e})=>[C]),tab1:a(({value:t,isActive:e})=>[Y]),_:1}),D,o(l,{id:"141",data:[{id:"decorator"},{id:"when calling"}]},{title0:a(({value:t,isActive:e})=>[s("decorator")]),title1:a(({value:t,isActive:e})=>[s("when calling")]),tab0:a(({value:t,isActive:e})=>[U]),tab1:a(({value:t,isActive:e})=>[j]),_:1}),n("div",F,[Q,n("p",null,[s("We use "),n("a",G,[s("run_in_executor"),o(i)]),s(" method to run sync functions. Timeouts will raise a TimeoutException, but synchronous function may not stop from execution. This is a constraint of python.")])])])}const J=u(m,[["render",V],["__file","getting-started.html.vue"]]),$=JSON.parse('{"path":"/guide/getting-started.html","title":"Getting started","lang":"en-US","frontmatter":{"title":"Getting started","order":2,"description":"Getting started Installation You can install taskiq from pypi or directly from git using pip: After installation of the core library, you need to find the broker that fits you. ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/getting-started.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Getting started"}],["meta",{"property":"og:description","content":"Getting started Installation You can install taskiq from pypi or directly from git using pip: After installation of the core library, you need to find the broker that fits you. ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Getting started\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]},{"level":2,"title":"Running tasks","slug":"running-tasks","link":"#running-tasks","children":[]},{"level":2,"title":"Distributed run","slug":"distributed-run","link":"#distributed-run","children":[]},{"level":2,"title":"Timeouts","slug":"timeouts","link":"#timeouts","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/getting-started.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Installation

\\n

You can install taskiq from pypi or directly from git using pip:

\\n\\n

After installation of the core library, you need to find the broker that fits you. You can do it using PyPI search.

"}');export{J as comp,$ as data}; diff --git a/assets/gitGraphDiagram-942e62fe-DgiEBaCK.js b/assets/gitGraphDiagram-942e62fe-C7MdniS-.js similarity index 99% rename from assets/gitGraphDiagram-942e62fe-DgiEBaCK.js rename to assets/gitGraphDiagram-942e62fe-C7MdniS-.js index 0e806eb..740d809 100644 --- a/assets/gitGraphDiagram-942e62fe-DgiEBaCK.js +++ b/assets/gitGraphDiagram-942e62fe-C7MdniS-.js @@ -1,4 +1,4 @@ -import{c as C,s as vt,g as Ct,a as Ot,b as Pt,x as At,y as Gt,l as B,j as D,A as St,h as It,z as Nt,as as Ht,at as Bt}from"./mermaid.core-Cio1iadR.js";import"./app-BQ_RvZRm.js";var mt=function(){var r=function(G,o,u,d){for(u=u||{},d=G.length;d--;u[G[d]]=o);return u},n=[1,3],l=[1,6],h=[1,4],i=[1,5],c=[2,5],p=[1,12],m=[5,7,13,19,21,23,24,26,28,31,37,40,47],x=[7,13,19,21,23,24,26,28,31,37,40],y=[7,12,13,19,21,23,24,26,28,31,37,40],a=[7,13,47],R=[1,42],_=[1,41],b=[7,13,29,32,35,38,47],f=[1,55],k=[1,56],g=[1,57],E=[7,13,32,35,42,47],z={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,GG:5,document:6,EOF:7,":":8,DIR:9,options:10,body:11,OPT:12,NL:13,line:14,statement:15,commitStatement:16,mergeStatement:17,cherryPickStatement:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,section:24,branchStatement:25,CHECKOUT:26,ref:27,BRANCH:28,ORDER:29,NUM:30,CHERRY_PICK:31,COMMIT_ID:32,STR:33,PARENT_COMMIT:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,ID:46,";":47,$accept:0,$end:1},terminals_:{2:"error",5:"GG",7:"EOF",8:":",9:"DIR",12:"OPT",13:"NL",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"section",26:"CHECKOUT",28:"BRANCH",29:"ORDER",30:"NUM",31:"CHERRY_PICK",32:"COMMIT_ID",33:"STR",34:"PARENT_COMMIT",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",46:"ID",47:";"},productions_:[0,[3,2],[3,3],[3,4],[3,5],[6,0],[6,2],[10,2],[10,1],[11,0],[11,2],[14,2],[14,1],[15,1],[15,1],[15,1],[15,2],[15,2],[15,1],[15,1],[15,1],[15,2],[25,2],[25,4],[18,3],[18,5],[18,5],[18,7],[18,7],[18,5],[18,5],[18,5],[18,7],[18,7],[18,7],[18,7],[17,2],[17,4],[17,4],[17,4],[17,6],[17,6],[17,6],[17,6],[17,6],[17,6],[17,8],[17,8],[17,8],[17,8],[17,8],[17,8],[16,2],[16,3],[16,3],[16,5],[16,5],[16,3],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,3],[16,5],[16,5],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[41,0],[41,1],[39,1],[39,1],[39,1],[27,1],[27,1],[4,1],[4,1],[4,1]],performAction:function(o,u,d,s,T,t,X){var e=t.length-1;switch(T){case 2:return t[e];case 3:return t[e-1];case 4:return s.setDirection(t[e-3]),t[e-1];case 6:s.setOptions(t[e-1]),this.$=t[e];break;case 7:t[e-1]+=t[e],this.$=t[e-1];break;case 9:this.$=[];break;case 10:t[e-1].push(t[e]),this.$=t[e-1];break;case 11:this.$=t[e-1];break;case 16:this.$=t[e].trim(),s.setAccTitle(this.$);break;case 17:case 18:this.$=t[e].trim(),s.setAccDescription(this.$);break;case 19:s.addSection(t[e].substr(8)),this.$=t[e].substr(8);break;case 21:s.checkout(t[e]);break;case 22:s.branch(t[e]);break;case 23:s.branch(t[e-2],t[e]);break;case 24:s.cherryPick(t[e],"",void 0);break;case 25:s.cherryPick(t[e-2],"",void 0,t[e]);break;case 26:s.cherryPick(t[e-2],"",t[e]);break;case 27:s.cherryPick(t[e-4],"",t[e],t[e-2]);break;case 28:s.cherryPick(t[e-4],"",t[e-2],t[e]);break;case 29:s.cherryPick(t[e],"",t[e-2]);break;case 30:s.cherryPick(t[e],"","");break;case 31:s.cherryPick(t[e-2],"","");break;case 32:s.cherryPick(t[e-4],"","",t[e-2]);break;case 33:s.cherryPick(t[e-4],"","",t[e]);break;case 34:s.cherryPick(t[e-2],"",t[e-4],t[e]);break;case 35:s.cherryPick(t[e-2],"","",t[e]);break;case 36:s.merge(t[e],"","","");break;case 37:s.merge(t[e-2],t[e],"","");break;case 38:s.merge(t[e-2],"",t[e],"");break;case 39:s.merge(t[e-2],"","",t[e]);break;case 40:s.merge(t[e-4],t[e],"",t[e-2]);break;case 41:s.merge(t[e-4],"",t[e],t[e-2]);break;case 42:s.merge(t[e-4],"",t[e-2],t[e]);break;case 43:s.merge(t[e-4],t[e-2],t[e],"");break;case 44:s.merge(t[e-4],t[e-2],"",t[e]);break;case 45:s.merge(t[e-4],t[e],t[e-2],"");break;case 46:s.merge(t[e-6],t[e-4],t[e-2],t[e]);break;case 47:s.merge(t[e-6],t[e],t[e-4],t[e-2]);break;case 48:s.merge(t[e-6],t[e-4],t[e],t[e-2]);break;case 49:s.merge(t[e-6],t[e-2],t[e-4],t[e]);break;case 50:s.merge(t[e-6],t[e],t[e-2],t[e-4]);break;case 51:s.merge(t[e-6],t[e-2],t[e],t[e-4]);break;case 52:s.commit(t[e]);break;case 53:s.commit("","",s.commitType.NORMAL,t[e]);break;case 54:s.commit("","",t[e],"");break;case 55:s.commit("","",t[e],t[e-2]);break;case 56:s.commit("","",t[e-2],t[e]);break;case 57:s.commit("",t[e],s.commitType.NORMAL,"");break;case 58:s.commit("",t[e-2],s.commitType.NORMAL,t[e]);break;case 59:s.commit("",t[e],s.commitType.NORMAL,t[e-2]);break;case 60:s.commit("",t[e-2],t[e],"");break;case 61:s.commit("",t[e],t[e-2],"");break;case 62:s.commit("",t[e-4],t[e-2],t[e]);break;case 63:s.commit("",t[e-4],t[e],t[e-2]);break;case 64:s.commit("",t[e-2],t[e-4],t[e]);break;case 65:s.commit("",t[e],t[e-4],t[e-2]);break;case 66:s.commit("",t[e],t[e-2],t[e-4]);break;case 67:s.commit("",t[e-2],t[e],t[e-4]);break;case 68:s.commit(t[e],"",s.commitType.NORMAL,"");break;case 69:s.commit(t[e],"",s.commitType.NORMAL,t[e-2]);break;case 70:s.commit(t[e-2],"",s.commitType.NORMAL,t[e]);break;case 71:s.commit(t[e-2],"",t[e],"");break;case 72:s.commit(t[e],"",t[e-2],"");break;case 73:s.commit(t[e],t[e-2],s.commitType.NORMAL,"");break;case 74:s.commit(t[e-2],t[e],s.commitType.NORMAL,"");break;case 75:s.commit(t[e-4],"",t[e-2],t[e]);break;case 76:s.commit(t[e-4],"",t[e],t[e-2]);break;case 77:s.commit(t[e-2],"",t[e-4],t[e]);break;case 78:s.commit(t[e],"",t[e-4],t[e-2]);break;case 79:s.commit(t[e],"",t[e-2],t[e-4]);break;case 80:s.commit(t[e-2],"",t[e],t[e-4]);break;case 81:s.commit(t[e-4],t[e],t[e-2],"");break;case 82:s.commit(t[e-4],t[e-2],t[e],"");break;case 83:s.commit(t[e-2],t[e],t[e-4],"");break;case 84:s.commit(t[e],t[e-2],t[e-4],"");break;case 85:s.commit(t[e],t[e-4],t[e-2],"");break;case 86:s.commit(t[e-2],t[e-4],t[e],"");break;case 87:s.commit(t[e-4],t[e],s.commitType.NORMAL,t[e-2]);break;case 88:s.commit(t[e-4],t[e-2],s.commitType.NORMAL,t[e]);break;case 89:s.commit(t[e-2],t[e],s.commitType.NORMAL,t[e-4]);break;case 90:s.commit(t[e],t[e-2],s.commitType.NORMAL,t[e-4]);break;case 91:s.commit(t[e],t[e-4],s.commitType.NORMAL,t[e-2]);break;case 92:s.commit(t[e-2],t[e-4],s.commitType.NORMAL,t[e]);break;case 93:s.commit(t[e-6],t[e-4],t[e-2],t[e]);break;case 94:s.commit(t[e-6],t[e-4],t[e],t[e-2]);break;case 95:s.commit(t[e-6],t[e-2],t[e-4],t[e]);break;case 96:s.commit(t[e-6],t[e],t[e-4],t[e-2]);break;case 97:s.commit(t[e-6],t[e-2],t[e],t[e-4]);break;case 98:s.commit(t[e-6],t[e],t[e-2],t[e-4]);break;case 99:s.commit(t[e-4],t[e-6],t[e-2],t[e]);break;case 100:s.commit(t[e-4],t[e-6],t[e],t[e-2]);break;case 101:s.commit(t[e-2],t[e-6],t[e-4],t[e]);break;case 102:s.commit(t[e],t[e-6],t[e-4],t[e-2]);break;case 103:s.commit(t[e-2],t[e-6],t[e],t[e-4]);break;case 104:s.commit(t[e],t[e-6],t[e-2],t[e-4]);break;case 105:s.commit(t[e],t[e-4],t[e-2],t[e-6]);break;case 106:s.commit(t[e-2],t[e-4],t[e],t[e-6]);break;case 107:s.commit(t[e],t[e-2],t[e-4],t[e-6]);break;case 108:s.commit(t[e-2],t[e],t[e-4],t[e-6]);break;case 109:s.commit(t[e-4],t[e-2],t[e],t[e-6]);break;case 110:s.commit(t[e-4],t[e],t[e-2],t[e-6]);break;case 111:s.commit(t[e-2],t[e-4],t[e-6],t[e]);break;case 112:s.commit(t[e],t[e-4],t[e-6],t[e-2]);break;case 113:s.commit(t[e-2],t[e],t[e-6],t[e-4]);break;case 114:s.commit(t[e],t[e-2],t[e-6],t[e-4]);break;case 115:s.commit(t[e-4],t[e-2],t[e-6],t[e]);break;case 116:s.commit(t[e-4],t[e],t[e-6],t[e-2]);break;case 117:this.$="";break;case 118:this.$=t[e];break;case 119:this.$=s.commitType.NORMAL;break;case 120:this.$=s.commitType.REVERSE;break;case 121:this.$=s.commitType.HIGHLIGHT;break}},table:[{3:1,4:2,5:n,7:l,13:h,47:i},{1:[3]},{3:7,4:2,5:n,7:l,13:h,47:i},{6:8,7:c,8:[1,9],9:[1,10],10:11,13:p},r(m,[2,124]),r(m,[2,125]),r(m,[2,126]),{1:[2,1]},{7:[1,13]},{6:14,7:c,10:11,13:p},{8:[1,15]},r(x,[2,9],{11:16,12:[1,17]}),r(y,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:c,10:11,13:p},{7:[2,6],13:[1,22],14:20,15:21,16:23,17:24,18:25,19:[1,26],21:[1,27],23:[1,28],24:[1,29],25:30,26:[1,31],28:[1,35],31:[1,34],37:[1,33],40:[1,32]},r(y,[2,7]),{1:[2,3]},{7:[1,36]},r(x,[2,10]),{4:37,7:l,13:h,47:i},r(x,[2,12]),r(a,[2,13]),r(a,[2,14]),r(a,[2,15]),{20:[1,38]},{22:[1,39]},r(a,[2,18]),r(a,[2,19]),r(a,[2,20]),{27:40,33:R,46:_},r(a,[2,117],{41:43,32:[1,46],33:[1,48],35:[1,44],38:[1,45],42:[1,47]}),{27:49,33:R,46:_},{32:[1,50],35:[1,51]},{27:52,33:R,46:_},{1:[2,4]},r(x,[2,11]),r(a,[2,16]),r(a,[2,17]),r(a,[2,21]),r(b,[2,122]),r(b,[2,123]),r(a,[2,52]),{33:[1,53]},{39:54,43:f,44:k,45:g},{33:[1,58]},{33:[1,59]},r(a,[2,118]),r(a,[2,36],{32:[1,60],35:[1,62],38:[1,61]}),{33:[1,63]},{33:[1,64],36:[1,65]},r(a,[2,22],{29:[1,66]}),r(a,[2,53],{32:[1,68],38:[1,67],42:[1,69]}),r(a,[2,54],{32:[1,71],35:[1,70],42:[1,72]}),r(E,[2,119]),r(E,[2,120]),r(E,[2,121]),r(a,[2,57],{35:[1,73],38:[1,74],42:[1,75]}),r(a,[2,68],{32:[1,78],35:[1,76],38:[1,77]}),{33:[1,79]},{39:80,43:f,44:k,45:g},{33:[1,81]},r(a,[2,24],{34:[1,82],35:[1,83]}),{32:[1,84]},{32:[1,85]},{30:[1,86]},{39:87,43:f,44:k,45:g},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{33:[1,93]},{39:94,43:f,44:k,45:g},{33:[1,95]},{33:[1,96]},{39:97,43:f,44:k,45:g},{33:[1,98]},r(a,[2,37],{35:[1,100],38:[1,99]}),r(a,[2,38],{32:[1,102],35:[1,101]}),r(a,[2,39],{32:[1,103],38:[1,104]}),{33:[1,105]},{33:[1,106],36:[1,107]},{33:[1,108]},{33:[1,109]},r(a,[2,23]),r(a,[2,55],{32:[1,110],42:[1,111]}),r(a,[2,59],{38:[1,112],42:[1,113]}),r(a,[2,69],{32:[1,115],38:[1,114]}),r(a,[2,56],{32:[1,116],42:[1,117]}),r(a,[2,61],{35:[1,118],42:[1,119]}),r(a,[2,72],{32:[1,121],35:[1,120]}),r(a,[2,58],{38:[1,122],42:[1,123]}),r(a,[2,60],{35:[1,124],42:[1,125]}),r(a,[2,73],{35:[1,127],38:[1,126]}),r(a,[2,70],{32:[1,129],38:[1,128]}),r(a,[2,71],{32:[1,131],35:[1,130]}),r(a,[2,74],{35:[1,133],38:[1,132]}),{39:134,43:f,44:k,45:g},{33:[1,135]},{33:[1,136]},{33:[1,137]},{33:[1,138]},{39:139,43:f,44:k,45:g},r(a,[2,25],{35:[1,140]}),r(a,[2,26],{34:[1,141]}),r(a,[2,31],{34:[1,142]}),r(a,[2,29],{34:[1,143]}),r(a,[2,30],{34:[1,144]}),{33:[1,145]},{33:[1,146]},{39:147,43:f,44:k,45:g},{33:[1,148]},{39:149,43:f,44:k,45:g},{33:[1,150]},{33:[1,151]},{33:[1,152]},{33:[1,153]},{33:[1,154]},{33:[1,155]},{33:[1,156]},{39:157,43:f,44:k,45:g},{33:[1,158]},{33:[1,159]},{33:[1,160]},{39:161,43:f,44:k,45:g},{33:[1,162]},{39:163,43:f,44:k,45:g},{33:[1,164]},{33:[1,165]},{33:[1,166]},{39:167,43:f,44:k,45:g},{33:[1,168]},r(a,[2,43],{35:[1,169]}),r(a,[2,44],{38:[1,170]}),r(a,[2,42],{32:[1,171]}),r(a,[2,45],{35:[1,172]}),r(a,[2,40],{38:[1,173]}),r(a,[2,41],{32:[1,174]}),{33:[1,175],36:[1,176]},{33:[1,177]},{33:[1,178]},{33:[1,179]},{33:[1,180]},r(a,[2,66],{42:[1,181]}),r(a,[2,79],{32:[1,182]}),r(a,[2,67],{42:[1,183]}),r(a,[2,90],{38:[1,184]}),r(a,[2,80],{32:[1,185]}),r(a,[2,89],{38:[1,186]}),r(a,[2,65],{42:[1,187]}),r(a,[2,78],{32:[1,188]}),r(a,[2,64],{42:[1,189]}),r(a,[2,84],{35:[1,190]}),r(a,[2,77],{32:[1,191]}),r(a,[2,83],{35:[1,192]}),r(a,[2,63],{42:[1,193]}),r(a,[2,91],{38:[1,194]}),r(a,[2,62],{42:[1,195]}),r(a,[2,85],{35:[1,196]}),r(a,[2,86],{35:[1,197]}),r(a,[2,92],{38:[1,198]}),r(a,[2,76],{32:[1,199]}),r(a,[2,87],{38:[1,200]}),r(a,[2,75],{32:[1,201]}),r(a,[2,81],{35:[1,202]}),r(a,[2,82],{35:[1,203]}),r(a,[2,88],{38:[1,204]}),{33:[1,205]},{39:206,43:f,44:k,45:g},{33:[1,207]},{33:[1,208]},{39:209,43:f,44:k,45:g},{33:[1,210]},r(a,[2,27]),r(a,[2,32]),r(a,[2,28]),r(a,[2,33]),r(a,[2,34]),r(a,[2,35]),{33:[1,211]},{33:[1,212]},{33:[1,213]},{39:214,43:f,44:k,45:g},{33:[1,215]},{39:216,43:f,44:k,45:g},{33:[1,217]},{33:[1,218]},{33:[1,219]},{33:[1,220]},{33:[1,221]},{33:[1,222]},{33:[1,223]},{39:224,43:f,44:k,45:g},{33:[1,225]},{33:[1,226]},{33:[1,227]},{39:228,43:f,44:k,45:g},{33:[1,229]},{39:230,43:f,44:k,45:g},{33:[1,231]},{33:[1,232]},{33:[1,233]},{39:234,43:f,44:k,45:g},r(a,[2,46]),r(a,[2,48]),r(a,[2,47]),r(a,[2,49]),r(a,[2,51]),r(a,[2,50]),r(a,[2,107]),r(a,[2,108]),r(a,[2,105]),r(a,[2,106]),r(a,[2,110]),r(a,[2,109]),r(a,[2,114]),r(a,[2,113]),r(a,[2,112]),r(a,[2,111]),r(a,[2,116]),r(a,[2,115]),r(a,[2,104]),r(a,[2,103]),r(a,[2,102]),r(a,[2,101]),r(a,[2,99]),r(a,[2,100]),r(a,[2,98]),r(a,[2,97]),r(a,[2,96]),r(a,[2,95]),r(a,[2,93]),r(a,[2,94])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(o,u){if(u.recoverable)this.trace(o);else{var d=new Error(o);throw d.hash=u,d}},parse:function(o){var u=this,d=[0],s=[],T=[null],t=[],X=this.table,e="",rt=0,ft=0,wt=2,pt=1,Lt=t.slice.call(arguments,1),O=Object.create(this.lexer),F={yy:{}};for(var ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ct)&&(F.yy[ct]=this.yy[ct]);O.setInput(o,F.yy),F.yy.lexer=O,F.yy.parser=this,typeof O.yylloc>"u"&&(O.yylloc={});var ot=O.yylloc;t.push(ot);var Rt=O.options&&O.options.ranges;typeof F.yy.parseError=="function"?this.parseError=F.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Mt(){var q;return q=s.pop()||O.lex()||pt,typeof q!="number"&&(q instanceof Array&&(s=q,q=s.pop()),q=u.symbols_[q]||q),q}for(var N,K,V,lt,J={},it,j,bt,st;;){if(K=d[d.length-1],this.defaultActions[K]?V=this.defaultActions[K]:((N===null||typeof N>"u")&&(N=Mt()),V=X[K]&&X[K][N]),typeof V>"u"||!V.length||!V[0]){var ht="";st=[];for(it in X[K])this.terminals_[it]&&it>wt&&st.push("'"+this.terminals_[it]+"'");O.showPosition?ht="Parse error on line "+(rt+1)+`: +import{c as C,s as vt,g as Ct,a as Ot,b as Pt,x as At,y as Gt,l as B,j as D,A as St,h as It,z as Nt,as as Ht,at as Bt}from"./mermaid.core-D8sVPjx9.js";import"./app-B7rxM88G.js";var mt=function(){var r=function(G,o,u,d){for(u=u||{},d=G.length;d--;u[G[d]]=o);return u},n=[1,3],l=[1,6],h=[1,4],i=[1,5],c=[2,5],p=[1,12],m=[5,7,13,19,21,23,24,26,28,31,37,40,47],x=[7,13,19,21,23,24,26,28,31,37,40],y=[7,12,13,19,21,23,24,26,28,31,37,40],a=[7,13,47],R=[1,42],_=[1,41],b=[7,13,29,32,35,38,47],f=[1,55],k=[1,56],g=[1,57],E=[7,13,32,35,42,47],z={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,GG:5,document:6,EOF:7,":":8,DIR:9,options:10,body:11,OPT:12,NL:13,line:14,statement:15,commitStatement:16,mergeStatement:17,cherryPickStatement:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,section:24,branchStatement:25,CHECKOUT:26,ref:27,BRANCH:28,ORDER:29,NUM:30,CHERRY_PICK:31,COMMIT_ID:32,STR:33,PARENT_COMMIT:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,ID:46,";":47,$accept:0,$end:1},terminals_:{2:"error",5:"GG",7:"EOF",8:":",9:"DIR",12:"OPT",13:"NL",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"section",26:"CHECKOUT",28:"BRANCH",29:"ORDER",30:"NUM",31:"CHERRY_PICK",32:"COMMIT_ID",33:"STR",34:"PARENT_COMMIT",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",46:"ID",47:";"},productions_:[0,[3,2],[3,3],[3,4],[3,5],[6,0],[6,2],[10,2],[10,1],[11,0],[11,2],[14,2],[14,1],[15,1],[15,1],[15,1],[15,2],[15,2],[15,1],[15,1],[15,1],[15,2],[25,2],[25,4],[18,3],[18,5],[18,5],[18,7],[18,7],[18,5],[18,5],[18,5],[18,7],[18,7],[18,7],[18,7],[17,2],[17,4],[17,4],[17,4],[17,6],[17,6],[17,6],[17,6],[17,6],[17,6],[17,8],[17,8],[17,8],[17,8],[17,8],[17,8],[16,2],[16,3],[16,3],[16,5],[16,5],[16,3],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,3],[16,5],[16,5],[16,5],[16,5],[16,5],[16,5],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,7],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[16,9],[41,0],[41,1],[39,1],[39,1],[39,1],[27,1],[27,1],[4,1],[4,1],[4,1]],performAction:function(o,u,d,s,T,t,X){var e=t.length-1;switch(T){case 2:return t[e];case 3:return t[e-1];case 4:return s.setDirection(t[e-3]),t[e-1];case 6:s.setOptions(t[e-1]),this.$=t[e];break;case 7:t[e-1]+=t[e],this.$=t[e-1];break;case 9:this.$=[];break;case 10:t[e-1].push(t[e]),this.$=t[e-1];break;case 11:this.$=t[e-1];break;case 16:this.$=t[e].trim(),s.setAccTitle(this.$);break;case 17:case 18:this.$=t[e].trim(),s.setAccDescription(this.$);break;case 19:s.addSection(t[e].substr(8)),this.$=t[e].substr(8);break;case 21:s.checkout(t[e]);break;case 22:s.branch(t[e]);break;case 23:s.branch(t[e-2],t[e]);break;case 24:s.cherryPick(t[e],"",void 0);break;case 25:s.cherryPick(t[e-2],"",void 0,t[e]);break;case 26:s.cherryPick(t[e-2],"",t[e]);break;case 27:s.cherryPick(t[e-4],"",t[e],t[e-2]);break;case 28:s.cherryPick(t[e-4],"",t[e-2],t[e]);break;case 29:s.cherryPick(t[e],"",t[e-2]);break;case 30:s.cherryPick(t[e],"","");break;case 31:s.cherryPick(t[e-2],"","");break;case 32:s.cherryPick(t[e-4],"","",t[e-2]);break;case 33:s.cherryPick(t[e-4],"","",t[e]);break;case 34:s.cherryPick(t[e-2],"",t[e-4],t[e]);break;case 35:s.cherryPick(t[e-2],"","",t[e]);break;case 36:s.merge(t[e],"","","");break;case 37:s.merge(t[e-2],t[e],"","");break;case 38:s.merge(t[e-2],"",t[e],"");break;case 39:s.merge(t[e-2],"","",t[e]);break;case 40:s.merge(t[e-4],t[e],"",t[e-2]);break;case 41:s.merge(t[e-4],"",t[e],t[e-2]);break;case 42:s.merge(t[e-4],"",t[e-2],t[e]);break;case 43:s.merge(t[e-4],t[e-2],t[e],"");break;case 44:s.merge(t[e-4],t[e-2],"",t[e]);break;case 45:s.merge(t[e-4],t[e],t[e-2],"");break;case 46:s.merge(t[e-6],t[e-4],t[e-2],t[e]);break;case 47:s.merge(t[e-6],t[e],t[e-4],t[e-2]);break;case 48:s.merge(t[e-6],t[e-4],t[e],t[e-2]);break;case 49:s.merge(t[e-6],t[e-2],t[e-4],t[e]);break;case 50:s.merge(t[e-6],t[e],t[e-2],t[e-4]);break;case 51:s.merge(t[e-6],t[e-2],t[e],t[e-4]);break;case 52:s.commit(t[e]);break;case 53:s.commit("","",s.commitType.NORMAL,t[e]);break;case 54:s.commit("","",t[e],"");break;case 55:s.commit("","",t[e],t[e-2]);break;case 56:s.commit("","",t[e-2],t[e]);break;case 57:s.commit("",t[e],s.commitType.NORMAL,"");break;case 58:s.commit("",t[e-2],s.commitType.NORMAL,t[e]);break;case 59:s.commit("",t[e],s.commitType.NORMAL,t[e-2]);break;case 60:s.commit("",t[e-2],t[e],"");break;case 61:s.commit("",t[e],t[e-2],"");break;case 62:s.commit("",t[e-4],t[e-2],t[e]);break;case 63:s.commit("",t[e-4],t[e],t[e-2]);break;case 64:s.commit("",t[e-2],t[e-4],t[e]);break;case 65:s.commit("",t[e],t[e-4],t[e-2]);break;case 66:s.commit("",t[e],t[e-2],t[e-4]);break;case 67:s.commit("",t[e-2],t[e],t[e-4]);break;case 68:s.commit(t[e],"",s.commitType.NORMAL,"");break;case 69:s.commit(t[e],"",s.commitType.NORMAL,t[e-2]);break;case 70:s.commit(t[e-2],"",s.commitType.NORMAL,t[e]);break;case 71:s.commit(t[e-2],"",t[e],"");break;case 72:s.commit(t[e],"",t[e-2],"");break;case 73:s.commit(t[e],t[e-2],s.commitType.NORMAL,"");break;case 74:s.commit(t[e-2],t[e],s.commitType.NORMAL,"");break;case 75:s.commit(t[e-4],"",t[e-2],t[e]);break;case 76:s.commit(t[e-4],"",t[e],t[e-2]);break;case 77:s.commit(t[e-2],"",t[e-4],t[e]);break;case 78:s.commit(t[e],"",t[e-4],t[e-2]);break;case 79:s.commit(t[e],"",t[e-2],t[e-4]);break;case 80:s.commit(t[e-2],"",t[e],t[e-4]);break;case 81:s.commit(t[e-4],t[e],t[e-2],"");break;case 82:s.commit(t[e-4],t[e-2],t[e],"");break;case 83:s.commit(t[e-2],t[e],t[e-4],"");break;case 84:s.commit(t[e],t[e-2],t[e-4],"");break;case 85:s.commit(t[e],t[e-4],t[e-2],"");break;case 86:s.commit(t[e-2],t[e-4],t[e],"");break;case 87:s.commit(t[e-4],t[e],s.commitType.NORMAL,t[e-2]);break;case 88:s.commit(t[e-4],t[e-2],s.commitType.NORMAL,t[e]);break;case 89:s.commit(t[e-2],t[e],s.commitType.NORMAL,t[e-4]);break;case 90:s.commit(t[e],t[e-2],s.commitType.NORMAL,t[e-4]);break;case 91:s.commit(t[e],t[e-4],s.commitType.NORMAL,t[e-2]);break;case 92:s.commit(t[e-2],t[e-4],s.commitType.NORMAL,t[e]);break;case 93:s.commit(t[e-6],t[e-4],t[e-2],t[e]);break;case 94:s.commit(t[e-6],t[e-4],t[e],t[e-2]);break;case 95:s.commit(t[e-6],t[e-2],t[e-4],t[e]);break;case 96:s.commit(t[e-6],t[e],t[e-4],t[e-2]);break;case 97:s.commit(t[e-6],t[e-2],t[e],t[e-4]);break;case 98:s.commit(t[e-6],t[e],t[e-2],t[e-4]);break;case 99:s.commit(t[e-4],t[e-6],t[e-2],t[e]);break;case 100:s.commit(t[e-4],t[e-6],t[e],t[e-2]);break;case 101:s.commit(t[e-2],t[e-6],t[e-4],t[e]);break;case 102:s.commit(t[e],t[e-6],t[e-4],t[e-2]);break;case 103:s.commit(t[e-2],t[e-6],t[e],t[e-4]);break;case 104:s.commit(t[e],t[e-6],t[e-2],t[e-4]);break;case 105:s.commit(t[e],t[e-4],t[e-2],t[e-6]);break;case 106:s.commit(t[e-2],t[e-4],t[e],t[e-6]);break;case 107:s.commit(t[e],t[e-2],t[e-4],t[e-6]);break;case 108:s.commit(t[e-2],t[e],t[e-4],t[e-6]);break;case 109:s.commit(t[e-4],t[e-2],t[e],t[e-6]);break;case 110:s.commit(t[e-4],t[e],t[e-2],t[e-6]);break;case 111:s.commit(t[e-2],t[e-4],t[e-6],t[e]);break;case 112:s.commit(t[e],t[e-4],t[e-6],t[e-2]);break;case 113:s.commit(t[e-2],t[e],t[e-6],t[e-4]);break;case 114:s.commit(t[e],t[e-2],t[e-6],t[e-4]);break;case 115:s.commit(t[e-4],t[e-2],t[e-6],t[e]);break;case 116:s.commit(t[e-4],t[e],t[e-6],t[e-2]);break;case 117:this.$="";break;case 118:this.$=t[e];break;case 119:this.$=s.commitType.NORMAL;break;case 120:this.$=s.commitType.REVERSE;break;case 121:this.$=s.commitType.HIGHLIGHT;break}},table:[{3:1,4:2,5:n,7:l,13:h,47:i},{1:[3]},{3:7,4:2,5:n,7:l,13:h,47:i},{6:8,7:c,8:[1,9],9:[1,10],10:11,13:p},r(m,[2,124]),r(m,[2,125]),r(m,[2,126]),{1:[2,1]},{7:[1,13]},{6:14,7:c,10:11,13:p},{8:[1,15]},r(x,[2,9],{11:16,12:[1,17]}),r(y,[2,8]),{1:[2,2]},{7:[1,18]},{6:19,7:c,10:11,13:p},{7:[2,6],13:[1,22],14:20,15:21,16:23,17:24,18:25,19:[1,26],21:[1,27],23:[1,28],24:[1,29],25:30,26:[1,31],28:[1,35],31:[1,34],37:[1,33],40:[1,32]},r(y,[2,7]),{1:[2,3]},{7:[1,36]},r(x,[2,10]),{4:37,7:l,13:h,47:i},r(x,[2,12]),r(a,[2,13]),r(a,[2,14]),r(a,[2,15]),{20:[1,38]},{22:[1,39]},r(a,[2,18]),r(a,[2,19]),r(a,[2,20]),{27:40,33:R,46:_},r(a,[2,117],{41:43,32:[1,46],33:[1,48],35:[1,44],38:[1,45],42:[1,47]}),{27:49,33:R,46:_},{32:[1,50],35:[1,51]},{27:52,33:R,46:_},{1:[2,4]},r(x,[2,11]),r(a,[2,16]),r(a,[2,17]),r(a,[2,21]),r(b,[2,122]),r(b,[2,123]),r(a,[2,52]),{33:[1,53]},{39:54,43:f,44:k,45:g},{33:[1,58]},{33:[1,59]},r(a,[2,118]),r(a,[2,36],{32:[1,60],35:[1,62],38:[1,61]}),{33:[1,63]},{33:[1,64],36:[1,65]},r(a,[2,22],{29:[1,66]}),r(a,[2,53],{32:[1,68],38:[1,67],42:[1,69]}),r(a,[2,54],{32:[1,71],35:[1,70],42:[1,72]}),r(E,[2,119]),r(E,[2,120]),r(E,[2,121]),r(a,[2,57],{35:[1,73],38:[1,74],42:[1,75]}),r(a,[2,68],{32:[1,78],35:[1,76],38:[1,77]}),{33:[1,79]},{39:80,43:f,44:k,45:g},{33:[1,81]},r(a,[2,24],{34:[1,82],35:[1,83]}),{32:[1,84]},{32:[1,85]},{30:[1,86]},{39:87,43:f,44:k,45:g},{33:[1,88]},{33:[1,89]},{33:[1,90]},{33:[1,91]},{33:[1,92]},{33:[1,93]},{39:94,43:f,44:k,45:g},{33:[1,95]},{33:[1,96]},{39:97,43:f,44:k,45:g},{33:[1,98]},r(a,[2,37],{35:[1,100],38:[1,99]}),r(a,[2,38],{32:[1,102],35:[1,101]}),r(a,[2,39],{32:[1,103],38:[1,104]}),{33:[1,105]},{33:[1,106],36:[1,107]},{33:[1,108]},{33:[1,109]},r(a,[2,23]),r(a,[2,55],{32:[1,110],42:[1,111]}),r(a,[2,59],{38:[1,112],42:[1,113]}),r(a,[2,69],{32:[1,115],38:[1,114]}),r(a,[2,56],{32:[1,116],42:[1,117]}),r(a,[2,61],{35:[1,118],42:[1,119]}),r(a,[2,72],{32:[1,121],35:[1,120]}),r(a,[2,58],{38:[1,122],42:[1,123]}),r(a,[2,60],{35:[1,124],42:[1,125]}),r(a,[2,73],{35:[1,127],38:[1,126]}),r(a,[2,70],{32:[1,129],38:[1,128]}),r(a,[2,71],{32:[1,131],35:[1,130]}),r(a,[2,74],{35:[1,133],38:[1,132]}),{39:134,43:f,44:k,45:g},{33:[1,135]},{33:[1,136]},{33:[1,137]},{33:[1,138]},{39:139,43:f,44:k,45:g},r(a,[2,25],{35:[1,140]}),r(a,[2,26],{34:[1,141]}),r(a,[2,31],{34:[1,142]}),r(a,[2,29],{34:[1,143]}),r(a,[2,30],{34:[1,144]}),{33:[1,145]},{33:[1,146]},{39:147,43:f,44:k,45:g},{33:[1,148]},{39:149,43:f,44:k,45:g},{33:[1,150]},{33:[1,151]},{33:[1,152]},{33:[1,153]},{33:[1,154]},{33:[1,155]},{33:[1,156]},{39:157,43:f,44:k,45:g},{33:[1,158]},{33:[1,159]},{33:[1,160]},{39:161,43:f,44:k,45:g},{33:[1,162]},{39:163,43:f,44:k,45:g},{33:[1,164]},{33:[1,165]},{33:[1,166]},{39:167,43:f,44:k,45:g},{33:[1,168]},r(a,[2,43],{35:[1,169]}),r(a,[2,44],{38:[1,170]}),r(a,[2,42],{32:[1,171]}),r(a,[2,45],{35:[1,172]}),r(a,[2,40],{38:[1,173]}),r(a,[2,41],{32:[1,174]}),{33:[1,175],36:[1,176]},{33:[1,177]},{33:[1,178]},{33:[1,179]},{33:[1,180]},r(a,[2,66],{42:[1,181]}),r(a,[2,79],{32:[1,182]}),r(a,[2,67],{42:[1,183]}),r(a,[2,90],{38:[1,184]}),r(a,[2,80],{32:[1,185]}),r(a,[2,89],{38:[1,186]}),r(a,[2,65],{42:[1,187]}),r(a,[2,78],{32:[1,188]}),r(a,[2,64],{42:[1,189]}),r(a,[2,84],{35:[1,190]}),r(a,[2,77],{32:[1,191]}),r(a,[2,83],{35:[1,192]}),r(a,[2,63],{42:[1,193]}),r(a,[2,91],{38:[1,194]}),r(a,[2,62],{42:[1,195]}),r(a,[2,85],{35:[1,196]}),r(a,[2,86],{35:[1,197]}),r(a,[2,92],{38:[1,198]}),r(a,[2,76],{32:[1,199]}),r(a,[2,87],{38:[1,200]}),r(a,[2,75],{32:[1,201]}),r(a,[2,81],{35:[1,202]}),r(a,[2,82],{35:[1,203]}),r(a,[2,88],{38:[1,204]}),{33:[1,205]},{39:206,43:f,44:k,45:g},{33:[1,207]},{33:[1,208]},{39:209,43:f,44:k,45:g},{33:[1,210]},r(a,[2,27]),r(a,[2,32]),r(a,[2,28]),r(a,[2,33]),r(a,[2,34]),r(a,[2,35]),{33:[1,211]},{33:[1,212]},{33:[1,213]},{39:214,43:f,44:k,45:g},{33:[1,215]},{39:216,43:f,44:k,45:g},{33:[1,217]},{33:[1,218]},{33:[1,219]},{33:[1,220]},{33:[1,221]},{33:[1,222]},{33:[1,223]},{39:224,43:f,44:k,45:g},{33:[1,225]},{33:[1,226]},{33:[1,227]},{39:228,43:f,44:k,45:g},{33:[1,229]},{39:230,43:f,44:k,45:g},{33:[1,231]},{33:[1,232]},{33:[1,233]},{39:234,43:f,44:k,45:g},r(a,[2,46]),r(a,[2,48]),r(a,[2,47]),r(a,[2,49]),r(a,[2,51]),r(a,[2,50]),r(a,[2,107]),r(a,[2,108]),r(a,[2,105]),r(a,[2,106]),r(a,[2,110]),r(a,[2,109]),r(a,[2,114]),r(a,[2,113]),r(a,[2,112]),r(a,[2,111]),r(a,[2,116]),r(a,[2,115]),r(a,[2,104]),r(a,[2,103]),r(a,[2,102]),r(a,[2,101]),r(a,[2,99]),r(a,[2,100]),r(a,[2,98]),r(a,[2,97]),r(a,[2,96]),r(a,[2,95]),r(a,[2,93]),r(a,[2,94])],defaultActions:{7:[2,1],13:[2,2],18:[2,3],36:[2,4]},parseError:function(o,u){if(u.recoverable)this.trace(o);else{var d=new Error(o);throw d.hash=u,d}},parse:function(o){var u=this,d=[0],s=[],T=[null],t=[],X=this.table,e="",rt=0,ft=0,wt=2,pt=1,Lt=t.slice.call(arguments,1),O=Object.create(this.lexer),F={yy:{}};for(var ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ct)&&(F.yy[ct]=this.yy[ct]);O.setInput(o,F.yy),F.yy.lexer=O,F.yy.parser=this,typeof O.yylloc>"u"&&(O.yylloc={});var ot=O.yylloc;t.push(ot);var Rt=O.options&&O.options.ranges;typeof F.yy.parseError=="function"?this.parseError=F.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Mt(){var q;return q=s.pop()||O.lex()||pt,typeof q!="number"&&(q instanceof Array&&(s=q,q=s.pop()),q=u.symbols_[q]||q),q}for(var N,K,V,lt,J={},it,j,bt,st;;){if(K=d[d.length-1],this.defaultActions[K]?V=this.defaultActions[K]:((N===null||typeof N>"u")&&(N=Mt()),V=X[K]&&X[K][N]),typeof V>"u"||!V.length||!V[0]){var ht="";st=[];for(it in X[K])this.terminals_[it]&&it>wt&&st.push("'"+this.terminals_[it]+"'");O.showPosition?ht="Parse error on line "+(rt+1)+`: `+O.showPosition()+` Expecting `+st.join(", ")+", got '"+(this.terminals_[N]||N)+"'":ht="Parse error on line "+(rt+1)+": Unexpected "+(N==pt?"end of input":"'"+(this.terminals_[N]||N)+"'"),this.parseError(ht,{text:O.match,token:this.terminals_[N]||N,line:O.yylineno,loc:ot,expected:st})}if(V[0]instanceof Array&&V.length>1)throw new Error("Parse Error: multiple actions possible at state: "+K+", token: "+N);switch(V[0]){case 1:d.push(N),T.push(O.yytext),t.push(O.yylloc),d.push(V[1]),N=null,ft=O.yyleng,e=O.yytext,rt=O.yylineno,ot=O.yylloc;break;case 2:if(j=this.productions_[V[1]][1],J.$=T[T.length-j],J._$={first_line:t[t.length-(j||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(j||1)].first_column,last_column:t[t.length-1].last_column},Rt&&(J._$.range=[t[t.length-(j||1)].range[0],t[t.length-1].range[1]]),lt=this.performAction.apply(J,[e,ft,rt,F.yy,V[1],T,t].concat(Lt)),typeof lt<"u")return lt;j&&(d=d.slice(0,-1*j*2),T=T.slice(0,-1*j),t=t.slice(0,-1*j)),d.push(this.productions_[V[1]][0]),T.push(J.$),t.push(J._$),bt=X[d[d.length-2]][d[d.length-1]],d.push(bt);break;case 3:return!0}}return!0}},M=function(){var G={EOF:1,parseError:function(u,d){if(this.yy.parser)this.yy.parser.parseError(u,d);else throw new Error(u)},setInput:function(o,u){return this.yy=u||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var u=o.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},unput:function(o){var u=o.length,d=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),d.length-1&&(this.yylineno-=d.length-1);var T=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:d?(d.length===s.length?this.yylloc.first_column:0)+s[s.length-d.length].length-d[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[T[0],T[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(o){this.unput(this.match.slice(o))},pastInput:function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var o=this.pastInput(),u=new Array(o.length+1).join("-");return o+this.upcomingInput()+` diff --git a/assets/graph-k1ojK0f-.js b/assets/graph-BKQChTdx.js similarity index 99% rename from assets/graph-k1ojK0f-.js rename to assets/graph-BKQChTdx.js index 1f7e331..1773d30 100644 --- a/assets/graph-k1ojK0f-.js +++ b/assets/graph-BKQChTdx.js @@ -1 +1 @@ -import{B as I,C as Ze,S as m,D as y,E as Te,F as qe,G as Xe,H as Je,I as Ee,J as G,K as X,L as Qe,M as me,N as We,O as C,P as x,Q as Oe,R as ve,T as ze,U as Z,V as Ve,W as ke,X as P,Y as en,Z as nn,_ as rn,$ as re,a0 as tn,a1 as sn,a2 as an,a3 as we,a4 as un,a5 as j,a6 as fn,a7 as on,a8 as M,a9 as te,aa as ie}from"./mermaid.core-Cio1iadR.js";var dn="[object Symbol]";function J(e){return typeof e=="symbol"||I(e)&&Ze(e)==dn}function $e(e,n){for(var r=-1,t=e==null?0:e.length,i=Array(t);++r-1}function T(e){return Te(e)?qe(e):Xe(e)}var yn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,An=/^\w*$/;function Q(e,n){if(y(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||J(e)?!0:An.test(e)||!yn.test(e)||n!=null&&e in Object(n)}var Tn=500;function En(e){var n=Je(e,function(t){return r.size===Tn&&r.clear(),t}),r=n.cache;return n}var mn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,On=/\\(\\)?/g,vn=En(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(mn,function(r,t,i,s){n.push(i?s.replace(On,"$1"):t||r)}),n});function wn(e){return e==null?"":Le(e)}function Ie(e,n){return y(e)?e:Q(e,n)?[e]:vn(wn(e))}var $n=1/0;function U(e){if(typeof e=="string"||J(e))return e;var n=e+"";return n=="0"&&1/e==-$n?"-0":n}function Ce(e,n){n=Ie(n,e);for(var r=0,t=n.length;e!=null&&ru))return!1;var l=s.get(e),g=s.get(n);if(l&&g)return l==n&&g==e;var o=-1,h=!0,A=r&Qr?new S:void 0;for(s.set(e,n),s.set(n,e);++o=Ht){var l=Kt(e);if(l)return V(l);a=!1,i=Ge,f=new S}else f=u;e:for(;++t1?i.setNode(s,r):i.setNode(s)}),this}setNode(n,r){return E(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=r),this):(this._nodes[n]=arguments.length>1?r:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=w,this._children[n]={},this._children[w][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return E(this._nodes,n)}removeNode(n){var r=this;if(E(this._nodes,n)){var t=function(i){r.removeEdge(r._edgeObjs[i])};delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],v(this.children(n),function(i){r.setParent(i)}),delete this._children[n]),v(T(this._in[n]),t),delete this._in[n],delete this._preds[n],v(T(this._out[n]),t),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(n,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if($(r))r=w;else{r+="";for(var t=r;!$(t);t=this.parent(t))if(t===n)throw new Error("Setting "+r+" as parent of "+n+" would create a cycle");this.setNode(r)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=r,this._children[r][n]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(n){if(this._isCompound){var r=this._parent[n];if(r!==w)return r}}children(n){if($(n)&&(n=w),this._isCompound){var r=this._children[n];if(r)return T(r)}else{if(n===w)return this.nodes();if(this.hasNode(n))return[]}}predecessors(n){var r=this._preds[n];if(r)return T(r)}successors(n){var r=this._sucs[n];if(r)return T(r)}neighbors(n){var r=this.predecessors(n);if(r)return Zt(r,this.successors(n))}isLeaf(n){var r;return this.isDirected()?r=this.successors(n):r=this.neighbors(n),r.length===0}filterNodes(n){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var t=this;v(this._nodes,function(a,u){n(u)&&r.setNode(u,a)}),v(this._edgeObjs,function(a){r.hasNode(a.v)&&r.hasNode(a.w)&&r.setEdge(a,t.edge(a))});var i={};function s(a){var u=t.parent(a);return u===void 0||r.hasNode(u)?(i[a]=u,u):u in i?i[u]:s(u)}return this._isCompound&&v(r.nodes(),function(a){r.setParent(a,s(a))}),r}setDefaultEdgeLabel(n){return te(n)||(n=M(n)),this._defaultEdgeLabelFn=n,this}edgeCount(){return this._edgeCount}edges(){return H(this._edgeObjs)}setPath(n,r){var t=this,i=arguments;return jt(n,function(s,a){return i.length>1?t.setEdge(s,a,r):t.setEdge(s,a),a}),this}setEdge(){var n,r,t,i,s=!1,a=arguments[0];typeof a=="object"&&a!==null&&"v"in a?(n=a.v,r=a.w,t=a.name,arguments.length===2&&(i=arguments[1],s=!0)):(n=a,r=arguments[1],t=arguments[3],arguments.length>2&&(i=arguments[2],s=!0)),n=""+n,r=""+r,$(t)||(t=""+t);var u=L(this._isDirected,n,r,t);if(E(this._edgeLabels,u))return s&&(this._edgeLabels[u]=i),this;if(!$(t)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(n),this.setNode(r),this._edgeLabels[u]=s?i:this._defaultEdgeLabelFn(n,r,t);var f=Xt(this._isDirected,n,r,t);return n=f.v,r=f.w,Object.freeze(f),this._edgeObjs[u]=f,ye(this._preds[r],n),ye(this._sucs[n],r),this._in[r][u]=f,this._out[n][u]=f,this._edgeCount++,this}edge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t);return this._edgeLabels[i]}hasEdge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t);return E(this._edgeLabels,i)}removeEdge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t),s=this._edgeObjs[i];return s&&(n=s.v,r=s.w,delete this._edgeLabels[i],delete this._edgeObjs[i],Ae(this._preds[r],n),Ae(this._sucs[n],r),delete this._in[r][i],delete this._out[n][i],this._edgeCount--),this}inEdges(n,r){var t=this._in[n];if(t){var i=H(t);return r?D(i,function(s){return s.v===r}):i}}outEdges(n,r){var t=this._out[n];if(t){var i=H(t);return r?D(i,function(s){return s.w===r}):i}}nodeEdges(n,r){var t=this.inEdges(n,r);if(t)return t.concat(this.outEdges(n,r))}}Ye.prototype._nodeCount=0;Ye.prototype._edgeCount=0;function ye(e,n){e[n]?e[n]++:e[n]=1}function Ae(e,n){--e[n]||delete e[n]}function L(e,n,r,t){var i=""+n,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}return i+be+s+be+($(t)?qt:t)}function Xt(e,n,r,t){var i=""+n,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}var u={v:i,w:s};return t&&(u.name=t),u}function Y(e,n){return L(e,n.v,n.w,n.name)}export{Ye as G,B as a,In as b,He as c,ln as d,ee as e,v as f,$e as g,E as h,J as i,Ft as j,T as k,St as l,Ie as m,Ce as n,vt as o,wn as p,$ as q,D as r,jt as s,U as t,H as v}; +import{B as I,C as Ze,S as m,D as y,E as Te,F as qe,G as Xe,H as Je,I as Ee,J as G,K as X,L as Qe,M as me,N as We,O as C,P as x,Q as Oe,R as ve,T as ze,U as Z,V as Ve,W as ke,X as P,Y as en,Z as nn,_ as rn,$ as re,a0 as tn,a1 as sn,a2 as an,a3 as we,a4 as un,a5 as j,a6 as fn,a7 as on,a8 as M,a9 as te,aa as ie}from"./mermaid.core-D8sVPjx9.js";var dn="[object Symbol]";function J(e){return typeof e=="symbol"||I(e)&&Ze(e)==dn}function $e(e,n){for(var r=-1,t=e==null?0:e.length,i=Array(t);++r-1}function T(e){return Te(e)?qe(e):Xe(e)}var yn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,An=/^\w*$/;function Q(e,n){if(y(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||J(e)?!0:An.test(e)||!yn.test(e)||n!=null&&e in Object(n)}var Tn=500;function En(e){var n=Je(e,function(t){return r.size===Tn&&r.clear(),t}),r=n.cache;return n}var mn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,On=/\\(\\)?/g,vn=En(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(mn,function(r,t,i,s){n.push(i?s.replace(On,"$1"):t||r)}),n});function wn(e){return e==null?"":Le(e)}function Ie(e,n){return y(e)?e:Q(e,n)?[e]:vn(wn(e))}var $n=1/0;function U(e){if(typeof e=="string"||J(e))return e;var n=e+"";return n=="0"&&1/e==-$n?"-0":n}function Ce(e,n){n=Ie(n,e);for(var r=0,t=n.length;e!=null&&ru))return!1;var l=s.get(e),g=s.get(n);if(l&&g)return l==n&&g==e;var o=-1,h=!0,A=r&Qr?new S:void 0;for(s.set(e,n),s.set(n,e);++o=Ht){var l=Kt(e);if(l)return V(l);a=!1,i=Ge,f=new S}else f=u;e:for(;++t1?i.setNode(s,r):i.setNode(s)}),this}setNode(n,r){return E(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=r),this):(this._nodes[n]=arguments.length>1?r:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=w,this._children[n]={},this._children[w][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return E(this._nodes,n)}removeNode(n){var r=this;if(E(this._nodes,n)){var t=function(i){r.removeEdge(r._edgeObjs[i])};delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],v(this.children(n),function(i){r.setParent(i)}),delete this._children[n]),v(T(this._in[n]),t),delete this._in[n],delete this._preds[n],v(T(this._out[n]),t),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(n,r){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if($(r))r=w;else{r+="";for(var t=r;!$(t);t=this.parent(t))if(t===n)throw new Error("Setting "+r+" as parent of "+n+" would create a cycle");this.setNode(r)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=r,this._children[r][n]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(n){if(this._isCompound){var r=this._parent[n];if(r!==w)return r}}children(n){if($(n)&&(n=w),this._isCompound){var r=this._children[n];if(r)return T(r)}else{if(n===w)return this.nodes();if(this.hasNode(n))return[]}}predecessors(n){var r=this._preds[n];if(r)return T(r)}successors(n){var r=this._sucs[n];if(r)return T(r)}neighbors(n){var r=this.predecessors(n);if(r)return Zt(r,this.successors(n))}isLeaf(n){var r;return this.isDirected()?r=this.successors(n):r=this.neighbors(n),r.length===0}filterNodes(n){var r=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});r.setGraph(this.graph());var t=this;v(this._nodes,function(a,u){n(u)&&r.setNode(u,a)}),v(this._edgeObjs,function(a){r.hasNode(a.v)&&r.hasNode(a.w)&&r.setEdge(a,t.edge(a))});var i={};function s(a){var u=t.parent(a);return u===void 0||r.hasNode(u)?(i[a]=u,u):u in i?i[u]:s(u)}return this._isCompound&&v(r.nodes(),function(a){r.setParent(a,s(a))}),r}setDefaultEdgeLabel(n){return te(n)||(n=M(n)),this._defaultEdgeLabelFn=n,this}edgeCount(){return this._edgeCount}edges(){return H(this._edgeObjs)}setPath(n,r){var t=this,i=arguments;return jt(n,function(s,a){return i.length>1?t.setEdge(s,a,r):t.setEdge(s,a),a}),this}setEdge(){var n,r,t,i,s=!1,a=arguments[0];typeof a=="object"&&a!==null&&"v"in a?(n=a.v,r=a.w,t=a.name,arguments.length===2&&(i=arguments[1],s=!0)):(n=a,r=arguments[1],t=arguments[3],arguments.length>2&&(i=arguments[2],s=!0)),n=""+n,r=""+r,$(t)||(t=""+t);var u=L(this._isDirected,n,r,t);if(E(this._edgeLabels,u))return s&&(this._edgeLabels[u]=i),this;if(!$(t)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(n),this.setNode(r),this._edgeLabels[u]=s?i:this._defaultEdgeLabelFn(n,r,t);var f=Xt(this._isDirected,n,r,t);return n=f.v,r=f.w,Object.freeze(f),this._edgeObjs[u]=f,ye(this._preds[r],n),ye(this._sucs[n],r),this._in[r][u]=f,this._out[n][u]=f,this._edgeCount++,this}edge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t);return this._edgeLabels[i]}hasEdge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t);return E(this._edgeLabels,i)}removeEdge(n,r,t){var i=arguments.length===1?Y(this._isDirected,arguments[0]):L(this._isDirected,n,r,t),s=this._edgeObjs[i];return s&&(n=s.v,r=s.w,delete this._edgeLabels[i],delete this._edgeObjs[i],Ae(this._preds[r],n),Ae(this._sucs[n],r),delete this._in[r][i],delete this._out[n][i],this._edgeCount--),this}inEdges(n,r){var t=this._in[n];if(t){var i=H(t);return r?D(i,function(s){return s.v===r}):i}}outEdges(n,r){var t=this._out[n];if(t){var i=H(t);return r?D(i,function(s){return s.w===r}):i}}nodeEdges(n,r){var t=this.inEdges(n,r);if(t)return t.concat(this.outEdges(n,r))}}Ye.prototype._nodeCount=0;Ye.prototype._edgeCount=0;function ye(e,n){e[n]?e[n]++:e[n]=1}function Ae(e,n){--e[n]||delete e[n]}function L(e,n,r,t){var i=""+n,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}return i+be+s+be+($(t)?qt:t)}function Xt(e,n,r,t){var i=""+n,s=""+r;if(!e&&i>s){var a=i;i=s,s=a}var u={v:i,w:s};return t&&(u.name=t),u}function Y(e,n){return L(e,n.v,n.w,n.name)}export{Ye as G,B as a,In as b,He as c,ln as d,ee as e,v as f,$e as g,E as h,J as i,Ft as j,T as k,St as l,Ie as m,Ce as n,vt as o,wn as p,$ as q,D as r,jt as s,U as t,H as v}; diff --git a/assets/index-01f381cb-DBfo_-ML.js b/assets/index-01f381cb-CtMJaTFR.js similarity index 96% rename from assets/index-01f381cb-DBfo_-ML.js rename to assets/index-01f381cb-CtMJaTFR.js index a2c233d..d19960b 100644 --- a/assets/index-01f381cb-DBfo_-ML.js +++ b/assets/index-01f381cb-CtMJaTFR.js @@ -1 +1 @@ -import{q as N,G as A}from"./graph-k1ojK0f-.js";import{m as $,l as q}from"./layout-CbxIxNpL.js";import{c as H}from"./clone-B4YCsPuJ.js";import{i as V,u as U,s as W,a as _,b as z,g as D,p as O,c as K,d as Q,e as Y,f as Z,h as J,j as p}from"./edges-066a5561-31kAkIJ0.js";import{l as s,c as T,q as S,h as L}from"./mermaid.core-Cio1iadR.js";import{c as I}from"./createText-ca0c5216-BYApgeQh.js";function m(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:tt(e),edges:et(e)};return N(e.graph())||(t.value=H(e.graph())),t}function tt(e){return $(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),i={v:t};return N(n)||(i.value=n),N(r)||(i.parent=r),i})}function et(e){return $(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return N(t.name)||(r.name=t.name),N(n)||(r.value=n),r})}let l={},g={},R={};const nt=()=>{g={},R={},l={}},B=(e,t)=>(s.trace("In isDescendant",t," ",e," = ",g[t].includes(e)),!!g[t].includes(e)),it=(e,t)=>(s.info("Descendants of ",t," is ",g[t]),s.info("Edge is ",e),e.v===t||e.w===t?!1:g[t]?g[t].includes(e.v)||B(e.v,t)||B(e.w,t)||g[t].includes(e.w):(s.debug("Tilt, ",t,",not in descendants"),!1)),P=(e,t,n,r)=>{s.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const i=t.children(e)||[];e!==r&&i.push(e),s.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach(a=>{if(t.children(a).length>0)P(a,t,n,r);else{const d=t.node(a);s.info("cp ",a," to ",r," with parent ",e),n.setNode(a,d),r!==t.parent(a)&&(s.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==r&&a!==e?(s.debug("Setting parent",a,e),n.setParent(a,e)):(s.info("In copy ",e,"root",r,"data",t.node(e),r),s.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==r,"node!==clusterId",a!==e));const u=t.edges(a);s.debug("Copying Edges",u),u.forEach(f=>{s.info("Edge",f);const h=t.edge(f.v,f.w,f.name);s.info("Edge data",h,r);try{it(f,r)?(s.info("Copying as ",f.v,f.w,h,f.name),n.setEdge(f.v,f.w,h,f.name),s.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):s.info("Skipping copy of edge ",f.v,"-->",f.w," rootId: ",r," clusterId:",e)}catch(w){s.error(w)}})}s.debug("Removing node",a),t.removeNode(a)})},k=(e,t)=>{const n=t.children(e);let r=[...n];for(const i of n)R[i]=e,r=[...r,...k(i,t)];return r},C=(e,t)=>{s.trace("Searching",e);const n=t.children(e);if(s.trace("Searching children of id ",e,n),n.length<1)return s.trace("This is a valid node",e),e;for(const r of n){const i=C(r,t);if(i)return s.trace("Found replacement for",e," => ",i),i}},X=e=>!l[e]||!l[e].externalConnections?e:l[e]?l[e].id:e,st=(e,t)=>{if(!e||t>10){s.debug("Opting out, no graph ");return}else s.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(s.warn("Cluster identified",n," Replacement id in edges: ",C(n,e)),g[n]=k(n,e),l[n]={id:C(n,e),clusterData:e.node(n)})}),e.nodes().forEach(function(n){const r=e.children(n),i=e.edges();r.length>0?(s.debug("Cluster identified",n,g),i.forEach(a=>{if(a.v!==n&&a.w!==n){const d=B(a.v,n),u=B(a.w,n);d^u&&(s.warn("Edge: ",a," leaves cluster ",n),s.warn("Descendants of XXX ",n,": ",g[n]),l[n].externalConnections=!0)}})):s.debug("Not a cluster ",n,g)});for(let n of Object.keys(l)){const r=l[n].id,i=e.parent(r);i!==n&&l[i]&&!l[i].externalConnections&&(l[n].id=i)}e.edges().forEach(function(n){const r=e.edge(n);s.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),s.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let i=n.v,a=n.w;if(s.warn("Fix XXX",l,"ids:",n.v,n.w,"Translating: ",l[n.v]," --- ",l[n.w]),l[n.v]&&l[n.w]&&l[n.v]===l[n.w]){s.warn("Fixing and trixing link to self - removing XXX",n.v,n.w,n.name),s.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),i=X(n.v),a=X(n.w),e.removeEdge(n.v,n.w,n.name);const d=n.w+"---"+n.v;e.setNode(d,{domId:d,id:d,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});const u=structuredClone(r),f=structuredClone(r);u.label="",u.arrowTypeEnd="none",f.label="",u.fromCluster=n.v,f.toCluster=n.v,e.setEdge(i,d,u,n.name+"-cyclic-special"),e.setEdge(d,a,f,n.name+"-cyclic-special")}else if(l[n.v]||l[n.w]){if(s.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),i=X(n.v),a=X(n.w),e.removeEdge(n.v,n.w,n.name),i!==n.v){const d=e.parent(i);l[d].externalConnections=!0,r.fromCluster=n.v}if(a!==n.w){const d=e.parent(a);l[d].externalConnections=!0,r.toCluster=n.w}s.warn("Fix Replacing with XXX",i,a,n.name),e.setEdge(i,a,r,n.name)}}),s.warn("Adjusted Graph",m(e)),F(e,0),s.trace(l)},F=(e,t)=>{if(s.warn("extractor - ",t,m(e),e.children("D")),t>10){s.error("Bailing out");return}let n=e.nodes(),r=!1;for(const i of n){const a=e.children(i);r=r||a.length>0}if(!r){s.debug("Done, no node has children",e.nodes());return}s.debug("Nodes = ",n,t);for(const i of n)if(s.debug("Extracting node",i,l,l[i]&&!l[i].externalConnections,!e.parent(i),e.node(i),e.children("D")," Depth ",t),!l[i])s.debug("Not a cluster",i,t);else if(!l[i].externalConnections&&e.children(i)&&e.children(i).length>0){s.warn("Cluster without external connections, without a parent and with children",i,t);let d=e.graph().rankdir==="TB"?"LR":"TB";l[i]&&l[i].clusterData&&l[i].clusterData.dir&&(d=l[i].clusterData.dir,s.warn("Fixing dir",l[i].clusterData.dir,d));const u=new A({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});s.warn("Old graph before copy",m(e)),P(i,e,u,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:l[i].clusterData,labelText:l[i].labelText,graph:u}),s.warn("New graph after copy node: (",i,")",m(u)),s.debug("Old graph after copy",m(e))}else s.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!l[i].externalConnections," no parent: ",!e.parent(i)," children ",e.children(i)&&e.children(i).length>0,e.children("D"),t),s.debug(l);n=e.nodes(),s.warn("New list of nodes",n);for(const i of n){const a=e.node(i);s.warn(" Now next level",i,a),a.clusterNode&&F(a.graph,t+1)}},G=(e,t)=>{if(t.length===0)return[];let n=Object.assign(t);return t.forEach(r=>{const i=e.children(r),a=G(e,i);n=[...n,...a]}),n},rt=e=>G(e,e.children()),at=(e,t)=>{s.info("Creating subgraph rect for ",t.id,t);const n=T(),r=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),i=r.insert("rect",":first-child"),a=S(n.flowchart.htmlLabels),d=r.insert("g").attr("class","cluster-label"),u=t.labelType==="markdown"?I(d,t.labelText,{style:t.labelStyle,useHtmlLabels:a}):d.node().appendChild(J(t.labelText,t.labelStyle,void 0,!0));let f=u.getBBox();if(S(n.flowchart.htmlLabels)){const c=u.children[0],o=L(u);f=c.getBoundingClientRect(),o.attr("width",f.width),o.attr("height",f.height)}const h=0*t.padding,w=h/2,x=t.width<=f.width+h?f.width+h:t.width;t.width<=f.width+h?t.diff=(f.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,s.trace("Data ",t,JSON.stringify(t)),i.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-x/2).attr("y",t.y-t.height/2-w).attr("width",x).attr("height",t.height+h);const{subGraphTitleTopMargin:v}=D(n);a?d.attr("transform",`translate(${t.x-f.width/2}, ${t.y-t.height/2+v})`):d.attr("transform",`translate(${t.x}, ${t.y-t.height/2+v})`);const y=i.node().getBBox();return t.width=y.width,t.height=y.height,t.intersect=function(c){return p(t,c)},r},ct=(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2-a).attr("width",t.width+i).attr("height",t.height+i).attr("fill","none");const d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.intersect=function(u){return p(t,u)},n},ot=(e,t)=>{const n=T(),r=e.insert("g").attr("class",t.classes).attr("id",t.id),i=r.insert("rect",":first-child"),a=r.insert("g").attr("class","cluster-label"),d=r.append("rect"),u=a.node().appendChild(J(t.labelText,t.labelStyle,void 0,!0));let f=u.getBBox();if(S(n.flowchart.htmlLabels)){const c=u.children[0],o=L(u);f=c.getBoundingClientRect(),o.attr("width",f.width),o.attr("height",f.height)}f=u.getBBox();const h=0*t.padding,w=h/2,x=t.width<=f.width+t.padding?f.width+t.padding:t.width;t.width<=f.width+t.padding?t.diff=(f.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,i.attr("class","outer").attr("x",t.x-x/2-w).attr("y",t.y-t.height/2-w).attr("width",x+h).attr("height",t.height+h),d.attr("class","inner").attr("x",t.x-x/2-w).attr("y",t.y-t.height/2-w+f.height-1).attr("width",x+h).attr("height",t.height+h-f.height-3);const{subGraphTitleTopMargin:v}=D(n);a.attr("transform",`translate(${t.x-f.width/2}, ${t.y-t.height/2-t.padding/3+(S(n.flowchart.htmlLabels)?5:3)+v})`);const y=i.node().getBBox();return t.height=y.height,t.intersect=function(c){return p(t,c)},r},lt=(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("class","divider").attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2).attr("width",t.width+i).attr("height",t.height+i);const d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.diff=-t.padding/2,t.intersect=function(u){return p(t,u)},n},ft={rect:at,roundedWithTitle:ot,noteGroup:ct,divider:lt};let j={};const dt=(e,t)=>{s.trace("Inserting cluster");const n=t.shape||"rect";j[t.id]=ft[n](e,t)},ut=()=>{j={}},M=async(e,t,n,r,i,a)=>{s.info("Graph in recursive render: XXX",m(t),i);const d=t.graph().rankdir;s.trace("Dir in recursive render - dir:",d);const u=e.insert("g").attr("class","root");t.nodes()?s.info("Recursive render XXX",t.nodes()):s.info("No nodes found for",t),t.edges().length>0&&s.trace("Recursive edges",t.edge(t.edges()[0]));const f=u.insert("g").attr("class","clusters"),h=u.insert("g").attr("class","edgePaths"),w=u.insert("g").attr("class","edgeLabels"),x=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(c){const o=t.node(c);if(i!==void 0){const b=JSON.parse(JSON.stringify(i.clusterData));s.info("Setting data for cluster XXX (",c,") ",b,i),t.setNode(i.id,b),t.parent(c)||(s.trace("Setting parent",c,i.id),t.setParent(c,i.id,b))}if(s.info("(Insert) Node XXX"+c+": "+JSON.stringify(t.node(c))),o&&o.clusterNode){s.info("Cluster identified",c,o.width,t.node(c));const b=await M(x,o.graph,n,r,t.node(c),a),E=b.elem;U(o,E),o.diff=b.diff||0,s.info("Node bounds (abc123)",c,o,o.width,o.x,o.y),W(E,o),s.warn("Recursive render complete ",E,o)}else t.children(c).length>0?(s.info("Cluster - the non recursive path XXX",c,o.id,o,t),s.info(C(o.id,t)),l[o.id]={id:C(o.id,t),node:o}):(s.info("Node - the non recursive path",c,o.id,o),await _(x,t.node(c),d))})),t.edges().forEach(function(c){const o=t.edge(c.v,c.w,c.name);s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c)),s.info("Edge "+c.v+" -> "+c.w+": ",c," ",JSON.stringify(t.edge(c))),s.info("Fix",l,"ids:",c.v,c.w,"Translating: ",l[c.v],l[c.w]),z(w,o)}),t.edges().forEach(function(c){s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c))}),s.info("#############################################"),s.info("### Layout ###"),s.info("#############################################"),s.info(t),q(t),s.info("Graph after layout:",m(t));let v=0;const{subGraphTitleTotalMargin:y}=D(a);return rt(t).forEach(function(c){const o=t.node(c);s.info("Position "+c+": "+JSON.stringify(t.node(c))),s.info("Position "+c+": ("+o.x,","+o.y,") width: ",o.width," height: ",o.height),o&&o.clusterNode?(o.y+=y,O(o)):t.children(c).length>0?(o.height+=y,dt(f,o),l[o.id].node=o):(o.y+=y/2,O(o))}),t.edges().forEach(function(c){const o=t.edge(c);s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(o),o),o.points.forEach(E=>E.y+=y/2);const b=K(h,c,o,l,n,t,r);Q(o,b)}),t.nodes().forEach(function(c){const o=t.node(c);s.info(c,o.type,o.diff),o.type==="group"&&(v=o.diff)}),{elem:u,diff:v}},bt=async(e,t,n,r,i)=>{V(e,n,r,i),Y(),Z(),ut(),nt(),s.warn("Graph at first:",JSON.stringify(m(t))),st(t),s.warn("Graph after:",JSON.stringify(m(t)));const a=T();await M(e,t,r,i,void 0,a)};export{bt as r}; +import{q as N,G as A}from"./graph-BKQChTdx.js";import{m as $,l as q}from"./layout-Bwrh1hP1.js";import{c as H}from"./clone-SNQTcLae.js";import{i as V,u as U,s as W,a as _,b as z,g as D,p as O,c as K,d as Q,e as Y,f as Z,h as J,j as p}from"./edges-066a5561-Cesv2_yT.js";import{l as s,c as T,q as S,h as L}from"./mermaid.core-D8sVPjx9.js";import{c as I}from"./createText-ca0c5216-zqCXB1ps.js";function m(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:tt(e),edges:et(e)};return N(e.graph())||(t.value=H(e.graph())),t}function tt(e){return $(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),i={v:t};return N(n)||(i.value=n),N(r)||(i.parent=r),i})}function et(e){return $(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return N(t.name)||(r.name=t.name),N(n)||(r.value=n),r})}let l={},g={},R={};const nt=()=>{g={},R={},l={}},B=(e,t)=>(s.trace("In isDescendant",t," ",e," = ",g[t].includes(e)),!!g[t].includes(e)),it=(e,t)=>(s.info("Descendants of ",t," is ",g[t]),s.info("Edge is ",e),e.v===t||e.w===t?!1:g[t]?g[t].includes(e.v)||B(e.v,t)||B(e.w,t)||g[t].includes(e.w):(s.debug("Tilt, ",t,",not in descendants"),!1)),P=(e,t,n,r)=>{s.warn("Copying children of ",e,"root",r,"data",t.node(e),r);const i=t.children(e)||[];e!==r&&i.push(e),s.warn("Copying (nodes) clusterId",e,"nodes",i),i.forEach(a=>{if(t.children(a).length>0)P(a,t,n,r);else{const d=t.node(a);s.info("cp ",a," to ",r," with parent ",e),n.setNode(a,d),r!==t.parent(a)&&(s.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==r&&a!==e?(s.debug("Setting parent",a,e),n.setParent(a,e)):(s.info("In copy ",e,"root",r,"data",t.node(e),r),s.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==r,"node!==clusterId",a!==e));const u=t.edges(a);s.debug("Copying Edges",u),u.forEach(f=>{s.info("Edge",f);const h=t.edge(f.v,f.w,f.name);s.info("Edge data",h,r);try{it(f,r)?(s.info("Copying as ",f.v,f.w,h,f.name),n.setEdge(f.v,f.w,h,f.name),s.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):s.info("Skipping copy of edge ",f.v,"-->",f.w," rootId: ",r," clusterId:",e)}catch(w){s.error(w)}})}s.debug("Removing node",a),t.removeNode(a)})},k=(e,t)=>{const n=t.children(e);let r=[...n];for(const i of n)R[i]=e,r=[...r,...k(i,t)];return r},C=(e,t)=>{s.trace("Searching",e);const n=t.children(e);if(s.trace("Searching children of id ",e,n),n.length<1)return s.trace("This is a valid node",e),e;for(const r of n){const i=C(r,t);if(i)return s.trace("Found replacement for",e," => ",i),i}},X=e=>!l[e]||!l[e].externalConnections?e:l[e]?l[e].id:e,st=(e,t)=>{if(!e||t>10){s.debug("Opting out, no graph ");return}else s.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(s.warn("Cluster identified",n," Replacement id in edges: ",C(n,e)),g[n]=k(n,e),l[n]={id:C(n,e),clusterData:e.node(n)})}),e.nodes().forEach(function(n){const r=e.children(n),i=e.edges();r.length>0?(s.debug("Cluster identified",n,g),i.forEach(a=>{if(a.v!==n&&a.w!==n){const d=B(a.v,n),u=B(a.w,n);d^u&&(s.warn("Edge: ",a," leaves cluster ",n),s.warn("Descendants of XXX ",n,": ",g[n]),l[n].externalConnections=!0)}})):s.debug("Not a cluster ",n,g)});for(let n of Object.keys(l)){const r=l[n].id,i=e.parent(r);i!==n&&l[i]&&!l[i].externalConnections&&(l[n].id=i)}e.edges().forEach(function(n){const r=e.edge(n);s.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),s.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let i=n.v,a=n.w;if(s.warn("Fix XXX",l,"ids:",n.v,n.w,"Translating: ",l[n.v]," --- ",l[n.w]),l[n.v]&&l[n.w]&&l[n.v]===l[n.w]){s.warn("Fixing and trixing link to self - removing XXX",n.v,n.w,n.name),s.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),i=X(n.v),a=X(n.w),e.removeEdge(n.v,n.w,n.name);const d=n.w+"---"+n.v;e.setNode(d,{domId:d,id:d,labelStyle:"",labelText:r.label,padding:0,shape:"labelRect",style:""});const u=structuredClone(r),f=structuredClone(r);u.label="",u.arrowTypeEnd="none",f.label="",u.fromCluster=n.v,f.toCluster=n.v,e.setEdge(i,d,u,n.name+"-cyclic-special"),e.setEdge(d,a,f,n.name+"-cyclic-special")}else if(l[n.v]||l[n.w]){if(s.warn("Fixing and trixing - removing XXX",n.v,n.w,n.name),i=X(n.v),a=X(n.w),e.removeEdge(n.v,n.w,n.name),i!==n.v){const d=e.parent(i);l[d].externalConnections=!0,r.fromCluster=n.v}if(a!==n.w){const d=e.parent(a);l[d].externalConnections=!0,r.toCluster=n.w}s.warn("Fix Replacing with XXX",i,a,n.name),e.setEdge(i,a,r,n.name)}}),s.warn("Adjusted Graph",m(e)),F(e,0),s.trace(l)},F=(e,t)=>{if(s.warn("extractor - ",t,m(e),e.children("D")),t>10){s.error("Bailing out");return}let n=e.nodes(),r=!1;for(const i of n){const a=e.children(i);r=r||a.length>0}if(!r){s.debug("Done, no node has children",e.nodes());return}s.debug("Nodes = ",n,t);for(const i of n)if(s.debug("Extracting node",i,l,l[i]&&!l[i].externalConnections,!e.parent(i),e.node(i),e.children("D")," Depth ",t),!l[i])s.debug("Not a cluster",i,t);else if(!l[i].externalConnections&&e.children(i)&&e.children(i).length>0){s.warn("Cluster without external connections, without a parent and with children",i,t);let d=e.graph().rankdir==="TB"?"LR":"TB";l[i]&&l[i].clusterData&&l[i].clusterData.dir&&(d=l[i].clusterData.dir,s.warn("Fixing dir",l[i].clusterData.dir,d));const u=new A({multigraph:!0,compound:!0}).setGraph({rankdir:d,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});s.warn("Old graph before copy",m(e)),P(i,e,u,i),e.setNode(i,{clusterNode:!0,id:i,clusterData:l[i].clusterData,labelText:l[i].labelText,graph:u}),s.warn("New graph after copy node: (",i,")",m(u)),s.debug("Old graph after copy",m(e))}else s.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!l[i].externalConnections," no parent: ",!e.parent(i)," children ",e.children(i)&&e.children(i).length>0,e.children("D"),t),s.debug(l);n=e.nodes(),s.warn("New list of nodes",n);for(const i of n){const a=e.node(i);s.warn(" Now next level",i,a),a.clusterNode&&F(a.graph,t+1)}},G=(e,t)=>{if(t.length===0)return[];let n=Object.assign(t);return t.forEach(r=>{const i=e.children(r),a=G(e,i);n=[...n,...a]}),n},rt=e=>G(e,e.children()),at=(e,t)=>{s.info("Creating subgraph rect for ",t.id,t);const n=T(),r=e.insert("g").attr("class","cluster"+(t.class?" "+t.class:"")).attr("id",t.id),i=r.insert("rect",":first-child"),a=S(n.flowchart.htmlLabels),d=r.insert("g").attr("class","cluster-label"),u=t.labelType==="markdown"?I(d,t.labelText,{style:t.labelStyle,useHtmlLabels:a}):d.node().appendChild(J(t.labelText,t.labelStyle,void 0,!0));let f=u.getBBox();if(S(n.flowchart.htmlLabels)){const c=u.children[0],o=L(u);f=c.getBoundingClientRect(),o.attr("width",f.width),o.attr("height",f.height)}const h=0*t.padding,w=h/2,x=t.width<=f.width+h?f.width+h:t.width;t.width<=f.width+h?t.diff=(f.width-t.width)/2-t.padding/2:t.diff=-t.padding/2,s.trace("Data ",t,JSON.stringify(t)),i.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-x/2).attr("y",t.y-t.height/2-w).attr("width",x).attr("height",t.height+h);const{subGraphTitleTopMargin:v}=D(n);a?d.attr("transform",`translate(${t.x-f.width/2}, ${t.y-t.height/2+v})`):d.attr("transform",`translate(${t.x}, ${t.y-t.height/2+v})`);const y=i.node().getBBox();return t.width=y.width,t.height=y.height,t.intersect=function(c){return p(t,c)},r},ct=(e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2-a).attr("width",t.width+i).attr("height",t.height+i).attr("fill","none");const d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.intersect=function(u){return p(t,u)},n},ot=(e,t)=>{const n=T(),r=e.insert("g").attr("class",t.classes).attr("id",t.id),i=r.insert("rect",":first-child"),a=r.insert("g").attr("class","cluster-label"),d=r.append("rect"),u=a.node().appendChild(J(t.labelText,t.labelStyle,void 0,!0));let f=u.getBBox();if(S(n.flowchart.htmlLabels)){const c=u.children[0],o=L(u);f=c.getBoundingClientRect(),o.attr("width",f.width),o.attr("height",f.height)}f=u.getBBox();const h=0*t.padding,w=h/2,x=t.width<=f.width+t.padding?f.width+t.padding:t.width;t.width<=f.width+t.padding?t.diff=(f.width+t.padding*0-t.width)/2:t.diff=-t.padding/2,i.attr("class","outer").attr("x",t.x-x/2-w).attr("y",t.y-t.height/2-w).attr("width",x+h).attr("height",t.height+h),d.attr("class","inner").attr("x",t.x-x/2-w).attr("y",t.y-t.height/2-w+f.height-1).attr("width",x+h).attr("height",t.height+h-f.height-3);const{subGraphTitleTopMargin:v}=D(n);a.attr("transform",`translate(${t.x-f.width/2}, ${t.y-t.height/2-t.padding/3+(S(n.flowchart.htmlLabels)?5:3)+v})`);const y=i.node().getBBox();return t.height=y.height,t.intersect=function(c){return p(t,c)},r},lt=(e,t)=>{const n=e.insert("g").attr("class",t.classes).attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,a=i/2;r.attr("class","divider").attr("x",t.x-t.width/2-a).attr("y",t.y-t.height/2).attr("width",t.width+i).attr("height",t.height+i);const d=r.node().getBBox();return t.width=d.width,t.height=d.height,t.diff=-t.padding/2,t.intersect=function(u){return p(t,u)},n},ft={rect:at,roundedWithTitle:ot,noteGroup:ct,divider:lt};let j={};const dt=(e,t)=>{s.trace("Inserting cluster");const n=t.shape||"rect";j[t.id]=ft[n](e,t)},ut=()=>{j={}},M=async(e,t,n,r,i,a)=>{s.info("Graph in recursive render: XXX",m(t),i);const d=t.graph().rankdir;s.trace("Dir in recursive render - dir:",d);const u=e.insert("g").attr("class","root");t.nodes()?s.info("Recursive render XXX",t.nodes()):s.info("No nodes found for",t),t.edges().length>0&&s.trace("Recursive edges",t.edge(t.edges()[0]));const f=u.insert("g").attr("class","clusters"),h=u.insert("g").attr("class","edgePaths"),w=u.insert("g").attr("class","edgeLabels"),x=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(c){const o=t.node(c);if(i!==void 0){const b=JSON.parse(JSON.stringify(i.clusterData));s.info("Setting data for cluster XXX (",c,") ",b,i),t.setNode(i.id,b),t.parent(c)||(s.trace("Setting parent",c,i.id),t.setParent(c,i.id,b))}if(s.info("(Insert) Node XXX"+c+": "+JSON.stringify(t.node(c))),o&&o.clusterNode){s.info("Cluster identified",c,o.width,t.node(c));const b=await M(x,o.graph,n,r,t.node(c),a),E=b.elem;U(o,E),o.diff=b.diff||0,s.info("Node bounds (abc123)",c,o,o.width,o.x,o.y),W(E,o),s.warn("Recursive render complete ",E,o)}else t.children(c).length>0?(s.info("Cluster - the non recursive path XXX",c,o.id,o,t),s.info(C(o.id,t)),l[o.id]={id:C(o.id,t),node:o}):(s.info("Node - the non recursive path",c,o.id,o),await _(x,t.node(c),d))})),t.edges().forEach(function(c){const o=t.edge(c.v,c.w,c.name);s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c)),s.info("Edge "+c.v+" -> "+c.w+": ",c," ",JSON.stringify(t.edge(c))),s.info("Fix",l,"ids:",c.v,c.w,"Translating: ",l[c.v],l[c.w]),z(w,o)}),t.edges().forEach(function(c){s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(c))}),s.info("#############################################"),s.info("### Layout ###"),s.info("#############################################"),s.info(t),q(t),s.info("Graph after layout:",m(t));let v=0;const{subGraphTitleTotalMargin:y}=D(a);return rt(t).forEach(function(c){const o=t.node(c);s.info("Position "+c+": "+JSON.stringify(t.node(c))),s.info("Position "+c+": ("+o.x,","+o.y,") width: ",o.width," height: ",o.height),o&&o.clusterNode?(o.y+=y,O(o)):t.children(c).length>0?(o.height+=y,dt(f,o),l[o.id].node=o):(o.y+=y/2,O(o))}),t.edges().forEach(function(c){const o=t.edge(c);s.info("Edge "+c.v+" -> "+c.w+": "+JSON.stringify(o),o),o.points.forEach(E=>E.y+=y/2);const b=K(h,c,o,l,n,t,r);Q(o,b)}),t.nodes().forEach(function(c){const o=t.node(c);s.info(c,o.type,o.diff),o.type==="group"&&(v=o.diff)}),{elem:u,diff:v}},bt=async(e,t,n,r,i)=>{V(e,n,r,i),Y(),Z(),ut(),nt(),s.warn("Graph at first:",JSON.stringify(m(t))),st(t),s.warn("Graph after:",JSON.stringify(m(t)));const a=T();await M(e,t,r,i,void 0,a)};export{bt as r}; diff --git a/assets/index.html-D-kZ8pgQ.js b/assets/index.html-CnxRYwnI.js similarity index 81% rename from assets/index.html-D-kZ8pgQ.js rename to assets/index.html-CnxRYwnI.js index 8db679d..cb80243 100644 --- a/assets/index.html-D-kZ8pgQ.js +++ b/assets/index.html-CnxRYwnI.js @@ -1 +1 @@ -import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as s,c as r,b as e,e as a,w as l,d as o}from"./app-BQ_RvZRm.js";const c={},p=e("h1",{id:"available-components",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#available-components"},[e("span",null,"Available components")])],-1),d=e("p",null,"In this section, you can find a list of officially supported plugins for the taskiq.",-1);function m(u,h){const t=i("RouteLink");return s(),r("div",null,[p,d,e("ul",null,[e("li",null,[a(t,{to:"/available-components/brokers.html"},{default:l(()=>[o("Available brokers")]),_:1})]),e("li",null,[a(t,{to:"/available-components/middlewares.html"},{default:l(()=>[o("Available middlewares")]),_:1})]),e("li",null,[a(t,{to:"/available-components/result-backends.html"},{default:l(()=>[o("Available result backends")]),_:1})]),e("li",null,[a(t,{to:"/available-components/schedule-sources.html"},{default:l(()=>[o("Available schedule sources")]),_:1})])])])}const v=n(c,[["render",m],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/available-components/","title":"Available components","lang":"en-US","frontmatter":{"order":1,"dir":{"order":4},"description":"Available components In this section, you can find a list of officially supported plugins for the taskiq.","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/available-components/"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Available components"}],["meta",{"property":"og:description","content":"Available components In this section, you can find a list of officially supported plugins for the taskiq."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Available components\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"available-components/README.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

In this section, you can find a list of officially supported plugins for the taskiq.

\\n"}');export{v as comp,_ as data}; +import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as s,c as r,b as e,e as a,w as l,d as o}from"./app-B7rxM88G.js";const c={},p=e("h1",{id:"available-components",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#available-components"},[e("span",null,"Available components")])],-1),d=e("p",null,"In this section, you can find a list of officially supported plugins for the taskiq.",-1);function m(u,h){const t=i("RouteLink");return s(),r("div",null,[p,d,e("ul",null,[e("li",null,[a(t,{to:"/available-components/brokers.html"},{default:l(()=>[o("Available brokers")]),_:1})]),e("li",null,[a(t,{to:"/available-components/middlewares.html"},{default:l(()=>[o("Available middlewares")]),_:1})]),e("li",null,[a(t,{to:"/available-components/result-backends.html"},{default:l(()=>[o("Available result backends")]),_:1})]),e("li",null,[a(t,{to:"/available-components/schedule-sources.html"},{default:l(()=>[o("Available schedule sources")]),_:1})])])])}const v=n(c,[["render",m],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/available-components/","title":"Available components","lang":"en-US","frontmatter":{"order":1,"dir":{"order":4},"description":"Available components In this section, you can find a list of officially supported plugins for the taskiq.","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/available-components/"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Available components"}],["meta",{"property":"og:description","content":"Available components In this section, you can find a list of officially supported plugins for the taskiq."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Available components\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"available-components/README.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

In this section, you can find a list of officially supported plugins for the taskiq.

\\n"}');export{v as comp,_ as data}; diff --git a/assets/index.html-CcYOliuJ.js b/assets/index.html-D9AVDIxR.js similarity index 86% rename from assets/index.html-CcYOliuJ.js rename to assets/index.html-D9AVDIxR.js index 4d20dea..6f2ecfb 100644 --- a/assets/index.html-CcYOliuJ.js +++ b/assets/index.html-D9AVDIxR.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as r,c as o,b as e,e as a,w as i,d as t}from"./app-BQ_RvZRm.js";const c={},d=e("h1",{id:"extending-taskiq",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#extending-taskiq"},[e("span",null,"Extending taskiq")])],-1),u=e("p",null,"Taskiq is super extendable. The core library comes with different abstract classes. You can implement these abstract classes to extend functionality.",-1),h=e("p",null,[t("All abstract classes can be found in "),e("code",null,"taskiq.abc"),t(" package.")],-1),p=e("h2",{id:"contents",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#contents"},[e("span",null,"Contents:")])],-1);function m(k,g){const n=l("RouteLink");return r(),o("div",null,[d,u,h,p,e("ul",null,[e("li",null,[a(n,{to:"/extending-taskiq/broker.html"},{default:i(()=>[t("Brokers")]),_:1})]),e("li",null,[a(n,{to:"/extending-taskiq/middleware.html"},{default:i(()=>[t("Middlewares")]),_:1})]),e("li",null,[a(n,{to:"/extending-taskiq/result-backend.html"},{default:i(()=>[t("Result backends")]),_:1})]),e("li",null,[a(n,{to:"/extending-taskiq/cli.html"},{default:i(()=>[t("CLI")]),_:1})]),e("li",null,[a(n,{to:"/extending-taskiq/schedule-sources.html"},{default:i(()=>[t("Schedule sources")]),_:1})])])])}const f=s(c,[["render",m],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/extending-taskiq/","title":"Extending taskiq","lang":"en-US","frontmatter":{"dir":{"order":3},"description":"Extending taskiq Taskiq is super extendable. The core library comes with different abstract classes. You can implement these abstract classes to extend functionality. All abstra...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Extending taskiq"}],["meta",{"property":"og:description","content":"Extending taskiq Taskiq is super extendable. The core library comes with different abstract classes. You can implement these abstract classes to extend functionality. All abstra..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Extending taskiq\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Contents:","slug":"contents","link":"#contents","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/README.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Taskiq is super extendable. The core library comes with different abstract classes.\\nYou can implement these abstract classes to extend functionality.

\\n

All abstract classes can be found in taskiq.abc package.

\\n

Contents:

\\n"}');export{f as comp,_ as data}; +import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as r,c as o,b as e,e as a,w as i,d as t}from"./app-B7rxM88G.js";const c={},d=e("h1",{id:"extending-taskiq",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#extending-taskiq"},[e("span",null,"Extending taskiq")])],-1),u=e("p",null,"Taskiq is super extendable. The core library comes with different abstract classes. You can implement these abstract classes to extend functionality.",-1),h=e("p",null,[t("All abstract classes can be found in "),e("code",null,"taskiq.abc"),t(" package.")],-1),p=e("h2",{id:"contents",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#contents"},[e("span",null,"Contents:")])],-1);function m(k,g){const n=l("RouteLink");return r(),o("div",null,[d,u,h,p,e("ul",null,[e("li",null,[a(n,{to:"/extending-taskiq/broker.html"},{default:i(()=>[t("Brokers")]),_:1})]),e("li",null,[a(n,{to:"/extending-taskiq/middleware.html"},{default:i(()=>[t("Middlewares")]),_:1})]),e("li",null,[a(n,{to:"/extending-taskiq/result-backend.html"},{default:i(()=>[t("Result backends")]),_:1})]),e("li",null,[a(n,{to:"/extending-taskiq/cli.html"},{default:i(()=>[t("CLI")]),_:1})]),e("li",null,[a(n,{to:"/extending-taskiq/schedule-sources.html"},{default:i(()=>[t("Schedule sources")]),_:1})])])])}const f=s(c,[["render",m],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/extending-taskiq/","title":"Extending taskiq","lang":"en-US","frontmatter":{"dir":{"order":3},"description":"Extending taskiq Taskiq is super extendable. The core library comes with different abstract classes. You can implement these abstract classes to extend functionality. All abstra...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Extending taskiq"}],["meta",{"property":"og:description","content":"Extending taskiq Taskiq is super extendable. The core library comes with different abstract classes. You can implement these abstract classes to extend functionality. All abstra..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Extending taskiq\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Contents:","slug":"contents","link":"#contents","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/README.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Taskiq is super extendable. The core library comes with different abstract classes.\\nYou can implement these abstract classes to extend functionality.

\\n

All abstract classes can be found in taskiq.abc package.

\\n

Contents:

\\n"}');export{f as comp,_ as data}; diff --git a/assets/index.html-lKTVOM5N.js b/assets/index.html-DRuGpgM4.js similarity index 92% rename from assets/index.html-lKTVOM5N.js rename to assets/index.html-DRuGpgM4.js index 5303aa0..5e564ee 100644 --- a/assets/index.html-lKTVOM5N.js +++ b/assets/index.html-DRuGpgM4.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as e,c as n,a}from"./app-BQ_RvZRm.js";const i={},r=a('

Introduction

What is taskiq

Taskiq is a library that helps you send and process python functions in a distributed manner. For example, you have many heavy to calculate functions you want to execute on another server. You can implement interservice communication by yourself, or you can use Taskiq to make the job done easily.

The core library doesn't have much functionality. It provides two built-in brokers, CLI, basic functionality for creating distributed tasks, and abstractions to extend the taskiq. The main idea of taskiq is to make it modular and easy to extend. We have libraries for many possible use cases, but if you lack something, you can adopt taskiq to fit your needs.

Why not use existing libraries?

We created this project because we couldn't find any project that can execute and send async functions using distributed queues like RabbitMQ.

You might have seen projects built on top of asyncio that solve a similar problem, but here's a comparison table of the taskiq and other projects.

Feature nameTaskiqArqAioTasks
Actively maintained
Multiple broker backends
Multiple result backends
Have a rich documentation
Startup & Shutdown events
Have ability to abort tasks
Custom serializers
Dependency injection
Task pipelines
Task schedules
Global middlewares

If you have a fully synchronous project, consider using celery or dramatiq instead.

',9),s=[r];function l(o,d){return e(),n("div",null,s)}const h=t(i,[["render",l],["__file","index.html.vue"]]),u=JSON.parse('{"path":"/guide/","title":"Introduction","lang":"en-US","frontmatter":{"order":1,"dir":{"order":1},"description":"Introduction What is taskiq Taskiq is a library that helps you send and process python functions in a distributed manner. For example, you have many heavy to calculate functions...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Introduction"}],["meta",{"property":"og:description","content":"Introduction What is taskiq Taskiq is a library that helps you send and process python functions in a distributed manner. For example, you have many heavy to calculate functions..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Introduction\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"What is taskiq","slug":"what-is-taskiq","link":"#what-is-taskiq","children":[]},{"level":2,"title":"Why not use existing libraries?","slug":"why-not-use-existing-libraries","link":"#why-not-use-existing-libraries","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/README.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

What is taskiq

\\n

Taskiq is a library that helps you send and process python functions in a distributed manner.\\nFor example, you have many heavy to calculate functions you want to execute on another server.\\nYou can implement interservice communication by yourself, or you can use Taskiq to make the job done easily.

"}');export{h as comp,u as data}; +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as e,c as n,a}from"./app-B7rxM88G.js";const i={},r=a('

Introduction

What is taskiq

Taskiq is a library that helps you send and process python functions in a distributed manner. For example, you have many heavy to calculate functions you want to execute on another server. You can implement interservice communication by yourself, or you can use Taskiq to make the job done easily.

The core library doesn't have much functionality. It provides two built-in brokers, CLI, basic functionality for creating distributed tasks, and abstractions to extend the taskiq. The main idea of taskiq is to make it modular and easy to extend. We have libraries for many possible use cases, but if you lack something, you can adopt taskiq to fit your needs.

Why not use existing libraries?

We created this project because we couldn't find any project that can execute and send async functions using distributed queues like RabbitMQ.

You might have seen projects built on top of asyncio that solve a similar problem, but here's a comparison table of the taskiq and other projects.

Feature nameTaskiqArqAioTasks
Actively maintained
Multiple broker backends
Multiple result backends
Have a rich documentation
Startup & Shutdown events
Have ability to abort tasks
Custom serializers
Dependency injection
Task pipelines
Task schedules
Global middlewares

If you have a fully synchronous project, consider using celery or dramatiq instead.

',9),s=[r];function l(o,d){return e(),n("div",null,s)}const h=t(i,[["render",l],["__file","index.html.vue"]]),u=JSON.parse('{"path":"/guide/","title":"Introduction","lang":"en-US","frontmatter":{"order":1,"dir":{"order":1},"description":"Introduction What is taskiq Taskiq is a library that helps you send and process python functions in a distributed manner. For example, you have many heavy to calculate functions...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Introduction"}],["meta",{"property":"og:description","content":"Introduction What is taskiq Taskiq is a library that helps you send and process python functions in a distributed manner. For example, you have many heavy to calculate functions..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Introduction\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"What is taskiq","slug":"what-is-taskiq","link":"#what-is-taskiq","children":[]},{"level":2,"title":"Why not use existing libraries?","slug":"why-not-use-existing-libraries","link":"#why-not-use-existing-libraries","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/README.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

What is taskiq

\\n

Taskiq is a library that helps you send and process python functions in a distributed manner.\\nFor example, you have many heavy to calculate functions you want to execute on another server.\\nYou can implement interservice communication by yourself, or you can use Taskiq to make the job done easily.

"}');export{h as comp,u as data}; diff --git a/assets/index.html-DQbil-Mp.js b/assets/index.html-DxjDQWc4.js similarity index 81% rename from assets/index.html-DQbil-Mp.js rename to assets/index.html-DxjDQWc4.js index 3a3774d..d0f88f6 100644 --- a/assets/index.html-DQbil-Mp.js +++ b/assets/index.html-DxjDQWc4.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as a,c as n,b as e}from"./app-BQ_RvZRm.js";const o={},i=e("h1",{id:"framework-integrations",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#framework-integrations"},[e("span",null,"Framework integrations")])],-1),r=e("p",null,"Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework easy and fun!",-1),s=e("p",null,"Integrations with frameworks add two things:",-1),d=e("ol",null,[e("li",null,"Startup and Shutdown events;"),e("li",null,"Dependencies to use in your handler.")],-1),m=[i,r,s,d];function p(l,c){return a(),n("div",null,m)}const w=t(o,[["render",p],["__file","index.html.vue"]]),u=JSON.parse(`{"path":"/framework_integrations/","title":"Framework integrations","lang":"en-US","frontmatter":{"order":1,"dir":{"order":2},"description":"Framework integrations Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework eas...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/framework_integrations/"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Framework integrations"}],["meta",{"property":"og:description","content":"Framework integrations Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework eas..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Framework integrations\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"framework_integrations/README.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework easy and fun!

\\n

Integrations with frameworks add two things:

\\n
    \\n
  1. Startup and Shutdown events;
  2. \\n
  3. Dependencies to use in your handler.
  4. \\n
"}`);export{w as comp,u as data}; +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as a,c as n,b as e}from"./app-B7rxM88G.js";const o={},i=e("h1",{id:"framework-integrations",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#framework-integrations"},[e("span",null,"Framework integrations")])],-1),r=e("p",null,"Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework easy and fun!",-1),s=e("p",null,"Integrations with frameworks add two things:",-1),d=e("ol",null,[e("li",null,"Startup and Shutdown events;"),e("li",null,"Dependencies to use in your handler.")],-1),m=[i,r,s,d];function p(l,c){return a(),n("div",null,m)}const w=t(o,[["render",p],["__file","index.html.vue"]]),u=JSON.parse(`{"path":"/framework_integrations/","title":"Framework integrations","lang":"en-US","frontmatter":{"order":1,"dir":{"order":2},"description":"Framework integrations Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework eas...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/framework_integrations/"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Framework integrations"}],["meta",{"property":"og:description","content":"Framework integrations Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework eas..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Framework integrations\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"framework_integrations/README.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework easy and fun!

\\n

Integrations with frameworks add two things:

\\n
    \\n
  1. Startup and Shutdown events;
  2. \\n
  3. Dependencies to use in your handler.
  4. \\n
"}`);export{w as comp,u as data}; diff --git a/assets/index.html-DYeVH7vP.js b/assets/index.html-oKCnTwhT.js similarity index 91% rename from assets/index.html-DYeVH7vP.js rename to assets/index.html-oKCnTwhT.js index fc419a8..15104b8 100644 --- a/assets/index.html-DYeVH7vP.js +++ b/assets/index.html-oKCnTwhT.js @@ -1,2 +1,2 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as e,c as a,a as n}from"./app-BQ_RvZRm.js";const s={},o=n(`

What is taskiq in a nutshell

Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern and flexible.

It's not a drop-in replacement for any other task manager. It has a different ecosystem of libraries and a different set of features. Also, it doesn't work for synchronous projects. You won't be able to send tasks synchronously.

Installation

You can install taskiq with pip or your favorite dependency manager:

pip install taskiq
-
`,6),i=[o];function r(l,c){return e(),a("div",null,i)}const m=t(s,[["render",r],["__file","index.html.vue"]]),h=JSON.parse(`{"path":"/","title":"Task manager for asyncio","lang":"en-US","frontmatter":{"title":"Task manager for asyncio","home":true,"heroImage":"logo.svg","heroAlt":"logo","heroText":"Taskiq python","actions":[{"text":"Get Started","link":"/guide/getting-started.html","type":"primary"},{"text":"Introduction","link":"/guide/","type":"secondary"}],"head":[["meta",{"name":"google-site-verification","content":"hQCR5w2tmeuOvYIYXsOYU3u4kLNwT86lnqltANYlRQ0"}],["meta",{"name":"msvalidate.01","content":"97DC185FE0A2F5B123861F0790FDFB26"}],["meta",{"name":"yandex-verification","content":"9b105f7c58cbc920"}],["meta",{"property":"og:url","content":"https://taskiq-python.github.io/"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Task manager for asyncio"}],["meta",{"property":"og:description","content":"What is taskiq in a nutshell Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern and flexible. It's not a drop-in replace..."}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Task manager for asyncio\\",\\"description\\":\\"What is taskiq in a nutshell Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern and flexible. It's not a drop-in replace...\\"}"]],"features":[{"title":"Production ready","details":"Taskiq has proven that it can run in heavy production systems with high load."},{"title":"Fully asynchronous","details":"Taskiq can run both sync and async functions. You don't have to worry about it."},{"title":"Easily extensible","details":"Taskiq has a lot of replaceable components. It's super easy to implement your own broker or middleware."},{"title":"Strongly typed","details":"Taskiq provides correct autocompletion for most of its functionality."}],"footer":"MIT Licensed | Copyright© 2022-2023","description":"What is taskiq in a nutshell Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern and flexible. It's not a drop-in replace..."},"headers":[{"level":2,"title":"What is taskiq in a nutshell","slug":"what-is-taskiq-in-a-nutshell","link":"#what-is-taskiq-in-a-nutshell","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"README.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"

What is taskiq in a nutshell

\\n

Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern\\nand flexible.

\\n

It's not a drop-in replacement for any other task manager. It has a different ecosystem of libraries and a different set of features.\\nAlso, it doesn't work for synchronous projects. You won't be able to send tasks synchronously.

"}`);export{m as comp,h as data}; +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as e,c as a,a as n}from"./app-B7rxM88G.js";const s={},o=n(`

What is taskiq in a nutshell

Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern and flexible.

It's not a drop-in replacement for any other task manager. It has a different ecosystem of libraries and a different set of features. Also, it doesn't work for synchronous projects. You won't be able to send tasks synchronously.

Installation

You can install taskiq with pip or your favorite dependency manager:

pip install taskiq
+
`,6),i=[o];function r(l,c){return e(),a("div",null,i)}const m=t(s,[["render",r],["__file","index.html.vue"]]),h=JSON.parse(`{"path":"/","title":"Task manager for asyncio","lang":"en-US","frontmatter":{"title":"Task manager for asyncio","home":true,"heroImage":"logo.svg","heroAlt":"logo","heroText":"Taskiq python","actions":[{"text":"Get Started","link":"/guide/getting-started.html","type":"primary"},{"text":"Introduction","link":"/guide/","type":"secondary"}],"head":[["meta",{"name":"google-site-verification","content":"hQCR5w2tmeuOvYIYXsOYU3u4kLNwT86lnqltANYlRQ0"}],["meta",{"name":"msvalidate.01","content":"97DC185FE0A2F5B123861F0790FDFB26"}],["meta",{"name":"yandex-verification","content":"9b105f7c58cbc920"}],["meta",{"property":"og:url","content":"https://taskiq-python.github.io/"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Task manager for asyncio"}],["meta",{"property":"og:description","content":"What is taskiq in a nutshell Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern and flexible. It's not a drop-in replace..."}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Task manager for asyncio\\",\\"description\\":\\"What is taskiq in a nutshell Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern and flexible. It's not a drop-in replace...\\"}"]],"features":[{"title":"Production ready","details":"Taskiq has proven that it can run in heavy production systems with high load."},{"title":"Fully asynchronous","details":"Taskiq can run both sync and async functions. You don't have to worry about it."},{"title":"Easily extensible","details":"Taskiq has a lot of replaceable components. It's super easy to implement your own broker or middleware."},{"title":"Strongly typed","details":"Taskiq provides correct autocompletion for most of its functionality."}],"footer":"MIT Licensed | Copyright© 2022-2023","description":"What is taskiq in a nutshell Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern and flexible. It's not a drop-in replace..."},"headers":[{"level":2,"title":"What is taskiq in a nutshell","slug":"what-is-taskiq-in-a-nutshell","link":"#what-is-taskiq-in-a-nutshell","children":[]},{"level":2,"title":"Installation","slug":"installation","link":"#installation","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"README.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"

What is taskiq in a nutshell

\\n

Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern\\nand flexible.

\\n

It's not a drop-in replacement for any other task manager. It has a different ecosystem of libraries and a different set of features.\\nAlso, it doesn't work for synchronous projects. You won't be able to send tasks synchronously.

"}`);export{m as comp,h as data}; diff --git a/assets/infoDiagram-94cd232f-znpLWbNm.js b/assets/infoDiagram-94cd232f-CpI5hD6J.js similarity index 98% rename from assets/infoDiagram-94cd232f-znpLWbNm.js rename to assets/infoDiagram-94cd232f-CpI5hD6J.js index 8de81a7..80a599a 100644 --- a/assets/infoDiagram-94cd232f-znpLWbNm.js +++ b/assets/infoDiagram-94cd232f-CpI5hD6J.js @@ -1,4 +1,4 @@ -import{l as Y,aJ as D,i as M}from"./mermaid.core-Cio1iadR.js";import"./app-BQ_RvZRm.js";var O=function(){var a=function(u,t,e,n){for(e=e||{},n=u.length;n--;e[u[n]]=t);return e},f=[6,9,10],m={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,n,s,r,i,d){switch(i.length-1,r){case 1:return s;case 4:break;case 6:s.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},a(f,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},a(f,[2,3]),a(f,[2,4]),a(f,[2,5]),a(f,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=e,n}},parse:function(t){var e=this,n=[0],s=[],r=[null],i=[],d=this.table,P="",v=0,L=0,N=2,T=1,R=i.slice.call(arguments,1),o=Object.create(this.lexer),p={yy:{}};for(var E in this.yy)Object.prototype.hasOwnProperty.call(this.yy,E)&&(p.yy[E]=this.yy[E]);o.setInput(t,p.yy),p.yy.lexer=o,p.yy.parser=this,typeof o.yylloc>"u"&&(o.yylloc={});var I=o.yylloc;i.push(I);var z=o.options&&o.options.ranges;typeof p.yy.parseError=="function"?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function U(){var y;return y=s.pop()||o.lex()||T,typeof y!="number"&&(y instanceof Array&&(s=y,y=s.pop()),y=e.symbols_[y]||y),y}for(var l,g,h,w,_={},b,c,F,S;;){if(g=n[n.length-1],this.defaultActions[g]?h=this.defaultActions[g]:((l===null||typeof l>"u")&&(l=U()),h=d[g]&&d[g][l]),typeof h>"u"||!h.length||!h[0]){var A="";S=[];for(b in d[g])this.terminals_[b]&&b>N&&S.push("'"+this.terminals_[b]+"'");o.showPosition?A="Parse error on line "+(v+1)+`: +import{l as Y,aJ as D,i as M}from"./mermaid.core-D8sVPjx9.js";import"./app-B7rxM88G.js";var O=function(){var a=function(u,t,e,n){for(e=e||{},n=u.length;n--;e[u[n]]=t);return e},f=[6,9,10],m={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,n,s,r,i,d){switch(i.length-1,r){case 1:return s;case 4:break;case 6:s.setInfo(!0);break}},table:[{3:1,4:[1,2]},{1:[3]},a(f,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},a(f,[2,3]),a(f,[2,4]),a(f,[2,5]),a(f,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(e.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=e,n}},parse:function(t){var e=this,n=[0],s=[],r=[null],i=[],d=this.table,P="",v=0,L=0,N=2,T=1,R=i.slice.call(arguments,1),o=Object.create(this.lexer),p={yy:{}};for(var E in this.yy)Object.prototype.hasOwnProperty.call(this.yy,E)&&(p.yy[E]=this.yy[E]);o.setInput(t,p.yy),p.yy.lexer=o,p.yy.parser=this,typeof o.yylloc>"u"&&(o.yylloc={});var I=o.yylloc;i.push(I);var z=o.options&&o.options.ranges;typeof p.yy.parseError=="function"?this.parseError=p.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function U(){var y;return y=s.pop()||o.lex()||T,typeof y!="number"&&(y instanceof Array&&(s=y,y=s.pop()),y=e.symbols_[y]||y),y}for(var l,g,h,w,_={},b,c,F,S;;){if(g=n[n.length-1],this.defaultActions[g]?h=this.defaultActions[g]:((l===null||typeof l>"u")&&(l=U()),h=d[g]&&d[g][l]),typeof h>"u"||!h.length||!h[0]){var A="";S=[];for(b in d[g])this.terminals_[b]&&b>N&&S.push("'"+this.terminals_[b]+"'");o.showPosition?A="Parse error on line "+(v+1)+`: `+o.showPosition()+` Expecting `+S.join(", ")+", got '"+(this.terminals_[l]||l)+"'":A="Parse error on line "+(v+1)+": Unexpected "+(l==T?"end of input":"'"+(this.terminals_[l]||l)+"'"),this.parseError(A,{text:o.match,token:this.terminals_[l]||l,line:o.yylineno,loc:I,expected:S})}if(h[0]instanceof Array&&h.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+l);switch(h[0]){case 1:n.push(l),r.push(o.yytext),i.push(o.yylloc),n.push(h[1]),l=null,L=o.yyleng,P=o.yytext,v=o.yylineno,I=o.yylloc;break;case 2:if(c=this.productions_[h[1]][1],_.$=r[r.length-c],_._$={first_line:i[i.length-(c||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(c||1)].first_column,last_column:i[i.length-1].last_column},z&&(_._$.range=[i[i.length-(c||1)].range[0],i[i.length-1].range[1]]),w=this.performAction.apply(_,[P,L,v,p.yy,h[1],r,i].concat(R)),typeof w<"u")return w;c&&(n=n.slice(0,-1*c*2),r=r.slice(0,-1*c),i=i.slice(0,-1*c)),n.push(this.productions_[h[1]][0]),r.push(_.$),i.push(_._$),F=d[n[n.length-2]][n[n.length-1]],n.push(F);break;case 3:return!0}}return!0}},k=function(){var u={EOF:1,parseError:function(e,n){if(this.yy.parser)this.yy.parser.parseError(e,n);else throw new Error(e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var e=t.match(/(?:\r\n?|\n).*/g);return e?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===s.length?this.yylloc.first_column:0)+s[s.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+` diff --git a/assets/journeyDiagram-6625b456-DdTzKQA0.js b/assets/journeyDiagram-6625b456-C-oR09-z.js similarity index 98% rename from assets/journeyDiagram-6625b456-DdTzKQA0.js rename to assets/journeyDiagram-6625b456-C-oR09-z.js index 51c523f..023da18 100644 --- a/assets/journeyDiagram-6625b456-DdTzKQA0.js +++ b/assets/journeyDiagram-6625b456-C-oR09-z.js @@ -1,4 +1,4 @@ -import{c as A,x as yt,y as ft,s as dt,g as pt,b as gt,a as mt,A as xt,h as W,i as kt}from"./mermaid.core-Cio1iadR.js";import{d as _t,f as bt,a as vt,g as it}from"./svgDrawCommon-5e1cfd1d-BdGGMEzj.js";import{a as Q}from"./arc-Dfq8ddjc.js";import"./app-BQ_RvZRm.js";import"./path-CbwjOpE9.js";var G=function(){var t=function(p,s,r,a){for(r=r||{},a=p.length;a--;r[p[a]]=s);return r},e=[6,8,10,11,12,14,16,17,18],i=[1,9],l=[1,10],n=[1,11],h=[1,12],c=[1,13],f=[1,14],y={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(s,r,a,u,d,o,w){var k=o.length-1;switch(d){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:u.setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),u.setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),u.setAccDescription(this.$);break;case 12:u.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 13:u.addTask(o[k-1],o[k]),this.$="task";break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:i,12:l,14:n,16:h,17:c,18:f},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:i,12:l,14:n,16:h,17:c,18:f},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:function(s,r){if(r.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=r,a}},parse:function(s){var r=this,a=[0],u=[],d=[null],o=[],w=this.table,k="",R=0,Z=0,lt=2,J=1,ct=o.slice.call(arguments,1),x=Object.create(this.lexer),S={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(S.yy[z]=this.yy[z]);x.setInput(s,S.yy),S.yy.lexer=x,S.yy.parser=this,typeof x.yylloc>"u"&&(x.yylloc={});var Y=x.yylloc;o.push(Y);var ht=x.options&&x.options.ranges;typeof S.yy.parseError=="function"?this.parseError=S.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ut(){var T;return T=u.pop()||x.lex()||J,typeof T!="number"&&(T instanceof Array&&(u=T,T=u.pop()),T=r.symbols_[T]||T),T}for(var _,E,b,O,I={},N,$,K,B;;){if(E=a[a.length-1],this.defaultActions[E]?b=this.defaultActions[E]:((_===null||typeof _>"u")&&(_=ut()),b=w[E]&&w[E][_]),typeof b>"u"||!b.length||!b[0]){var q="";B=[];for(N in w[E])this.terminals_[N]&&N>lt&&B.push("'"+this.terminals_[N]+"'");x.showPosition?q="Parse error on line "+(R+1)+`: +import{c as A,x as yt,y as ft,s as dt,g as pt,b as gt,a as mt,A as xt,h as W,i as kt}from"./mermaid.core-D8sVPjx9.js";import{d as _t,f as bt,a as vt,g as it}from"./svgDrawCommon-5e1cfd1d-DOlHDRVT.js";import{a as Q}from"./arc-DKl72la8.js";import"./app-B7rxM88G.js";import"./path-CbwjOpE9.js";var G=function(){var t=function(p,s,r,a){for(r=r||{},a=p.length;a--;r[p[a]]=s);return r},e=[6,8,10,11,12,14,16,17,18],i=[1,9],l=[1,10],n=[1,11],h=[1,12],c=[1,13],f=[1,14],y={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:function(s,r,a,u,d,o,w){var k=o.length-1;switch(d){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:u.setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),u.setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),u.setAccDescription(this.$);break;case 12:u.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 13:u.addTask(o[k-1],o[k]),this.$="task";break}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:i,12:l,14:n,16:h,17:c,18:f},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:i,12:l,14:n,16:h,17:c,18:f},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:function(s,r){if(r.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=r,a}},parse:function(s){var r=this,a=[0],u=[],d=[null],o=[],w=this.table,k="",R=0,Z=0,lt=2,J=1,ct=o.slice.call(arguments,1),x=Object.create(this.lexer),S={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(S.yy[z]=this.yy[z]);x.setInput(s,S.yy),S.yy.lexer=x,S.yy.parser=this,typeof x.yylloc>"u"&&(x.yylloc={});var Y=x.yylloc;o.push(Y);var ht=x.options&&x.options.ranges;typeof S.yy.parseError=="function"?this.parseError=S.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ut(){var T;return T=u.pop()||x.lex()||J,typeof T!="number"&&(T instanceof Array&&(u=T,T=u.pop()),T=r.symbols_[T]||T),T}for(var _,E,b,O,I={},N,$,K,B;;){if(E=a[a.length-1],this.defaultActions[E]?b=this.defaultActions[E]:((_===null||typeof _>"u")&&(_=ut()),b=w[E]&&w[E][_]),typeof b>"u"||!b.length||!b[0]){var q="";B=[];for(N in w[E])this.terminals_[N]&&N>lt&&B.push("'"+this.terminals_[N]+"'");x.showPosition?q="Parse error on line "+(R+1)+`: `+x.showPosition()+` Expecting `+B.join(", ")+", got '"+(this.terminals_[_]||_)+"'":q="Parse error on line "+(R+1)+": Unexpected "+(_==J?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(q,{text:x.match,token:this.terminals_[_]||_,line:x.yylineno,loc:Y,expected:B})}if(b[0]instanceof Array&&b.length>1)throw new Error("Parse Error: multiple actions possible at state: "+E+", token: "+_);switch(b[0]){case 1:a.push(_),d.push(x.yytext),o.push(x.yylloc),a.push(b[1]),_=null,Z=x.yyleng,k=x.yytext,R=x.yylineno,Y=x.yylloc;break;case 2:if($=this.productions_[b[1]][1],I.$=d[d.length-$],I._$={first_line:o[o.length-($||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-($||1)].first_column,last_column:o[o.length-1].last_column},ht&&(I._$.range=[o[o.length-($||1)].range[0],o[o.length-1].range[1]]),O=this.performAction.apply(I,[k,Z,R,S.yy,b[1],d,o].concat(ct)),typeof O<"u")return O;$&&(a=a.slice(0,-1*$*2),d=d.slice(0,-1*$),o=o.slice(0,-1*$)),a.push(this.productions_[b[1]][0]),d.push(I.$),o.push(I._$),K=w[a[a.length-2]][a[a.length-1]],a.push(K);break;case 3:return!0}}return!0}},m=function(){var p={EOF:1,parseError:function(r,a){if(this.yy.parser)this.yy.parser.parseError(r,a);else throw new Error(r)},setInput:function(s,r){return this.yy=r||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var r=s.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},unput:function(s){var r=s.length,a=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var d=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===u.length?this.yylloc.first_column:0)+u[u.length-a.length].length-a[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(s){this.unput(this.match.slice(s))},pastInput:function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var s=this.pastInput(),r=new Array(s.length+1).join("-");return s+this.upcomingInput()+` diff --git a/assets/layout-CbxIxNpL.js b/assets/layout-Bwrh1hP1.js similarity index 99% rename from assets/layout-CbxIxNpL.js rename to assets/layout-Bwrh1hP1.js index 04bbb2a..d170dfd 100644 --- a/assets/layout-CbxIxNpL.js +++ b/assets/layout-Bwrh1hP1.js @@ -1 +1 @@ -import{i as F,b as gn,a as zn,c as L,k as Xn,d as Un,e as Hn,g as P,j as xn,l as En,m as kn,t as jn,n as yn,o as Kn,p as Jn,f as s,G as x,h as w,q as g,r as M,v as y,s as Y}from"./graph-k1ojK0f-.js";import{R as A,ag as Qn,ah as Zn,a6 as Nn,ai as B,K as Ln,_ as ne,E as _n,D as K,a4 as ee,aj as re,a3 as J,a2 as te,Y as Cn,Q as ie,a8 as ae,ak as H}from"./mermaid.core-Cio1iadR.js";var oe=/\s/;function ue(n){for(var e=n.length;e--&&oe.test(n.charAt(e)););return e}var de=/^\s+/;function fe(n){return n&&n.slice(0,ue(n)+1).replace(de,"")}var un=NaN,se=/^[-+]0x[0-9a-f]+$/i,ce=/^0b[01]+$/i,he=/^0o[0-7]+$/i,le=parseInt;function ve(n){if(typeof n=="number")return n;if(F(n))return un;if(A(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=A(e)?e+"":e}if(typeof n!="string")return n===0?n:+n;n=fe(n);var r=ce.test(n);return r||he.test(n)?le(n.slice(2),r?2:8):se.test(n)?un:+n}var dn=1/0,pe=17976931348623157e292;function S(n){if(!n)return n===0?n:0;if(n=ve(n),n===dn||n===-dn){var e=n<0?-1:1;return e*pe}return n===n?n:0}function we(n){var e=S(n),r=e%1;return e===e?r?e-r:e:0}function _(n){var e=n==null?0:n.length;return e?gn(n):[]}function me(n){return Qn(Zn(n,void 0,_),n+"")}var be=1,ge=4;function xe(n){return zn(n,be|ge)}var In=Object.prototype,Ee=In.hasOwnProperty,ke=Nn(function(n,e){n=Object(n);var r=-1,t=e.length,i=t>2?e[2]:void 0;for(i&&B(e[0],e[1],i)&&(t=1);++r-1?i[o?e[a]:a]:void 0}}var Ne=Math.max;function Le(n,e,r){var t=n==null?0:n.length;if(!t)return-1;var i=r==null?0:we(r);return i<0&&(i=Ne(t+i,0)),Un(n,L(e),i)}var Q=ye(Le);function Rn(n,e){var r=-1,t=_n(n)?Array(n.length):[];return Hn(n,function(i,o,a){t[++r]=e(i,o,a)}),t}function m(n,e){var r=K(n)?P:Rn;return r(n,L(e))}function _e(n,e){return n==null?n:ee(n,xn(e),Ln)}function Ce(n,e){return n&&En(n,xn(e))}function Ie(n,e){return n>e}function Tn(n,e){return ne||o&&a&&d&&!u&&!f||t&&a&&d||!r&&d||!i)return 1;if(!t&&!o&&!f&&n=u)return d;var f=r[t];return d*(f=="desc"?-1:1)}}return n.index-e.index}function Se(n,e,r){e.length?e=P(e,function(o){return K(o)?function(a){return yn(a,o.length===1?o[0]:o)}:o}):e=[J];var t=-1;e=P(e,ie(L));var i=Rn(n,function(o,a,u){var d=P(e,function(f){return f(o)});return{criteria:d,index:++t,value:o}});return Me(i,function(o,a){return Pe(o,a,r)})}function Fe(n,e){return Te(n,e,function(r,t){return Kn(n,t)})}var V=me(function(n,e){return n==null?{}:Fe(n,e)}),Ae=Math.ceil,Be=Math.max;function Ge(n,e,r,t){for(var i=-1,o=Be(Ae((e-n)/(r||1)),0),a=Array(o);o--;)a[++i]=n,n+=r;return a}function Ve(n){return function(e,r,t){return t&&typeof t!="number"&&B(e,r,t)&&(r=t=void 0),e=S(e),r===void 0?(r=e,e=0):r=S(r),t=t===void 0?e1&&B(n,e[0],e[1])?e=[]:r>2&&B(e[0],e[1],e[2])&&(e=[e[0]]),Se(n,gn(e),[])}),Ye=0;function en(n){var e=++Ye;return Jn(n)+e}function De(n,e,r){for(var t=-1,i=n.length,o=e.length,a={};++t0;--u)if(a=e[u].dequeue(),a){t=t.concat(q(n,e,r,a,!0));break}}}return t}function q(n,e,r,t,i){var o=i?[]:void 0;return s(n.inEdges(t.v),function(a){var u=n.edge(a),d=n.node(a.v);i&&o.push({v:a.v,w:a.w}),d.out-=u,j(e,r,d)}),s(n.outEdges(t.v),function(a){var u=n.edge(a),d=a.w,f=n.node(d);f.in-=u,j(e,r,f)}),n.removeNode(t.v),o}function He(n,e){var r=new x,t=0,i=0;s(n.nodes(),function(u){r.setNode(u,{v:u,in:0,out:0})}),s(n.edges(),function(u){var d=r.edge(u.v,u.w)||0,f=e(u),c=d+f;r.setEdge(u.v,u.w,c),i=Math.max(i,r.node(u.v).out+=f),t=Math.max(t,r.node(u.w).in+=f)});var o=N(i+t+3).map(function(){return new qe}),a=t+1;return s(r.nodes(),function(u){j(o,a,r.node(u))}),{graph:r,buckets:o,zeroIdx:a}}function j(n,e,r){r.out?r.in?n[r.out-r.in+e].enqueue(r):n[n.length-1].enqueue(r):n[0].enqueue(r)}function je(n){var e=n.graph().acyclicer==="greedy"?Xe(n,r(n)):Ke(n);s(e,function(t){var i=n.edge(t);n.removeEdge(t),i.forwardName=t.name,i.reversed=!0,n.setEdge(t.w,t.v,i,en("rev"))});function r(t){return function(i){return t.edge(i).weight}}}function Ke(n){var e=[],r={},t={};function i(o){w(t,o)||(t[o]=!0,r[o]=!0,s(n.outEdges(o),function(a){w(r,a.w)?e.push(a):i(a.w)}),delete r[o])}return s(n.nodes(),i),e}function Je(n){s(n.edges(),function(e){var r=n.edge(e);if(r.reversed){n.removeEdge(e);var t=r.forwardName;delete r.reversed,delete r.forwardName,n.setEdge(e.w,e.v,r,t)}})}function C(n,e,r,t){var i;do i=en(t);while(n.hasNode(i));return r.dummy=e,n.setNode(i,r),i}function Qe(n){var e=new x().setGraph(n.graph());return s(n.nodes(),function(r){e.setNode(r,n.node(r))}),s(n.edges(),function(r){var t=e.edge(r.v,r.w)||{weight:0,minlen:1},i=n.edge(r);e.setEdge(r.v,r.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}),e}function Mn(n){var e=new x({multigraph:n.isMultigraph()}).setGraph(n.graph());return s(n.nodes(),function(r){n.children(r).length||e.setNode(r,n.node(r))}),s(n.edges(),function(r){e.setEdge(r,n.edge(r))}),e}function sn(n,e){var r=n.x,t=n.y,i=e.x-r,o=e.y-t,a=n.width/2,u=n.height/2;if(!i&&!o)throw new Error("Not possible to find intersection inside of the rectangle");var d,f;return Math.abs(o)*a>Math.abs(i)*u?(o<0&&(u=-u),d=u*i/o,f=u):(i<0&&(a=-a),d=a,f=a*o/i),{x:r+d,y:t+f}}function $(n){var e=m(N(On(n)+1),function(){return[]});return s(n.nodes(),function(r){var t=n.node(r),i=t.rank;g(i)||(e[i][t.order]=r)}),e}function Ze(n){var e=R(m(n.nodes(),function(r){return n.node(r).rank}));s(n.nodes(),function(r){var t=n.node(r);w(t,"rank")&&(t.rank-=e)})}function nr(n){var e=R(m(n.nodes(),function(o){return n.node(o).rank})),r=[];s(n.nodes(),function(o){var a=n.node(o).rank-e;r[a]||(r[a]=[]),r[a].push(o)});var t=0,i=n.graph().nodeRankFactor;s(r,function(o,a){g(o)&&a%i!==0?--t:t&&s(o,function(u){n.node(u).rank+=t})})}function cn(n,e,r,t){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=t),C(n,"border",i,e)}function On(n){return E(m(n.nodes(),function(e){var r=n.node(e).rank;if(!g(r))return r}))}function er(n,e){var r={lhs:[],rhs:[]};return s(n,function(t){e(t)?r.lhs.push(t):r.rhs.push(t)}),r}function rr(n,e){return e()}function tr(n){function e(r){var t=n.children(r),i=n.node(r);if(t.length&&s(t,e),w(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var o=i.minRank,a=i.maxRank+1;oa.lim&&(u=a,d=!0);var f=M(e.edges(),function(c){return d===vn(n,n.node(c.v),u)&&d!==vn(n,n.node(c.w),u)});return nn(f,function(c){return T(e,c)})}function Dn(n,e,r,t){var i=r.v,o=r.w;n.removeEdge(i,o),n.setEdge(t.v,t.w,{}),an(n),tn(n,e),br(n,e)}function br(n,e){var r=Q(n.nodes(),function(i){return!e.node(i).parent}),t=wr(n,r);t=t.slice(1),s(t,function(i){var o=n.node(i).parent,a=e.edge(i,o),u=!1;a||(a=e.edge(o,i),u=!0),e.node(i).rank=e.node(o).rank+(u?a.minlen:-a.minlen)})}function gr(n,e,r){return n.hasEdge(e,r)}function vn(n,e,r){return r.low<=e.lim&&e.lim<=r.lim}function xr(n){switch(n.graph().ranker){case"network-simplex":pn(n);break;case"tight-tree":kr(n);break;case"longest-path":Er(n);break;default:pn(n)}}var Er=rn;function kr(n){rn(n),Sn(n)}function pn(n){k(n)}function yr(n){var e=C(n,"root",{},"_root"),r=Nr(n),t=E(y(r))-1,i=2*t+1;n.graph().nestingRoot=e,s(n.edges(),function(a){n.edge(a).minlen*=i});var o=Lr(n)+1;s(n.children(),function(a){$n(n,e,i,o,t,r,a)}),n.graph().nodeRankFactor=i}function $n(n,e,r,t,i,o,a){var u=n.children(a);if(!u.length){a!==e&&n.setEdge(e,a,{weight:0,minlen:r});return}var d=cn(n,"_bt"),f=cn(n,"_bb"),c=n.node(a);n.setParent(d,a),c.borderTop=d,n.setParent(f,a),c.borderBottom=f,s(u,function(h){$n(n,e,r,t,i,o,h);var l=n.node(h),v=l.borderTop?l.borderTop:h,p=l.borderBottom?l.borderBottom:h,b=l.borderTop?t:2*t,I=v!==p?1:i-o[a]+1;n.setEdge(d,v,{weight:b,minlen:I,nestingEdge:!0}),n.setEdge(p,f,{weight:b,minlen:I,nestingEdge:!0})}),n.parent(a)||n.setEdge(e,d,{weight:0,minlen:i+o[a]})}function Nr(n){var e={};function r(t,i){var o=n.children(t);o&&o.length&&s(o,function(a){r(a,i+1)}),e[t]=i}return s(n.children(),function(t){r(t,1)}),e}function Lr(n){return Y(n.edges(),function(e,r){return e+n.edge(r).weight},0)}function _r(n){var e=n.graph();n.removeNode(e.nestingRoot),delete e.nestingRoot,s(n.edges(),function(r){var t=n.edge(r);t.nestingEdge&&n.removeEdge(r)})}function Cr(n,e,r){var t={},i;s(r,function(o){for(var a=n.parent(o),u,d;a;){if(u=n.parent(a),u?(d=t[u],t[u]=a):(d=i,i=a),d&&d!==a){e.setEdge(d,a);return}a=u}})}function Ir(n,e,r){var t=Rr(n),i=new x({compound:!0}).setGraph({root:t}).setDefaultNodeLabel(function(o){return n.node(o)});return s(n.nodes(),function(o){var a=n.node(o),u=n.parent(o);(a.rank===e||a.minRank<=e&&e<=a.maxRank)&&(i.setNode(o),i.setParent(o,u||t),s(n[r](o),function(d){var f=d.v===o?d.w:d.v,c=i.edge(f,o),h=g(c)?0:c.weight;i.setEdge(f,o,{weight:n.edge(d).weight+h})}),w(a,"minRank")&&i.setNode(o,{borderLeft:a.borderLeft[e],borderRight:a.borderRight[e]}))}),i}function Rr(n){for(var e;n.hasNode(e=en("_root")););return e}function Tr(n,e){for(var r=0,t=1;t0;)c%2&&(h+=u[c+1]),c=c-1>>1,u[c]+=f.weight;d+=f.weight*h})),d}function Or(n){var e={},r=M(n.nodes(),function(u){return!n.children(u).length}),t=E(m(r,function(u){return n.node(u).rank})),i=m(N(t+1),function(){return[]});function o(u){if(!w(e,u)){e[u]=!0;var d=n.node(u);i[d.rank].push(u),s(n.successors(u),o)}}var a=O(r,function(u){return n.node(u).rank});return s(a,o),i}function Pr(n,e){return m(e,function(r){var t=n.inEdges(r);if(t.length){var i=Y(t,function(o,a){var u=n.edge(a),d=n.node(a.v);return{sum:o.sum+u.weight*d.order,weight:o.weight+u.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}function Sr(n,e){var r={};s(n,function(i,o){var a=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:o};g(i.barycenter)||(a.barycenter=i.barycenter,a.weight=i.weight)}),s(e.edges(),function(i){var o=r[i.v],a=r[i.w];!g(o)&&!g(a)&&(a.indegree++,o.out.push(r[i.w]))});var t=M(r,function(i){return!i.indegree});return Fr(t)}function Fr(n){var e=[];function r(o){return function(a){a.merged||(g(a.barycenter)||g(o.barycenter)||a.barycenter>=o.barycenter)&&Ar(o,a)}}function t(o){return function(a){a.in.push(o),--a.indegree===0&&n.push(a)}}for(;n.length;){var i=n.pop();e.push(i),s(i.in.reverse(),r(i)),s(i.out,t(i))}return m(M(e,function(o){return!o.merged}),function(o){return V(o,["vs","i","barycenter","weight"])})}function Ar(n,e){var r=0,t=0;n.weight&&(r+=n.barycenter*n.weight,t+=n.weight),e.weight&&(r+=e.barycenter*e.weight,t+=e.weight),n.vs=e.vs.concat(n.vs),n.barycenter=r/t,n.weight=t,n.i=Math.min(e.i,n.i),e.merged=!0}function Br(n,e){var r=er(n,function(c){return w(c,"barycenter")}),t=r.lhs,i=O(r.rhs,function(c){return-c.i}),o=[],a=0,u=0,d=0;t.sort(Gr(!!e)),d=wn(o,i,d),s(t,function(c){d+=c.vs.length,o.push(c.vs),a+=c.barycenter*c.weight,u+=c.weight,d=wn(o,i,d)});var f={vs:_(o)};return u&&(f.barycenter=a/u,f.weight=u),f}function wn(n,e,r){for(var t;e.length&&(t=G(e)).i<=r;)e.pop(),n.push(t.vs),r++;return r}function Gr(n){return function(e,r){return e.barycenterr.barycenter?1:n?r.i-e.i:e.i-r.i}}function qn(n,e,r,t){var i=n.children(e),o=n.node(e),a=o?o.borderLeft:void 0,u=o?o.borderRight:void 0,d={};a&&(i=M(i,function(p){return p!==a&&p!==u}));var f=Pr(n,i);s(f,function(p){if(n.children(p.v).length){var b=qn(n,p.v,r,t);d[p.v]=b,w(b,"barycenter")&&Yr(p,b)}});var c=Sr(f,r);Vr(c,d);var h=Br(c,t);if(a&&(h.vs=_([a,h.vs,u]),n.predecessors(a).length)){var l=n.node(n.predecessors(a)[0]),v=n.node(n.predecessors(u)[0]);w(h,"barycenter")||(h.barycenter=0,h.weight=0),h.barycenter=(h.barycenter*h.weight+l.order+v.order)/(h.weight+2),h.weight+=2}return h}function Vr(n,e){s(n,function(r){r.vs=_(r.vs.map(function(t){return e[t]?e[t].vs:t}))})}function Yr(n,e){g(n.barycenter)?(n.barycenter=e.barycenter,n.weight=e.weight):(n.barycenter=(n.barycenter*n.weight+e.barycenter*e.weight)/(n.weight+e.weight),n.weight+=e.weight)}function Dr(n){var e=On(n),r=mn(n,N(1,e+1),"inEdges"),t=mn(n,N(e-1,-1,-1),"outEdges"),i=Or(n);bn(n,i);for(var o=Number.POSITIVE_INFINITY,a,u=0,d=0;d<4;++u,++d){$r(u%2?r:t,u%4>=2),i=$(n);var f=Tr(n,i);fa||u>e[d].lim));for(f=d,d=t;(d=n.parent(d))!==f;)o.push(d);return{path:i.concat(o.reverse()),lca:f}}function zr(n){var e={},r=0;function t(i){var o=r;s(n.children(i),t),e[i]={low:o,lim:r++}}return s(n.children(),t),e}function Xr(n,e){var r={};function t(i,o){var a=0,u=0,d=i.length,f=G(o);return s(o,function(c,h){var l=Hr(n,c),v=l?n.node(l).order:d;(l||c===f)&&(s(o.slice(u,h+1),function(p){s(n.predecessors(p),function(b){var I=n.node(b),on=I.order;(onf)&&Wn(r,l,c)})})}function i(o,a){var u=-1,d,f=0;return s(a,function(c,h){if(n.node(c).dummy==="border"){var l=n.predecessors(c);l.length&&(d=n.node(l[0]).order,t(a,f,h,u,d),f=h,u=d)}t(a,f,a.length,d,o.length)}),a}return Y(e,i),r}function Hr(n,e){if(n.node(e).dummy)return Q(n.predecessors(e),function(r){return n.node(r).dummy})}function Wn(n,e,r){if(e>r){var t=e;e=r,r=t}var i=n[e];i||(n[e]=i={}),i[r]=!0}function jr(n,e,r){if(e>r){var t=e;e=r,r=t}return w(n[e],r)}function Kr(n,e,r,t){var i={},o={},a={};return s(e,function(u){s(u,function(d,f){i[d]=d,o[d]=d,a[d]=f})}),s(e,function(u){var d=-1;s(u,function(f){var c=t(f);if(c.length){c=O(c,function(b){return a[b]});for(var h=(c.length-1)/2,l=Math.floor(h),v=Math.ceil(h);l<=v;++l){var p=c[l];o[f]===f&&d2?e[2]:void 0;for(i&&B(e[0],e[1],i)&&(t=1);++r-1?i[o?e[a]:a]:void 0}}var Ne=Math.max;function Le(n,e,r){var t=n==null?0:n.length;if(!t)return-1;var i=r==null?0:we(r);return i<0&&(i=Ne(t+i,0)),Un(n,L(e),i)}var Q=ye(Le);function Rn(n,e){var r=-1,t=_n(n)?Array(n.length):[];return Hn(n,function(i,o,a){t[++r]=e(i,o,a)}),t}function m(n,e){var r=K(n)?P:Rn;return r(n,L(e))}function _e(n,e){return n==null?n:ee(n,xn(e),Ln)}function Ce(n,e){return n&&En(n,xn(e))}function Ie(n,e){return n>e}function Tn(n,e){return ne||o&&a&&d&&!u&&!f||t&&a&&d||!r&&d||!i)return 1;if(!t&&!o&&!f&&n=u)return d;var f=r[t];return d*(f=="desc"?-1:1)}}return n.index-e.index}function Se(n,e,r){e.length?e=P(e,function(o){return K(o)?function(a){return yn(a,o.length===1?o[0]:o)}:o}):e=[J];var t=-1;e=P(e,ie(L));var i=Rn(n,function(o,a,u){var d=P(e,function(f){return f(o)});return{criteria:d,index:++t,value:o}});return Me(i,function(o,a){return Pe(o,a,r)})}function Fe(n,e){return Te(n,e,function(r,t){return Kn(n,t)})}var V=me(function(n,e){return n==null?{}:Fe(n,e)}),Ae=Math.ceil,Be=Math.max;function Ge(n,e,r,t){for(var i=-1,o=Be(Ae((e-n)/(r||1)),0),a=Array(o);o--;)a[++i]=n,n+=r;return a}function Ve(n){return function(e,r,t){return t&&typeof t!="number"&&B(e,r,t)&&(r=t=void 0),e=S(e),r===void 0?(r=e,e=0):r=S(r),t=t===void 0?e1&&B(n,e[0],e[1])?e=[]:r>2&&B(e[0],e[1],e[2])&&(e=[e[0]]),Se(n,gn(e),[])}),Ye=0;function en(n){var e=++Ye;return Jn(n)+e}function De(n,e,r){for(var t=-1,i=n.length,o=e.length,a={};++t0;--u)if(a=e[u].dequeue(),a){t=t.concat(q(n,e,r,a,!0));break}}}return t}function q(n,e,r,t,i){var o=i?[]:void 0;return s(n.inEdges(t.v),function(a){var u=n.edge(a),d=n.node(a.v);i&&o.push({v:a.v,w:a.w}),d.out-=u,j(e,r,d)}),s(n.outEdges(t.v),function(a){var u=n.edge(a),d=a.w,f=n.node(d);f.in-=u,j(e,r,f)}),n.removeNode(t.v),o}function He(n,e){var r=new x,t=0,i=0;s(n.nodes(),function(u){r.setNode(u,{v:u,in:0,out:0})}),s(n.edges(),function(u){var d=r.edge(u.v,u.w)||0,f=e(u),c=d+f;r.setEdge(u.v,u.w,c),i=Math.max(i,r.node(u.v).out+=f),t=Math.max(t,r.node(u.w).in+=f)});var o=N(i+t+3).map(function(){return new qe}),a=t+1;return s(r.nodes(),function(u){j(o,a,r.node(u))}),{graph:r,buckets:o,zeroIdx:a}}function j(n,e,r){r.out?r.in?n[r.out-r.in+e].enqueue(r):n[n.length-1].enqueue(r):n[0].enqueue(r)}function je(n){var e=n.graph().acyclicer==="greedy"?Xe(n,r(n)):Ke(n);s(e,function(t){var i=n.edge(t);n.removeEdge(t),i.forwardName=t.name,i.reversed=!0,n.setEdge(t.w,t.v,i,en("rev"))});function r(t){return function(i){return t.edge(i).weight}}}function Ke(n){var e=[],r={},t={};function i(o){w(t,o)||(t[o]=!0,r[o]=!0,s(n.outEdges(o),function(a){w(r,a.w)?e.push(a):i(a.w)}),delete r[o])}return s(n.nodes(),i),e}function Je(n){s(n.edges(),function(e){var r=n.edge(e);if(r.reversed){n.removeEdge(e);var t=r.forwardName;delete r.reversed,delete r.forwardName,n.setEdge(e.w,e.v,r,t)}})}function C(n,e,r,t){var i;do i=en(t);while(n.hasNode(i));return r.dummy=e,n.setNode(i,r),i}function Qe(n){var e=new x().setGraph(n.graph());return s(n.nodes(),function(r){e.setNode(r,n.node(r))}),s(n.edges(),function(r){var t=e.edge(r.v,r.w)||{weight:0,minlen:1},i=n.edge(r);e.setEdge(r.v,r.w,{weight:t.weight+i.weight,minlen:Math.max(t.minlen,i.minlen)})}),e}function Mn(n){var e=new x({multigraph:n.isMultigraph()}).setGraph(n.graph());return s(n.nodes(),function(r){n.children(r).length||e.setNode(r,n.node(r))}),s(n.edges(),function(r){e.setEdge(r,n.edge(r))}),e}function sn(n,e){var r=n.x,t=n.y,i=e.x-r,o=e.y-t,a=n.width/2,u=n.height/2;if(!i&&!o)throw new Error("Not possible to find intersection inside of the rectangle");var d,f;return Math.abs(o)*a>Math.abs(i)*u?(o<0&&(u=-u),d=u*i/o,f=u):(i<0&&(a=-a),d=a,f=a*o/i),{x:r+d,y:t+f}}function $(n){var e=m(N(On(n)+1),function(){return[]});return s(n.nodes(),function(r){var t=n.node(r),i=t.rank;g(i)||(e[i][t.order]=r)}),e}function Ze(n){var e=R(m(n.nodes(),function(r){return n.node(r).rank}));s(n.nodes(),function(r){var t=n.node(r);w(t,"rank")&&(t.rank-=e)})}function nr(n){var e=R(m(n.nodes(),function(o){return n.node(o).rank})),r=[];s(n.nodes(),function(o){var a=n.node(o).rank-e;r[a]||(r[a]=[]),r[a].push(o)});var t=0,i=n.graph().nodeRankFactor;s(r,function(o,a){g(o)&&a%i!==0?--t:t&&s(o,function(u){n.node(u).rank+=t})})}function cn(n,e,r,t){var i={width:0,height:0};return arguments.length>=4&&(i.rank=r,i.order=t),C(n,"border",i,e)}function On(n){return E(m(n.nodes(),function(e){var r=n.node(e).rank;if(!g(r))return r}))}function er(n,e){var r={lhs:[],rhs:[]};return s(n,function(t){e(t)?r.lhs.push(t):r.rhs.push(t)}),r}function rr(n,e){return e()}function tr(n){function e(r){var t=n.children(r),i=n.node(r);if(t.length&&s(t,e),w(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var o=i.minRank,a=i.maxRank+1;oa.lim&&(u=a,d=!0);var f=M(e.edges(),function(c){return d===vn(n,n.node(c.v),u)&&d!==vn(n,n.node(c.w),u)});return nn(f,function(c){return T(e,c)})}function Dn(n,e,r,t){var i=r.v,o=r.w;n.removeEdge(i,o),n.setEdge(t.v,t.w,{}),an(n),tn(n,e),br(n,e)}function br(n,e){var r=Q(n.nodes(),function(i){return!e.node(i).parent}),t=wr(n,r);t=t.slice(1),s(t,function(i){var o=n.node(i).parent,a=e.edge(i,o),u=!1;a||(a=e.edge(o,i),u=!0),e.node(i).rank=e.node(o).rank+(u?a.minlen:-a.minlen)})}function gr(n,e,r){return n.hasEdge(e,r)}function vn(n,e,r){return r.low<=e.lim&&e.lim<=r.lim}function xr(n){switch(n.graph().ranker){case"network-simplex":pn(n);break;case"tight-tree":kr(n);break;case"longest-path":Er(n);break;default:pn(n)}}var Er=rn;function kr(n){rn(n),Sn(n)}function pn(n){k(n)}function yr(n){var e=C(n,"root",{},"_root"),r=Nr(n),t=E(y(r))-1,i=2*t+1;n.graph().nestingRoot=e,s(n.edges(),function(a){n.edge(a).minlen*=i});var o=Lr(n)+1;s(n.children(),function(a){$n(n,e,i,o,t,r,a)}),n.graph().nodeRankFactor=i}function $n(n,e,r,t,i,o,a){var u=n.children(a);if(!u.length){a!==e&&n.setEdge(e,a,{weight:0,minlen:r});return}var d=cn(n,"_bt"),f=cn(n,"_bb"),c=n.node(a);n.setParent(d,a),c.borderTop=d,n.setParent(f,a),c.borderBottom=f,s(u,function(h){$n(n,e,r,t,i,o,h);var l=n.node(h),v=l.borderTop?l.borderTop:h,p=l.borderBottom?l.borderBottom:h,b=l.borderTop?t:2*t,I=v!==p?1:i-o[a]+1;n.setEdge(d,v,{weight:b,minlen:I,nestingEdge:!0}),n.setEdge(p,f,{weight:b,minlen:I,nestingEdge:!0})}),n.parent(a)||n.setEdge(e,d,{weight:0,minlen:i+o[a]})}function Nr(n){var e={};function r(t,i){var o=n.children(t);o&&o.length&&s(o,function(a){r(a,i+1)}),e[t]=i}return s(n.children(),function(t){r(t,1)}),e}function Lr(n){return Y(n.edges(),function(e,r){return e+n.edge(r).weight},0)}function _r(n){var e=n.graph();n.removeNode(e.nestingRoot),delete e.nestingRoot,s(n.edges(),function(r){var t=n.edge(r);t.nestingEdge&&n.removeEdge(r)})}function Cr(n,e,r){var t={},i;s(r,function(o){for(var a=n.parent(o),u,d;a;){if(u=n.parent(a),u?(d=t[u],t[u]=a):(d=i,i=a),d&&d!==a){e.setEdge(d,a);return}a=u}})}function Ir(n,e,r){var t=Rr(n),i=new x({compound:!0}).setGraph({root:t}).setDefaultNodeLabel(function(o){return n.node(o)});return s(n.nodes(),function(o){var a=n.node(o),u=n.parent(o);(a.rank===e||a.minRank<=e&&e<=a.maxRank)&&(i.setNode(o),i.setParent(o,u||t),s(n[r](o),function(d){var f=d.v===o?d.w:d.v,c=i.edge(f,o),h=g(c)?0:c.weight;i.setEdge(f,o,{weight:n.edge(d).weight+h})}),w(a,"minRank")&&i.setNode(o,{borderLeft:a.borderLeft[e],borderRight:a.borderRight[e]}))}),i}function Rr(n){for(var e;n.hasNode(e=en("_root")););return e}function Tr(n,e){for(var r=0,t=1;t0;)c%2&&(h+=u[c+1]),c=c-1>>1,u[c]+=f.weight;d+=f.weight*h})),d}function Or(n){var e={},r=M(n.nodes(),function(u){return!n.children(u).length}),t=E(m(r,function(u){return n.node(u).rank})),i=m(N(t+1),function(){return[]});function o(u){if(!w(e,u)){e[u]=!0;var d=n.node(u);i[d.rank].push(u),s(n.successors(u),o)}}var a=O(r,function(u){return n.node(u).rank});return s(a,o),i}function Pr(n,e){return m(e,function(r){var t=n.inEdges(r);if(t.length){var i=Y(t,function(o,a){var u=n.edge(a),d=n.node(a.v);return{sum:o.sum+u.weight*d.order,weight:o.weight+u.weight}},{sum:0,weight:0});return{v:r,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:r}})}function Sr(n,e){var r={};s(n,function(i,o){var a=r[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:o};g(i.barycenter)||(a.barycenter=i.barycenter,a.weight=i.weight)}),s(e.edges(),function(i){var o=r[i.v],a=r[i.w];!g(o)&&!g(a)&&(a.indegree++,o.out.push(r[i.w]))});var t=M(r,function(i){return!i.indegree});return Fr(t)}function Fr(n){var e=[];function r(o){return function(a){a.merged||(g(a.barycenter)||g(o.barycenter)||a.barycenter>=o.barycenter)&&Ar(o,a)}}function t(o){return function(a){a.in.push(o),--a.indegree===0&&n.push(a)}}for(;n.length;){var i=n.pop();e.push(i),s(i.in.reverse(),r(i)),s(i.out,t(i))}return m(M(e,function(o){return!o.merged}),function(o){return V(o,["vs","i","barycenter","weight"])})}function Ar(n,e){var r=0,t=0;n.weight&&(r+=n.barycenter*n.weight,t+=n.weight),e.weight&&(r+=e.barycenter*e.weight,t+=e.weight),n.vs=e.vs.concat(n.vs),n.barycenter=r/t,n.weight=t,n.i=Math.min(e.i,n.i),e.merged=!0}function Br(n,e){var r=er(n,function(c){return w(c,"barycenter")}),t=r.lhs,i=O(r.rhs,function(c){return-c.i}),o=[],a=0,u=0,d=0;t.sort(Gr(!!e)),d=wn(o,i,d),s(t,function(c){d+=c.vs.length,o.push(c.vs),a+=c.barycenter*c.weight,u+=c.weight,d=wn(o,i,d)});var f={vs:_(o)};return u&&(f.barycenter=a/u,f.weight=u),f}function wn(n,e,r){for(var t;e.length&&(t=G(e)).i<=r;)e.pop(),n.push(t.vs),r++;return r}function Gr(n){return function(e,r){return e.barycenterr.barycenter?1:n?r.i-e.i:e.i-r.i}}function qn(n,e,r,t){var i=n.children(e),o=n.node(e),a=o?o.borderLeft:void 0,u=o?o.borderRight:void 0,d={};a&&(i=M(i,function(p){return p!==a&&p!==u}));var f=Pr(n,i);s(f,function(p){if(n.children(p.v).length){var b=qn(n,p.v,r,t);d[p.v]=b,w(b,"barycenter")&&Yr(p,b)}});var c=Sr(f,r);Vr(c,d);var h=Br(c,t);if(a&&(h.vs=_([a,h.vs,u]),n.predecessors(a).length)){var l=n.node(n.predecessors(a)[0]),v=n.node(n.predecessors(u)[0]);w(h,"barycenter")||(h.barycenter=0,h.weight=0),h.barycenter=(h.barycenter*h.weight+l.order+v.order)/(h.weight+2),h.weight+=2}return h}function Vr(n,e){s(n,function(r){r.vs=_(r.vs.map(function(t){return e[t]?e[t].vs:t}))})}function Yr(n,e){g(n.barycenter)?(n.barycenter=e.barycenter,n.weight=e.weight):(n.barycenter=(n.barycenter*n.weight+e.barycenter*e.weight)/(n.weight+e.weight),n.weight+=e.weight)}function Dr(n){var e=On(n),r=mn(n,N(1,e+1),"inEdges"),t=mn(n,N(e-1,-1,-1),"outEdges"),i=Or(n);bn(n,i);for(var o=Number.POSITIVE_INFINITY,a,u=0,d=0;d<4;++u,++d){$r(u%2?r:t,u%4>=2),i=$(n);var f=Tr(n,i);fa||u>e[d].lim));for(f=d,d=t;(d=n.parent(d))!==f;)o.push(d);return{path:i.concat(o.reverse()),lca:f}}function zr(n){var e={},r=0;function t(i){var o=r;s(n.children(i),t),e[i]={low:o,lim:r++}}return s(n.children(),t),e}function Xr(n,e){var r={};function t(i,o){var a=0,u=0,d=i.length,f=G(o);return s(o,function(c,h){var l=Hr(n,c),v=l?n.node(l).order:d;(l||c===f)&&(s(o.slice(u,h+1),function(p){s(n.predecessors(p),function(b){var I=n.node(b),on=I.order;(onf)&&Wn(r,l,c)})})}function i(o,a){var u=-1,d,f=0;return s(a,function(c,h){if(n.node(c).dummy==="border"){var l=n.predecessors(c);l.length&&(d=n.node(l[0]).order,t(a,f,h,u,d),f=h,u=d)}t(a,f,a.length,d,o.length)}),a}return Y(e,i),r}function Hr(n,e){if(n.node(e).dummy)return Q(n.predecessors(e),function(r){return n.node(r).dummy})}function Wn(n,e,r){if(e>r){var t=e;e=r,r=t}var i=n[e];i||(n[e]=i={}),i[r]=!0}function jr(n,e,r){if(e>r){var t=e;e=r,r=t}return w(n[e],r)}function Kr(n,e,r,t){var i={},o={},a={};return s(e,function(u){s(u,function(d,f){i[d]=d,o[d]=d,a[d]=f})}),s(e,function(u){var d=-1;s(u,function(f){var c=t(f);if(c.length){c=O(c,function(b){return a[b]});for(var h=(c.length-1)/2,l=Math.floor(h),v=Math.ceil(h);l<=v;++l){var p=c[l];o[f]===f&&dt?1:n>=t?0:NaN}function hn(n,t){return n==null||t==null?NaN:tn?1:t>=n?0:NaN}function _(n){let t,e,r;n.length!==2?(t=$,e=(u,c)=>$(n(u),c),r=(u,c)=>n(u)-c):(t=n===$||n===hn?n:mn,e=n,r=n);function i(u,c,o=0,s=u.length){if(o>>1;e(u[h],c)<0?o=h+1:s=h}while(o>>1;e(u[h],c)<=0?o=h+1:s=h}while(oo&&r(u[h-1],c)>-r(u[h],c)?h-1:h}return{left:i,center:a,right:f}}function mn(){return 0}function ln(n){return n===null?NaN:+n}const sn=_($),dn=sn.right;_(ln).center;const gn=Math.sqrt(50),yn=Math.sqrt(10),Mn=Math.sqrt(2);function E(n,t,e){const r=(t-n)/Math.max(0,e),i=Math.floor(Math.log10(r)),f=r/Math.pow(10,i),a=f>=gn?10:f>=yn?5:f>=Mn?2:1;let u,c,o;return i<0?(o=Math.pow(10,-i)/a,u=Math.round(n*o),c=Math.round(t*o),u/ot&&--c,o=-o):(o=Math.pow(10,i)*a,u=Math.round(n/o),c=Math.round(t/o),u*ot&&--c),c0))return[];if(n===t)return[n];const r=t=i))return[];const u=f-i+1,c=new Array(u);if(r)if(a<0)for(let o=0;o=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function R(n,t){if((e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"))<0)return null;var e,r=n.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+n.slice(e+1)]}function v(n){return n=R(Math.abs(n)),n?n[1]:NaN}function jn(n,t){return function(e,r){for(var i=e.length,f=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),f.push(e.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return f.reverse().join(t)}}function Pn(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}var zn=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function D(n){if(!(t=zn.exec(n)))throw new Error("invalid format: "+n);var t;return new G({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}D.prototype=G.prototype;function G(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}G.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Fn(n){n:for(var t=n.length,e=1,r=-1,i;e0&&(r=0);break}return r>0?n.slice(0,r)+n.slice(i+1):n}var nn;function $n(n,t){var e=R(n,t);if(!e)return n+"";var r=e[0],i=e[1],f=i-(nn=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return f===a?r:f>a?r+new Array(f-a+1).join("0"):f>0?r.slice(0,f)+"."+r.slice(f):"0."+new Array(1-f).join("0")+R(n,Math.max(0,t+f-1))[0]}function Y(n,t){var e=R(n,t);if(!e)return n+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const Z={"%":(n,t)=>(n*100).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:bn,e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>Y(n*100,t),r:Y,s:$n,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function J(n){return n}var K=Array.prototype.map,Q=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function En(n){var t=n.grouping===void 0||n.thousands===void 0?J:jn(K.call(n.grouping,Number),n.thousands+""),e=n.currency===void 0?"":n.currency[0]+"",r=n.currency===void 0?"":n.currency[1]+"",i=n.decimal===void 0?".":n.decimal+"",f=n.numerals===void 0?J:Pn(K.call(n.numerals,String)),a=n.percent===void 0?"%":n.percent+"",u=n.minus===void 0?"−":n.minus+"",c=n.nan===void 0?"NaN":n.nan+"";function o(h){h=D(h);var l=h.fill,p=h.align,y=h.sign,S=h.symbol,k=h.zero,b=h.width,I=h.comma,w=h.precision,B=h.trim,d=h.type;d==="n"?(I=!0,d="g"):Z[d]||(w===void 0&&(w=12),B=!0,d="g"),(k||l==="0"&&p==="=")&&(k=!0,l="0",p="=");var en=S==="$"?e:S==="#"&&/[boxX]/.test(d)?"0"+d.toLowerCase():"",on=S==="$"?r:/[%p]/.test(d)?a:"",O=Z[d],an=/[defgprs%]/.test(d);w=w===void 0?6:/[gprs]/.test(d)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function V(m){var N=en,g=on,x,X,j;if(d==="c")g=O(m)+g,m="";else{m=+m;var P=m<0||1/m<0;if(m=isNaN(m)?c:O(Math.abs(m),w),B&&(m=Fn(m)),P&&+m==0&&y!=="+"&&(P=!1),N=(P?y==="("?y:u:y==="-"||y==="("?"":y)+N,g=(d==="s"?Q[8+nn/3]:"")+g+(P&&y==="("?")":""),an){for(x=-1,X=m.length;++xj||j>57){g=(j===46?i+m.slice(x+1):m.slice(x))+g,m=m.slice(0,x);break}}}I&&!k&&(m=t(m,1/0));var z=N.length+m.length+g.length,M=z>1)+N+m+g+M.slice(z);break;default:m=M+N+m+g;break}return f(m)}return V.toString=function(){return h+""},V}function s(h,l){var p=o((h=D(h),h.type="f",h)),y=Math.max(-8,Math.min(8,Math.floor(v(l)/3)))*3,S=Math.pow(10,-y),k=Q[8+y/3];return function(b){return p(S*b)+k}}return{format:o,formatPrefix:s}}var F,tn,rn;Rn({thousands:",",grouping:[3],currency:["$",""]});function Rn(n){return F=En(n),tn=F.format,rn=F.formatPrefix,F}function Dn(n){return Math.max(0,-v(Math.abs(n)))}function In(n,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(v(t)/3)))*3-v(Math.abs(n)))}function Tn(n,t){return n=Math.abs(n),t=Math.abs(t)-n,Math.max(0,v(t)-v(n))+1}function Ln(n){return function(){return n}}function qn(n){return+n}var W=[0,1];function A(n){return n}function q(n,t){return(t-=n=+n)?function(e){return(e-n)/t}:Ln(isNaN(t)?NaN:.5)}function Cn(n,t){var e;return n>t&&(e=n,n=t,t=e),function(r){return Math.max(n,Math.min(t,r))}}function Gn(n,t,e){var r=n[0],i=n[1],f=t[0],a=t[1];return i2?Bn:Gn,c=o=null,h}function h(l){return l==null||isNaN(l=+l)?f:(c||(c=u(n.map(r),t,e)))(r(a(l)))}return h.invert=function(l){return a(i((o||(o=u(t,n.map(r),T)))(l)))},h.domain=function(l){return arguments.length?(n=Array.from(l,qn),s()):n.slice()},h.range=function(l){return arguments.length?(t=Array.from(l),s()):t.slice()},h.rangeRound=function(l){return t=Array.from(l),e=Sn,s()},h.clamp=function(l){return arguments.length?(a=l?!0:A,s()):a!==A},h.interpolate=function(l){return arguments.length?(e=l,s()):e},h.unknown=function(l){return arguments.length?(f=l,h):f},function(l,p){return r=l,i=p,s()}}function Xn(){return Vn()(A,A)}function Hn(n,t,e,r){var i=wn(n,t,e),f;switch(r=D(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(t));return r.precision==null&&!isNaN(f=In(i,a))&&(r.precision=f),rn(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(f=Tn(i,Math.max(Math.abs(n),Math.abs(t))))&&(r.precision=f-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(f=Dn(i))&&(r.precision=f-(r.type==="%")*2);break}}return tn(r)}function Un(n){var t=n.domain;return n.ticks=function(e){var r=t();return pn(r[0],r[r.length-1],e??10)},n.tickFormat=function(e,r){var i=t();return Hn(i[0],i[i.length-1],e??10,r)},n.nice=function(e){e==null&&(e=10);var r=t(),i=0,f=r.length-1,a=r[i],u=r[f],c,o,s=10;for(u0;){if(o=L(a,u,e),o===c)return r[i]=a,r[f]=u,t(r);if(o>0)a=Math.floor(a/o)*o,u=Math.ceil(u/o)*o;else if(o<0)a=Math.ceil(a*o)/o,u=Math.floor(u*o)/o;else break;c=o}return n},n}function Yn(){var n=Xn();return n.copy=function(){return On(n,Yn())},cn.apply(n,arguments),Un(n)}export{On as a,_ as b,Xn as c,Yn as l,wn as t}; +import{aE as un,aF as T,aG as H,aH as U,aI as fn}from"./mermaid.core-D8sVPjx9.js";import{i as cn}from"./init-Gi6I4Gst.js";function $(n,t){return n==null||t==null?NaN:nt?1:n>=t?0:NaN}function hn(n,t){return n==null||t==null?NaN:tn?1:t>=n?0:NaN}function _(n){let t,e,r;n.length!==2?(t=$,e=(u,c)=>$(n(u),c),r=(u,c)=>n(u)-c):(t=n===$||n===hn?n:mn,e=n,r=n);function i(u,c,o=0,s=u.length){if(o>>1;e(u[h],c)<0?o=h+1:s=h}while(o>>1;e(u[h],c)<=0?o=h+1:s=h}while(oo&&r(u[h-1],c)>-r(u[h],c)?h-1:h}return{left:i,center:a,right:f}}function mn(){return 0}function ln(n){return n===null?NaN:+n}const sn=_($),dn=sn.right;_(ln).center;const gn=Math.sqrt(50),yn=Math.sqrt(10),Mn=Math.sqrt(2);function E(n,t,e){const r=(t-n)/Math.max(0,e),i=Math.floor(Math.log10(r)),f=r/Math.pow(10,i),a=f>=gn?10:f>=yn?5:f>=Mn?2:1;let u,c,o;return i<0?(o=Math.pow(10,-i)/a,u=Math.round(n*o),c=Math.round(t*o),u/ot&&--c,o=-o):(o=Math.pow(10,i)*a,u=Math.round(n/o),c=Math.round(t/o),u*ot&&--c),c0))return[];if(n===t)return[n];const r=t=i))return[];const u=f-i+1,c=new Array(u);if(r)if(a<0)for(let o=0;o=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function R(n,t){if((e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"))<0)return null;var e,r=n.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+n.slice(e+1)]}function v(n){return n=R(Math.abs(n)),n?n[1]:NaN}function jn(n,t){return function(e,r){for(var i=e.length,f=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),f.push(e.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return f.reverse().join(t)}}function Pn(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}var zn=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function D(n){if(!(t=zn.exec(n)))throw new Error("invalid format: "+n);var t;return new G({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}D.prototype=G.prototype;function G(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}G.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Fn(n){n:for(var t=n.length,e=1,r=-1,i;e0&&(r=0);break}return r>0?n.slice(0,r)+n.slice(i+1):n}var nn;function $n(n,t){var e=R(n,t);if(!e)return n+"";var r=e[0],i=e[1],f=i-(nn=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=r.length;return f===a?r:f>a?r+new Array(f-a+1).join("0"):f>0?r.slice(0,f)+"."+r.slice(f):"0."+new Array(1-f).join("0")+R(n,Math.max(0,t+f-1))[0]}function Y(n,t){var e=R(n,t);if(!e)return n+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const Z={"%":(n,t)=>(n*100).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:bn,e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>Y(n*100,t),r:Y,s:$n,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function J(n){return n}var K=Array.prototype.map,Q=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function En(n){var t=n.grouping===void 0||n.thousands===void 0?J:jn(K.call(n.grouping,Number),n.thousands+""),e=n.currency===void 0?"":n.currency[0]+"",r=n.currency===void 0?"":n.currency[1]+"",i=n.decimal===void 0?".":n.decimal+"",f=n.numerals===void 0?J:Pn(K.call(n.numerals,String)),a=n.percent===void 0?"%":n.percent+"",u=n.minus===void 0?"−":n.minus+"",c=n.nan===void 0?"NaN":n.nan+"";function o(h){h=D(h);var l=h.fill,p=h.align,y=h.sign,S=h.symbol,k=h.zero,b=h.width,I=h.comma,w=h.precision,B=h.trim,d=h.type;d==="n"?(I=!0,d="g"):Z[d]||(w===void 0&&(w=12),B=!0,d="g"),(k||l==="0"&&p==="=")&&(k=!0,l="0",p="=");var en=S==="$"?e:S==="#"&&/[boxX]/.test(d)?"0"+d.toLowerCase():"",on=S==="$"?r:/[%p]/.test(d)?a:"",O=Z[d],an=/[defgprs%]/.test(d);w=w===void 0?6:/[gprs]/.test(d)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function V(m){var N=en,g=on,x,X,j;if(d==="c")g=O(m)+g,m="";else{m=+m;var P=m<0||1/m<0;if(m=isNaN(m)?c:O(Math.abs(m),w),B&&(m=Fn(m)),P&&+m==0&&y!=="+"&&(P=!1),N=(P?y==="("?y:u:y==="-"||y==="("?"":y)+N,g=(d==="s"?Q[8+nn/3]:"")+g+(P&&y==="("?")":""),an){for(x=-1,X=m.length;++xj||j>57){g=(j===46?i+m.slice(x+1):m.slice(x))+g,m=m.slice(0,x);break}}}I&&!k&&(m=t(m,1/0));var z=N.length+m.length+g.length,M=z>1)+N+m+g+M.slice(z);break;default:m=M+N+m+g;break}return f(m)}return V.toString=function(){return h+""},V}function s(h,l){var p=o((h=D(h),h.type="f",h)),y=Math.max(-8,Math.min(8,Math.floor(v(l)/3)))*3,S=Math.pow(10,-y),k=Q[8+y/3];return function(b){return p(S*b)+k}}return{format:o,formatPrefix:s}}var F,tn,rn;Rn({thousands:",",grouping:[3],currency:["$",""]});function Rn(n){return F=En(n),tn=F.format,rn=F.formatPrefix,F}function Dn(n){return Math.max(0,-v(Math.abs(n)))}function In(n,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(v(t)/3)))*3-v(Math.abs(n)))}function Tn(n,t){return n=Math.abs(n),t=Math.abs(t)-n,Math.max(0,v(t)-v(n))+1}function Ln(n){return function(){return n}}function qn(n){return+n}var W=[0,1];function A(n){return n}function q(n,t){return(t-=n=+n)?function(e){return(e-n)/t}:Ln(isNaN(t)?NaN:.5)}function Cn(n,t){var e;return n>t&&(e=n,n=t,t=e),function(r){return Math.max(n,Math.min(t,r))}}function Gn(n,t,e){var r=n[0],i=n[1],f=t[0],a=t[1];return i2?Bn:Gn,c=o=null,h}function h(l){return l==null||isNaN(l=+l)?f:(c||(c=u(n.map(r),t,e)))(r(a(l)))}return h.invert=function(l){return a(i((o||(o=u(t,n.map(r),T)))(l)))},h.domain=function(l){return arguments.length?(n=Array.from(l,qn),s()):n.slice()},h.range=function(l){return arguments.length?(t=Array.from(l),s()):t.slice()},h.rangeRound=function(l){return t=Array.from(l),e=Sn,s()},h.clamp=function(l){return arguments.length?(a=l?!0:A,s()):a!==A},h.interpolate=function(l){return arguments.length?(e=l,s()):e},h.unknown=function(l){return arguments.length?(f=l,h):f},function(l,p){return r=l,i=p,s()}}function Xn(){return Vn()(A,A)}function Hn(n,t,e,r){var i=wn(n,t,e),f;switch(r=D(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(t));return r.precision==null&&!isNaN(f=In(i,a))&&(r.precision=f),rn(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(f=Tn(i,Math.max(Math.abs(n),Math.abs(t))))&&(r.precision=f-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(f=Dn(i))&&(r.precision=f-(r.type==="%")*2);break}}return tn(r)}function Un(n){var t=n.domain;return n.ticks=function(e){var r=t();return pn(r[0],r[r.length-1],e??10)},n.tickFormat=function(e,r){var i=t();return Hn(i[0],i[i.length-1],e??10,r)},n.nice=function(e){e==null&&(e=10);var r=t(),i=0,f=r.length-1,a=r[i],u=r[f],c,o,s=10;for(u0;){if(o=L(a,u,e),o===c)return r[i]=a,r[f]=u,t(r);if(o>0)a=Math.floor(a/o)*o,u=Math.ceil(u/o)*o;else if(o<0)a=Math.ceil(a*o)/o,u=Math.floor(u*o)/o;else break;c=o}return n},n}function Yn(){var n=Xn();return n.copy=function(){return On(n,Yn())},cn.apply(n,arguments),Un(n)}export{On as a,_ as b,Xn as c,Yn as l,wn as t}; diff --git a/assets/mermaid.core-Cio1iadR.js b/assets/mermaid.core-D8sVPjx9.js similarity index 98% rename from assets/mermaid.core-Cio1iadR.js rename to assets/mermaid.core-D8sVPjx9.js index 5925eac..a1889f6 100644 --- a/assets/mermaid.core-Cio1iadR.js +++ b/assets/mermaid.core-D8sVPjx9.js @@ -1,5 +1,5 @@ -const __vite__fileDeps=["assets/c4Diagram-ae766693-CUy5LWf1.js","assets/svgDrawCommon-5e1cfd1d-BdGGMEzj.js","assets/app-BQ_RvZRm.js","assets/flowDiagram-b222e15a-EQMov2Ka.js","assets/flowDb-c1833063-B3SS7hvs.js","assets/graph-k1ojK0f-.js","assets/layout-CbxIxNpL.js","assets/styles-483fbfea-Dbx9RFKS.js","assets/index-01f381cb-DBfo_-ML.js","assets/clone-B4YCsPuJ.js","assets/edges-066a5561-31kAkIJ0.js","assets/createText-ca0c5216-BYApgeQh.js","assets/line-DOPC82El.js","assets/array-BKyUJesY.js","assets/path-CbwjOpE9.js","assets/channel-It_pefhc.js","assets/flowDiagram-v2-13329dc7-08uOBUsR.js","assets/erDiagram-09d1c15f-HbBTHeac.js","assets/gitGraphDiagram-942e62fe-DgiEBaCK.js","assets/ganttDiagram-b62c793e-DNQqloZc.js","assets/linear-DyHMIkCX.js","assets/init-Gi6I4Gst.js","assets/infoDiagram-94cd232f-znpLWbNm.js","assets/pieDiagram-bb1d19e5-DTocJMlC.js","assets/arc-Dfq8ddjc.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-c759a472-DS1tcxYb.js","assets/xychartDiagram-f11f50a6-DXjcrauj.js","assets/requirementDiagram-87253d64-CeDPUd4g.js","assets/sequenceDiagram-6894f283-vjJz8JpS.js","assets/classDiagram-fb54d2a0-Sx-rWsFE.js","assets/styles-b83b31c9-BnKcw3I0.js","assets/classDiagram-v2-a2b738ad-D0vvTt6n.js","assets/stateDiagram-5dee940d-Ct9I0Jb9.js","assets/styles-0784dbeb-CjO33eRK.js","assets/stateDiagram-v2-1992cada-CYZqJEoI.js","assets/journeyDiagram-6625b456-DdTzKQA0.js","assets/flowchart-elk-definition-ae0efee6-BvF1eOFQ.js","assets/timeline-definition-bf702344-CfSWb9uZ.js","assets/mindmap-definition-307c710a-3IslH3zH.js","assets/sankeyDiagram-707fac0f-C8B1JfeB.js","assets/Tableau10-B-NsZVaP.js","assets/blockDiagram-9f4a6865-Lac1f6ab.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); -import{_ as X}from"./app-BQ_RvZRm.js";function _h(t){for(var e=[],i=1;ii.map(i=>__vite__fileDeps[i]); +import{_ as X}from"./app-B7rxM88G.js";function _h(t){for(var e=[],i=1;i `:`
${r}
`).join("").replace(bn,(r,n)=>i.renderToString(n,{throwOnError:!0,displayMode:!0,output:vs()?"mathml":"htmlAndMathml"}).replace(/\n/g," ").replace(//g,""))},Hn={getRows:Mm,sanitizeText:mi,sanitizeTextOrArray:Dm,hasBreaks:Nm,splitBreaks:Rm,lineBreakRegex:vi,removeScript:tl,getUrl:qm,evaluate:il,getMax:zm,getMin:Wm},ft=(t,e)=>e?g(t,{s:-40,l:10}):g(t,{s:-40,l:-10}),Br="#ffffff",Ar="#f2f2f2";let Ym=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||g(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||g(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||ft(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||ft(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||ft(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||ft(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||C(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||C(this.tertiaryColor),this.lineColor=this.lineColor||C(this.background),this.arrowheadColor=this.arrowheadColor||C(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?M(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||M(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||C(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||L(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.darkMode)for(let p=0;p{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Vm=t=>{const e=new Ym;return e.calculate(t),e};let Gm=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=L(this.primaryColor,16),this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=C(this.background),this.secondaryBorderColor=ft(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ft(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=L(C("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=ri(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=M("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=M(this.sectionBkgColor,10),this.taskBorderColor=ri(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=ri(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.secondBkg=L(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=L(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=L(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=g(this.primaryColor,{h:64}),this.fillType3=g(this.secondaryColor,{h:64}),this.fillType4=g(this.primaryColor,{h:-64}),this.fillType5=g(this.secondaryColor,{h:-64}),this.fillType6=g(this.primaryColor,{h:128}),this.fillType7=g(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330});for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Xm=t=>{const e=new Gm;return e.calculate(t),e};let Km=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=g(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=ft(this.primaryColor,this.darkMode),this.secondaryBorderColor=ft(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ft(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=ri(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||M(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||M(this.tertiaryColor,40);for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Zm=t=>{const e=new Km;return e.calculate(t),e};let Jm=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=L("#cde498",10),this.primaryBorderColor=ft(this.primaryColor,this.darkMode),this.secondaryBorderColor=ft(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ft(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.primaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.actorBorder=M(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||M(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||M(this.tertiaryColor,40);for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}};const Qm=t=>{const e=new Jm;return e.calculate(t),e};class t0{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=L(this.contrast,55),this.background="#ffffff",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=ft(this.primaryColor,this.darkMode),this.secondaryBorderColor=ft(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=ft(this.tertiaryColor,this.darkMode),this.primaryTextColor=C(this.primaryColor),this.secondaryTextColor=C(this.secondaryColor),this.tertiaryTextColor=C(this.tertiaryColor),this.lineColor=C(this.background),this.textColor=C(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){var e,i,r,n,o,s,a,l,h,u,f;this.secondBkg=L(this.contrast,55),this.border2=this.contrast,this.actorBorder=L(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let c=0;c{this[r]=e[r]}),this.updateColors(),i.forEach(r=>{this[r]=e[r]})}}const e0=t=>{const e=new t0;return e.calculate(t),e},Zt={base:{getThemeVariables:Vm},dark:{getThemeVariables:Xm},default:{getThemeVariables:Zm},forest:{getThemeVariables:Qm},neutral:{getThemeVariables:e0}},Gt={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},theme:"default",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","maxEdges"],legacyMathML:!1,deterministicIds:!1,fontSize:16},rl={...Gt,deterministicIDSeed:void 0,themeCSS:void 0,themeVariables:Zt.default.getThemeVariables(),sequence:{...Gt.sequence,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{...Gt.gantt,tickInterval:void 0,useWidth:void 0},c4:{...Gt.c4,useWidth:void 0,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}},pie:{...Gt.pie,useWidth:984},xyChart:{...Gt.xyChart,useWidth:void 0},requirement:{...Gt.requirement,useWidth:void 0},gitGraph:{...Gt.gitGraph,useMaxWidth:!1},sankey:{...Gt.sankey,useMaxWidth:!1}},nl=(t,e="")=>Object.keys(t).reduce((i,r)=>Array.isArray(t[r])?i:typeof t[r]=="object"&&t[r]!==null?[...i,e+r,...nl(t[r],"")]:[...i,e+r],[]),i0=new Set(nl(rl,"")),r0=rl,or=t=>{if(O.debug("sanitizeDirective called with",t),!(typeof t!="object"||t==null)){if(Array.isArray(t)){t.forEach(e=>or(e));return}for(const e of Object.keys(t)){if(O.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!i0.has(e)||t[e]==null){O.debug("sanitize deleting key: ",e),delete t[e];continue}if(typeof t[e]=="object"){O.debug("sanitizing object",e),or(t[e]);continue}const i=["themeCSS","fontFamily","altFontFamily"];for(const r of i)e.includes(r)&&(O.debug("sanitizing css option",e),t[e]=n0(t[e]))}if(t.themeVariables)for(const e of Object.keys(t.themeVariables)){const i=t.themeVariables[e];i!=null&&i.match&&!i.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[e]="")}O.debug("After sanitization",t)}},n0=t=>{let e=0,i=0;for(const r of t){if(e{for(const{id:e,detector:i,loader:r}of t)ll(e,i,r)},ll=(t,e,i)=>{De[t]?O.error(`Detector with key ${t} already exists`):De[t]={detector:e,loader:i},O.debug(`Detector with key ${t} added${i?" with loader":""}`)},s0=t=>De[t].loader,Tn=(t,e,{depth:i=2,clobber:r=!1}={})=>{const n={depth:i,clobber:r};return Array.isArray(e)&&!Array.isArray(t)?(e.forEach(o=>Tn(t,o,n)),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach(o=>{t.includes(o)||t.push(o)}),t):t===void 0||i<=0?t!=null&&typeof t=="object"&&typeof e=="object"?Object.assign(t,e):e:(e!==void 0&&typeof t=="object"&&typeof e=="object"&&Object.keys(e).forEach(o=>{typeof e[o]=="object"&&(t[o]===void 0||typeof t[o]=="object")?(t[o]===void 0&&(t[o]=Array.isArray(e[o])?[]:{}),t[o]=Tn(t[o],e[o],{depth:i-1,clobber:r})):(r||typeof t[o]!="object"&&typeof e[o]!="object")&&(t[o]=e[o])}),t)},st=Tn,a0="​",l0={curveBasis:qf,curveBasisClosed:zf,curveBasisOpen:Wf,curveBumpX:Rf,curveBumpY:Pf,curveBundle:Hf,curveCardinalClosed:Uf,curveCardinalOpen:Yf,curveCardinal:jf,curveCatmullRomClosed:Gf,curveCatmullRomOpen:Xf,curveCatmullRom:Vf,curveLinear:Nf,curveLinearClosed:Kf,curveMonotoneX:Zf,curveMonotoneY:Jf,curveNatural:Qf,curveStep:td,curveStepAfter:id,curveStepBefore:ed},h0=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,c0=function(t,e){const i=hl(t,/(?:init\b)|(?:initialize\b)/);let r={};if(Array.isArray(i)){const s=i.map(a=>a.args);or(s),r=st(r,[...s])}else r=i.args;if(!r)return;let n=Lr(t,e);const o="config";return r[o]!==void 0&&(n==="flowchart-v2"&&(n="flowchart"),r[n]=r[o],delete r[o]),r},hl=function(t,e=null){try{const i=new RegExp(`[%]{2}(?![{]${h0.source})(?=[}][%]{2}).* -`,"ig");t=t.trim().replace(i,"").replace(/'/gm,'"'),O.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let r;const n=[];for(;(r=oi.exec(t))!==null;)if(r.index===oi.lastIndex&&oi.lastIndex++,r&&!e||e&&r[1]&&r[1].match(e)||e&&r[2]&&r[2].match(e)){const o=r[1]?r[1]:r[2],s=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;n.push({type:o,args:s})}return n.length===0?{type:t,args:null}:n.length===1?n[0]:n}catch(i){return O.error(`ERROR: ${i.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},u0=function(t){return t.replace(oi,"")},f0=function(t,e){for(const[i,r]of e.entries())if(r.match(t))return i;return-1};function d0(t,e){if(!t)return e;const i=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return l0[i]??e}function p0(t,e){const i=t.trim();if(i)return e.securityLevel!=="loose"?Ws.sanitizeUrl(i):i}const g0=(t,...e)=>{const i=t.split("."),r=i.length-1,n=i[r];let o=window;for(let s=0;s{i+=cl(n,e),e=n});const r=i/2;return jn(t,r)}function _0(t){return t.length===1?t[0]:m0(t)}const Ss=(t,e=2)=>{const i=Math.pow(10,e);return Math.round(t*i)/i},jn=(t,e)=>{let i,r=e;for(const n of t){if(i){const o=cl(n,i);if(o=1)return{x:n.x,y:n.y};if(s>0&&s<1)return{x:Ss((1-s)*i.x+s*n.x,5),y:Ss((1-s)*i.y+s*n.y,5)}}}i=n}throw new Error("Could not find a suitable point for the given distance")},y0=(t,e,i)=>{O.info(`our points ${JSON.stringify(e)}`),e[0]!==i&&(e=e.reverse());const n=jn(e,25),o=t?10:5,s=Math.atan2(e[0].y-n.y,e[0].x-n.x),a={x:0,y:0};return a.x=Math.sin(s)*o+(e[0].x+n.x)/2,a.y=-Math.cos(s)*o+(e[0].y+n.y)/2,a};function C0(t,e,i){const r=structuredClone(i);O.info("our points",r),e!=="start_left"&&e!=="start_right"&&r.reverse();const n=25+t,o=jn(r,n),s=10+t*.5,a=Math.atan2(r[0].y-o.y,r[0].x-o.x),l={x:0,y:0};return e==="start_left"?(l.x=Math.sin(a+Math.PI)*s+(r[0].x+o.x)/2,l.y=-Math.cos(a+Math.PI)*s+(r[0].y+o.y)/2):e==="end_right"?(l.x=Math.sin(a-Math.PI)*s+(r[0].x+o.x)/2-5,l.y=-Math.cos(a-Math.PI)*s+(r[0].y+o.y)/2-5):e==="end_left"?(l.x=Math.sin(a)*s+(r[0].x+o.x)/2-5,l.y=-Math.cos(a)*s+(r[0].y+o.y)/2-5):(l.x=Math.sin(a)*s+(r[0].x+o.x)/2,l.y=-Math.cos(a)*s+(r[0].y+o.y)/2),l}function x0(t){let e="",i="";for(const r of t)r!==void 0&&(r.startsWith("color:")||r.startsWith("text-align:")?i=i+r+";":e=e+r+";");return{style:e,labelStyle:i}}let ws=0;const b0=()=>(ws++,"id-"+Math.random().toString(36).substr(2,12)+"-"+ws);function T0(t){let e="";const i="0123456789abcdef",r=i.length;for(let n=0;nT0(t.length),k0=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},S0=function(t,e){const i=e.text.replace(Hn.lineBreakRegex," "),[,r]=Yn(e.fontSize),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.style("text-anchor",e.anchor),n.style("font-family",e.fontFamily),n.style("font-size",r),n.style("font-weight",e.fontWeight),n.attr("fill",e.fill),e.class!==void 0&&n.attr("class",e.class);const o=n.append("tspan");return o.attr("x",e.x+e.textMargin*2),o.attr("fill",e.fill),o.text(i),n},w0=bi((t,e,i)=>{if(!t||(i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},i),Hn.lineBreakRegex.test(t)))return t;const r=t.split(" "),n=[];let o="";return r.forEach((s,a)=>{const l=sr(`${s} `,i),h=sr(o,i);if(l>e){const{hyphenatedStrings:c,remainingWord:p}=B0(s,e,"-",i);n.push(o,...c),o=p}else h+l>=e?(n.push(o),o=s):o=[o,s].filter(Boolean).join(" ");a+1===r.length&&n.push(o)}),n.filter(s=>s!=="").join(i.joinWith)},(t,e,i)=>`${t}${e}${i.fontSize}${i.fontWeight}${i.fontFamily}${i.joinWith}`),B0=bi((t,e,i="-",r)=>{r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);const n=[...t],o=[];let s="";return n.forEach((a,l)=>{const h=`${s}${a}`;if(sr(h,r)>=e){const f=l+1,c=n.length===f,p=`${h}${i}`;o.push(c?h:p),s=""}else s=h}),{hyphenatedStrings:o,remainingWord:s}},(t,e,i="-",r)=>`${t}${e}${i}${r.fontSize}${r.fontWeight}${r.fontFamily}`);function A0(t,e){return Un(t,e).height}function sr(t,e){return Un(t,e).width}const Un=bi((t,e)=>{const{fontSize:i=12,fontFamily:r="Arial",fontWeight:n=400}=e;if(!t)return{width:0,height:0};const[,o]=Yn(i),s=["sans-serif",r],a=t.split(Hn.lineBreakRegex),l=[],h=Tt("body");if(!h.remove)return{width:0,height:0,lineHeight:0};const u=h.append("svg");for(const c of s){let p=0;const _={width:0,height:0,lineHeight:0};for(const v of a){const k=k0();k.text=v||a0;const N=S0(u,k).style("font-size",o).style("font-weight",n).style("font-family",c),b=(N._groups||N)[0][0].getBBox();if(b.width===0&&b.height===0)throw new Error("svg element not in render tree");_.width=Math.round(Math.max(_.width,b.width)),p=Math.round(b.height),_.height+=p,_.lineHeight=Math.round(Math.max(_.lineHeight,p))}l.push(_)}u.remove();const f=isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1;return l[f]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`);class L0{constructor(e=!1,i){this.count=0,this.count=i?i.length:0,this.next=e?()=>this.count++:()=>Date.now()}}let Di;const F0=function(t){return Di=Di||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),Di.innerHTML=t,unescape(Di.textContent)};function ul(t){return"str"in t}const E0=(t,e,i,r)=>{var n;if(!r)return;const o=(n=t.node())==null?void 0:n.getBBox();o&&t.append("text").text(r).attr("x",o.x+o.width/2).attr("y",-i).attr("class",e)},Yn=t=>{if(typeof t=="number")return[t,t+"px"];const e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]};function fl(t,e){return im({},t,e)}const si={assignWithDepth:st,wrapLabel:w0,calculateTextHeight:A0,calculateTextWidth:sr,calculateTextDimensions:Un,cleanAndMerge:fl,detectInit:c0,detectDirective:hl,isSubstringInArray:f0,interpolateToCurve:d0,calcLabelPosition:_0,calcCardinalityPosition:y0,calcTerminalLabelPosition:C0,formatUrl:p0,getStylesFromArray:x0,generateId:b0,random:v0,runFunc:g0,entityDecode:F0,insertTitle:E0,parseFontSize:Yn,InitIDGenerator:L0},O0=function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/#\w+;/g,function(i){const r=i.substring(1,i.length-1);return/^\+?\d+$/.test(r)?"fl°°"+r+"¶ß":"fl°"+r+"¶ß"}),e},M0=function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},Bs="10.9.1",Ne=Object.freeze(r0);let gt=st({},Ne),dl,Re=[],ai=st({},Ne);const Fr=(t,e)=>{let i=st({},t),r={};for(const n of e)ml(n),r=st(r,n);if(i=st(i,r),r.theme&&r.theme in Zt){const n=st({},dl),o=st(n.themeVariables||{},r.themeVariables);i.theme&&i.theme in Zt&&(i.themeVariables=Zt[i.theme].getThemeVariables(o))}return ai=i,_l(ai),ai},I0=t=>(gt=st({},Ne),gt=st(gt,t),t.theme&&Zt[t.theme]&&(gt.themeVariables=Zt[t.theme].getThemeVariables(t.themeVariables)),Fr(gt,Re),gt),$0=t=>{dl=st({},t)},D0=t=>(gt=st(gt,t),Fr(gt,Re),gt),pl=()=>st({},gt),gl=t=>(_l(t),st(ai,t),Pt()),Pt=()=>st({},ai),ml=t=>{t&&(["secure",...gt.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(O.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&ml(t[e])}))},N0=t=>{or(t),t.fontFamily&&(!t.themeVariables||!t.themeVariables.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),Re.push(t),Fr(gt,Re)},ar=(t=gt)=>{Re=[],Fr(t,Re)},R0={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},As={},P0=t=>{As[t]||(O.warn(R0[t]),As[t]=!0)},_l=t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&P0("LAZY_LOAD_DEPRECATED")},yl="c4",q0=t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),z0=async()=>{const{diagram:t}=await X(()=>import("./c4Diagram-ae766693-CUy5LWf1.js"),__vite__mapDeps([0,1,2]));return{id:yl,diagram:t}},W0={id:yl,detector:q0,loader:z0},H0=W0,Cl="flowchart",j0=(t,e)=>{var i,r;return((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"||((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},U0=async()=>{const{diagram:t}=await X(()=>import("./flowDiagram-b222e15a-EQMov2Ka.js"),__vite__mapDeps([3,4,5,6,7,8,9,10,11,12,13,14,15,2]));return{id:Cl,diagram:t}},Y0={id:Cl,detector:j0,loader:U0},V0=Y0,xl="flowchart-v2",G0=(t,e)=>{var i,r,n;return((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-d3"||((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)&&((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)},X0=async()=>{const{diagram:t}=await X(()=>import("./flowDiagram-v2-13329dc7-08uOBUsR.js"),__vite__mapDeps([16,4,7,5,8,6,9,10,11,12,13,14,15,2]));return{id:xl,diagram:t}},K0={id:xl,detector:G0,loader:X0},Z0=K0,bl="er",J0=t=>/^\s*erDiagram/.test(t),Q0=async()=>{const{diagram:t}=await X(()=>import("./erDiagram-09d1c15f-HbBTHeac.js"),__vite__mapDeps([17,5,6,12,13,14,2]));return{id:bl,diagram:t}},t_={id:bl,detector:J0,loader:Q0},e_=t_,Tl="gitGraph",i_=t=>/^\s*gitGraph/.test(t),r_=async()=>{const{diagram:t}=await X(()=>import("./gitGraphDiagram-942e62fe-DgiEBaCK.js"),__vite__mapDeps([18,2]));return{id:Tl,diagram:t}},n_={id:Tl,detector:i_,loader:r_},o_=n_,vl="gantt",s_=t=>/^\s*gantt/.test(t),a_=async()=>{const{diagram:t}=await X(()=>import("./ganttDiagram-b62c793e-DNQqloZc.js"),__vite__mapDeps([19,20,21,2]));return{id:vl,diagram:t}},l_={id:vl,detector:s_,loader:a_},h_=l_,kl="info",c_=t=>/^\s*info/.test(t),u_=async()=>{const{diagram:t}=await X(()=>import("./infoDiagram-94cd232f-znpLWbNm.js"),__vite__mapDeps([22,2]));return{id:kl,diagram:t}},f_={id:kl,detector:c_,loader:u_},Sl="pie",d_=t=>/^\s*pie/.test(t),p_=async()=>{const{diagram:t}=await X(()=>import("./pieDiagram-bb1d19e5-DTocJMlC.js"),__vite__mapDeps([23,24,14,25,21,13,2]));return{id:Sl,diagram:t}},g_={id:Sl,detector:d_,loader:p_},wl="quadrantChart",m_=t=>/^\s*quadrantChart/.test(t),__=async()=>{const{diagram:t}=await X(()=>import("./quadrantDiagram-c759a472-DS1tcxYb.js"),__vite__mapDeps([26,20,21,2]));return{id:wl,diagram:t}},y_={id:wl,detector:m_,loader:__},C_=y_,Bl="xychart",x_=t=>/^\s*xychart-beta/.test(t),b_=async()=>{const{diagram:t}=await X(()=>import("./xychartDiagram-f11f50a6-DXjcrauj.js"),__vite__mapDeps([27,11,21,25,20,12,13,14,2]));return{id:Bl,diagram:t}},T_={id:Bl,detector:x_,loader:b_},v_=T_,Al="requirement",k_=t=>/^\s*requirement(Diagram)?/.test(t),S_=async()=>{const{diagram:t}=await X(()=>import("./requirementDiagram-87253d64-CeDPUd4g.js"),__vite__mapDeps([28,5,6,12,13,14,2]));return{id:Al,diagram:t}},w_={id:Al,detector:k_,loader:S_},B_=w_,Ll="sequence",A_=t=>/^\s*sequenceDiagram/.test(t),L_=async()=>{const{diagram:t}=await X(()=>import("./sequenceDiagram-6894f283-vjJz8JpS.js"),__vite__mapDeps([29,1,2]));return{id:Ll,diagram:t}},F_={id:Ll,detector:A_,loader:L_},E_=F_,Fl="class",O_=(t,e)=>{var i;return((i=e==null?void 0:e.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},M_=async()=>{const{diagram:t}=await X(()=>import("./classDiagram-fb54d2a0-Sx-rWsFE.js"),__vite__mapDeps([30,31,5,6,12,13,14,2]));return{id:Fl,diagram:t}},I_={id:Fl,detector:O_,loader:M_},$_=I_,El="classDiagram",D_=(t,e)=>{var i;return/^\s*classDiagram/.test(t)&&((i=e==null?void 0:e.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},N_=async()=>{const{diagram:t}=await X(()=>import("./classDiagram-v2-a2b738ad-D0vvTt6n.js"),__vite__mapDeps([32,31,5,8,6,9,10,11,12,13,14,2]));return{id:El,diagram:t}},R_={id:El,detector:D_,loader:N_},P_=R_,Ol="state",q_=(t,e)=>{var i;return((i=e==null?void 0:e.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},z_=async()=>{const{diagram:t}=await X(()=>import("./stateDiagram-5dee940d-Ct9I0Jb9.js"),__vite__mapDeps([33,34,5,6,12,13,14,2]));return{id:Ol,diagram:t}},W_={id:Ol,detector:q_,loader:z_},H_=W_,Ml="stateDiagram",j_=(t,e)=>{var i;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((i=e==null?void 0:e.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper")},U_=async()=>{const{diagram:t}=await X(()=>import("./stateDiagram-v2-1992cada-CYZqJEoI.js"),__vite__mapDeps([35,34,5,8,6,9,10,11,12,13,14,2]));return{id:Ml,diagram:t}},Y_={id:Ml,detector:j_,loader:U_},V_=Y_,Il="journey",G_=t=>/^\s*journey/.test(t),X_=async()=>{const{diagram:t}=await X(()=>import("./journeyDiagram-6625b456-DdTzKQA0.js"),__vite__mapDeps([36,1,24,14,2]));return{id:Il,diagram:t}},K_={id:Il,detector:G_,loader:X_},Z_=K_,J_=function(t,e){for(let i of e)t.attr(i[0],i[1])},Q_=function(t,e,i){let r=new Map;return i?(r.set("width","100%"),r.set("style",`max-width: ${e}px;`)):(r.set("height",t),r.set("width",e)),r},$l=function(t,e,i,r){const n=Q_(e,i,r);J_(t,n)},ty=function(t,e,i,r){const n=e.node().getBBox(),o=n.width,s=n.height;O.info(`SVG bounds: ${o}x${s}`,n);let a=0,l=0;O.info(`Graph bounds: ${a}x${l}`,t),a=o+i*2,l=s+i*2,O.info(`Calculated bounds: ${a}x${l}`),$l(e,l,a,r);const h=`${n.x-i} ${n.y-i} ${n.width+2*i} ${n.height+2*i}`;e.attr("viewBox",h)},Ui={},ey=(t,e,i)=>{let r="";return t in Ui&&Ui[t]?r=Ui[t](i):O.warn(`No theme found for ${t}`),` & { +`,"ig");t=t.trim().replace(i,"").replace(/'/gm,'"'),O.debug(`Detecting diagram directive${e!==null?" type:"+e:""} based on the text:${t}`);let r;const n=[];for(;(r=oi.exec(t))!==null;)if(r.index===oi.lastIndex&&oi.lastIndex++,r&&!e||e&&r[1]&&r[1].match(e)||e&&r[2]&&r[2].match(e)){const o=r[1]?r[1]:r[2],s=r[3]?r[3].trim():r[4]?JSON.parse(r[4].trim()):null;n.push({type:o,args:s})}return n.length===0?{type:t,args:null}:n.length===1?n[0]:n}catch(i){return O.error(`ERROR: ${i.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},u0=function(t){return t.replace(oi,"")},f0=function(t,e){for(const[i,r]of e.entries())if(r.match(t))return i;return-1};function d0(t,e){if(!t)return e;const i=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return l0[i]??e}function p0(t,e){const i=t.trim();if(i)return e.securityLevel!=="loose"?Ws.sanitizeUrl(i):i}const g0=(t,...e)=>{const i=t.split("."),r=i.length-1,n=i[r];let o=window;for(let s=0;s{i+=cl(n,e),e=n});const r=i/2;return jn(t,r)}function _0(t){return t.length===1?t[0]:m0(t)}const Ss=(t,e=2)=>{const i=Math.pow(10,e);return Math.round(t*i)/i},jn=(t,e)=>{let i,r=e;for(const n of t){if(i){const o=cl(n,i);if(o=1)return{x:n.x,y:n.y};if(s>0&&s<1)return{x:Ss((1-s)*i.x+s*n.x,5),y:Ss((1-s)*i.y+s*n.y,5)}}}i=n}throw new Error("Could not find a suitable point for the given distance")},y0=(t,e,i)=>{O.info(`our points ${JSON.stringify(e)}`),e[0]!==i&&(e=e.reverse());const n=jn(e,25),o=t?10:5,s=Math.atan2(e[0].y-n.y,e[0].x-n.x),a={x:0,y:0};return a.x=Math.sin(s)*o+(e[0].x+n.x)/2,a.y=-Math.cos(s)*o+(e[0].y+n.y)/2,a};function C0(t,e,i){const r=structuredClone(i);O.info("our points",r),e!=="start_left"&&e!=="start_right"&&r.reverse();const n=25+t,o=jn(r,n),s=10+t*.5,a=Math.atan2(r[0].y-o.y,r[0].x-o.x),l={x:0,y:0};return e==="start_left"?(l.x=Math.sin(a+Math.PI)*s+(r[0].x+o.x)/2,l.y=-Math.cos(a+Math.PI)*s+(r[0].y+o.y)/2):e==="end_right"?(l.x=Math.sin(a-Math.PI)*s+(r[0].x+o.x)/2-5,l.y=-Math.cos(a-Math.PI)*s+(r[0].y+o.y)/2-5):e==="end_left"?(l.x=Math.sin(a)*s+(r[0].x+o.x)/2-5,l.y=-Math.cos(a)*s+(r[0].y+o.y)/2-5):(l.x=Math.sin(a)*s+(r[0].x+o.x)/2,l.y=-Math.cos(a)*s+(r[0].y+o.y)/2),l}function x0(t){let e="",i="";for(const r of t)r!==void 0&&(r.startsWith("color:")||r.startsWith("text-align:")?i=i+r+";":e=e+r+";");return{style:e,labelStyle:i}}let ws=0;const b0=()=>(ws++,"id-"+Math.random().toString(36).substr(2,12)+"-"+ws);function T0(t){let e="";const i="0123456789abcdef",r=i.length;for(let n=0;nT0(t.length),k0=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},S0=function(t,e){const i=e.text.replace(Hn.lineBreakRegex," "),[,r]=Yn(e.fontSize),n=t.append("text");n.attr("x",e.x),n.attr("y",e.y),n.style("text-anchor",e.anchor),n.style("font-family",e.fontFamily),n.style("font-size",r),n.style("font-weight",e.fontWeight),n.attr("fill",e.fill),e.class!==void 0&&n.attr("class",e.class);const o=n.append("tspan");return o.attr("x",e.x+e.textMargin*2),o.attr("fill",e.fill),o.text(i),n},w0=bi((t,e,i)=>{if(!t||(i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},i),Hn.lineBreakRegex.test(t)))return t;const r=t.split(" "),n=[];let o="";return r.forEach((s,a)=>{const l=sr(`${s} `,i),h=sr(o,i);if(l>e){const{hyphenatedStrings:c,remainingWord:p}=B0(s,e,"-",i);n.push(o,...c),o=p}else h+l>=e?(n.push(o),o=s):o=[o,s].filter(Boolean).join(" ");a+1===r.length&&n.push(o)}),n.filter(s=>s!=="").join(i.joinWith)},(t,e,i)=>`${t}${e}${i.fontSize}${i.fontWeight}${i.fontFamily}${i.joinWith}`),B0=bi((t,e,i="-",r)=>{r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);const n=[...t],o=[];let s="";return n.forEach((a,l)=>{const h=`${s}${a}`;if(sr(h,r)>=e){const f=l+1,c=n.length===f,p=`${h}${i}`;o.push(c?h:p),s=""}else s=h}),{hyphenatedStrings:o,remainingWord:s}},(t,e,i="-",r)=>`${t}${e}${i}${r.fontSize}${r.fontWeight}${r.fontFamily}`);function A0(t,e){return Un(t,e).height}function sr(t,e){return Un(t,e).width}const Un=bi((t,e)=>{const{fontSize:i=12,fontFamily:r="Arial",fontWeight:n=400}=e;if(!t)return{width:0,height:0};const[,o]=Yn(i),s=["sans-serif",r],a=t.split(Hn.lineBreakRegex),l=[],h=Tt("body");if(!h.remove)return{width:0,height:0,lineHeight:0};const u=h.append("svg");for(const c of s){let p=0;const _={width:0,height:0,lineHeight:0};for(const v of a){const k=k0();k.text=v||a0;const N=S0(u,k).style("font-size",o).style("font-weight",n).style("font-family",c),b=(N._groups||N)[0][0].getBBox();if(b.width===0&&b.height===0)throw new Error("svg element not in render tree");_.width=Math.round(Math.max(_.width,b.width)),p=Math.round(b.height),_.height+=p,_.lineHeight=Math.round(Math.max(_.lineHeight,p))}l.push(_)}u.remove();const f=isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1;return l[f]},(t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`);class L0{constructor(e=!1,i){this.count=0,this.count=i?i.length:0,this.next=e?()=>this.count++:()=>Date.now()}}let Di;const F0=function(t){return Di=Di||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),Di.innerHTML=t,unescape(Di.textContent)};function ul(t){return"str"in t}const E0=(t,e,i,r)=>{var n;if(!r)return;const o=(n=t.node())==null?void 0:n.getBBox();o&&t.append("text").text(r).attr("x",o.x+o.width/2).attr("y",-i).attr("class",e)},Yn=t=>{if(typeof t=="number")return[t,t+"px"];const e=parseInt(t??"",10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]};function fl(t,e){return im({},t,e)}const si={assignWithDepth:st,wrapLabel:w0,calculateTextHeight:A0,calculateTextWidth:sr,calculateTextDimensions:Un,cleanAndMerge:fl,detectInit:c0,detectDirective:hl,isSubstringInArray:f0,interpolateToCurve:d0,calcLabelPosition:_0,calcCardinalityPosition:y0,calcTerminalLabelPosition:C0,formatUrl:p0,getStylesFromArray:x0,generateId:b0,random:v0,runFunc:g0,entityDecode:F0,insertTitle:E0,parseFontSize:Yn,InitIDGenerator:L0},O0=function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/classDef.*:\S*#.*;/g,function(i){return i.substring(0,i.length-1)}),e=e.replace(/#\w+;/g,function(i){const r=i.substring(1,i.length-1);return/^\+?\d+$/.test(r)?"fl°°"+r+"¶ß":"fl°"+r+"¶ß"}),e},M0=function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},Bs="10.9.1",Ne=Object.freeze(r0);let gt=st({},Ne),dl,Re=[],ai=st({},Ne);const Fr=(t,e)=>{let i=st({},t),r={};for(const n of e)ml(n),r=st(r,n);if(i=st(i,r),r.theme&&r.theme in Zt){const n=st({},dl),o=st(n.themeVariables||{},r.themeVariables);i.theme&&i.theme in Zt&&(i.themeVariables=Zt[i.theme].getThemeVariables(o))}return ai=i,_l(ai),ai},I0=t=>(gt=st({},Ne),gt=st(gt,t),t.theme&&Zt[t.theme]&&(gt.themeVariables=Zt[t.theme].getThemeVariables(t.themeVariables)),Fr(gt,Re),gt),$0=t=>{dl=st({},t)},D0=t=>(gt=st(gt,t),Fr(gt,Re),gt),pl=()=>st({},gt),gl=t=>(_l(t),st(ai,t),Pt()),Pt=()=>st({},ai),ml=t=>{t&&(["secure",...gt.secure??[]].forEach(e=>{Object.hasOwn(t,e)&&(O.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])}),Object.keys(t).forEach(e=>{e.startsWith("__")&&delete t[e]}),Object.keys(t).forEach(e=>{typeof t[e]=="string"&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],typeof t[e]=="object"&&ml(t[e])}))},N0=t=>{or(t),t.fontFamily&&(!t.themeVariables||!t.themeVariables.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),Re.push(t),Fr(gt,Re)},ar=(t=gt)=>{Re=[],Fr(t,Re)},R0={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},As={},P0=t=>{As[t]||(O.warn(R0[t]),As[t]=!0)},_l=t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&P0("LAZY_LOAD_DEPRECATED")},yl="c4",q0=t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),z0=async()=>{const{diagram:t}=await X(()=>import("./c4Diagram-ae766693-BTix4Ws5.js"),__vite__mapDeps([0,1,2]));return{id:yl,diagram:t}},W0={id:yl,detector:q0,loader:z0},H0=W0,Cl="flowchart",j0=(t,e)=>{var i,r;return((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"||((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)},U0=async()=>{const{diagram:t}=await X(()=>import("./flowDiagram-b222e15a-C05KrNLm.js"),__vite__mapDeps([3,4,5,6,7,8,9,10,11,12,13,14,15,2]));return{id:Cl,diagram:t}},Y0={id:Cl,detector:j0,loader:U0},V0=Y0,xl="flowchart-v2",G0=(t,e)=>{var i,r,n;return((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="dagre-d3"||((r=e==null?void 0:e.flowchart)==null?void 0:r.defaultRenderer)==="elk"?!1:/^\s*graph/.test(t)&&((n=e==null?void 0:e.flowchart)==null?void 0:n.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(t)},X0=async()=>{const{diagram:t}=await X(()=>import("./flowDiagram-v2-13329dc7-D1675DB6.js"),__vite__mapDeps([16,4,7,5,8,6,9,10,11,12,13,14,15,2]));return{id:xl,diagram:t}},K0={id:xl,detector:G0,loader:X0},Z0=K0,bl="er",J0=t=>/^\s*erDiagram/.test(t),Q0=async()=>{const{diagram:t}=await X(()=>import("./erDiagram-09d1c15f-Cq02I8yw.js"),__vite__mapDeps([17,5,6,12,13,14,2]));return{id:bl,diagram:t}},t_={id:bl,detector:J0,loader:Q0},e_=t_,Tl="gitGraph",i_=t=>/^\s*gitGraph/.test(t),r_=async()=>{const{diagram:t}=await X(()=>import("./gitGraphDiagram-942e62fe-C7MdniS-.js"),__vite__mapDeps([18,2]));return{id:Tl,diagram:t}},n_={id:Tl,detector:i_,loader:r_},o_=n_,vl="gantt",s_=t=>/^\s*gantt/.test(t),a_=async()=>{const{diagram:t}=await X(()=>import("./ganttDiagram-b62c793e-BBZElqEr.js"),__vite__mapDeps([19,20,21,2]));return{id:vl,diagram:t}},l_={id:vl,detector:s_,loader:a_},h_=l_,kl="info",c_=t=>/^\s*info/.test(t),u_=async()=>{const{diagram:t}=await X(()=>import("./infoDiagram-94cd232f-CpI5hD6J.js"),__vite__mapDeps([22,2]));return{id:kl,diagram:t}},f_={id:kl,detector:c_,loader:u_},Sl="pie",d_=t=>/^\s*pie/.test(t),p_=async()=>{const{diagram:t}=await X(()=>import("./pieDiagram-bb1d19e5-C2756XJQ.js"),__vite__mapDeps([23,24,14,25,21,13,2]));return{id:Sl,diagram:t}},g_={id:Sl,detector:d_,loader:p_},wl="quadrantChart",m_=t=>/^\s*quadrantChart/.test(t),__=async()=>{const{diagram:t}=await X(()=>import("./quadrantDiagram-c759a472-B-yKjtHK.js"),__vite__mapDeps([26,20,21,2]));return{id:wl,diagram:t}},y_={id:wl,detector:m_,loader:__},C_=y_,Bl="xychart",x_=t=>/^\s*xychart-beta/.test(t),b_=async()=>{const{diagram:t}=await X(()=>import("./xychartDiagram-f11f50a6-BV3T3Dmy.js"),__vite__mapDeps([27,11,21,25,20,12,13,14,2]));return{id:Bl,diagram:t}},T_={id:Bl,detector:x_,loader:b_},v_=T_,Al="requirement",k_=t=>/^\s*requirement(Diagram)?/.test(t),S_=async()=>{const{diagram:t}=await X(()=>import("./requirementDiagram-87253d64-Cszy6Rvt.js"),__vite__mapDeps([28,5,6,12,13,14,2]));return{id:Al,diagram:t}},w_={id:Al,detector:k_,loader:S_},B_=w_,Ll="sequence",A_=t=>/^\s*sequenceDiagram/.test(t),L_=async()=>{const{diagram:t}=await X(()=>import("./sequenceDiagram-6894f283-DNGrofAl.js"),__vite__mapDeps([29,1,2]));return{id:Ll,diagram:t}},F_={id:Ll,detector:A_,loader:L_},E_=F_,Fl="class",O_=(t,e)=>{var i;return((i=e==null?void 0:e.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(t)},M_=async()=>{const{diagram:t}=await X(()=>import("./classDiagram-fb54d2a0-C8mBi0ie.js"),__vite__mapDeps([30,31,5,6,12,13,14,2]));return{id:Fl,diagram:t}},I_={id:Fl,detector:O_,loader:M_},$_=I_,El="classDiagram",D_=(t,e)=>{var i;return/^\s*classDiagram/.test(t)&&((i=e==null?void 0:e.class)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(t)},N_=async()=>{const{diagram:t}=await X(()=>import("./classDiagram-v2-a2b738ad-B2KLm9e2.js"),__vite__mapDeps([32,31,5,8,6,9,10,11,12,13,14,2]));return{id:El,diagram:t}},R_={id:El,detector:D_,loader:N_},P_=R_,Ol="state",q_=(t,e)=>{var i;return((i=e==null?void 0:e.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(t)},z_=async()=>{const{diagram:t}=await X(()=>import("./stateDiagram-5dee940d-DyuMIJ4M.js"),__vite__mapDeps([33,34,5,6,12,13,14,2]));return{id:Ol,diagram:t}},W_={id:Ol,detector:q_,loader:z_},H_=W_,Ml="stateDiagram",j_=(t,e)=>{var i;return!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&((i=e==null?void 0:e.state)==null?void 0:i.defaultRenderer)==="dagre-wrapper")},U_=async()=>{const{diagram:t}=await X(()=>import("./stateDiagram-v2-1992cada-DCEDun8l.js"),__vite__mapDeps([35,34,5,8,6,9,10,11,12,13,14,2]));return{id:Ml,diagram:t}},Y_={id:Ml,detector:j_,loader:U_},V_=Y_,Il="journey",G_=t=>/^\s*journey/.test(t),X_=async()=>{const{diagram:t}=await X(()=>import("./journeyDiagram-6625b456-C-oR09-z.js"),__vite__mapDeps([36,1,24,14,2]));return{id:Il,diagram:t}},K_={id:Il,detector:G_,loader:X_},Z_=K_,J_=function(t,e){for(let i of e)t.attr(i[0],i[1])},Q_=function(t,e,i){let r=new Map;return i?(r.set("width","100%"),r.set("style",`max-width: ${e}px;`)):(r.set("height",t),r.set("width",e)),r},$l=function(t,e,i,r){const n=Q_(e,i,r);J_(t,n)},ty=function(t,e,i,r){const n=e.node().getBBox(),o=n.width,s=n.height;O.info(`SVG bounds: ${o}x${s}`,n);let a=0,l=0;O.info(`Graph bounds: ${a}x${l}`,t),a=o+i*2,l=s+i*2,O.info(`Calculated bounds: ${a}x${l}`),$l(e,l,a,r);const h=`${n.x-i} ${n.y-i} ${n.width+2*i} ${n.height+2*i}`;e.attr("viewBox",h)},Ui={},ey=(t,e,i)=>{let r="";return t in Ui&&Ui[t]?r=Ui[t](i):O.warn(`No theme found for ${t}`),` & { font-family: ${i.fontFamily}; font-size: ${i.fontSize}; fill: ${i.textColor} @@ -62,7 +62,7 @@ import{_ as X}from"./app-BQ_RvZRm.js";function _h(t){for(var e=[],i=1;i{e!==void 0&&(Ui[t]=e)},ry=ey;let Vn="",Gn="",Xn="";const Kn=t=>mi(t,Pt()),ny=()=>{Vn="",Xn="",Gn=""},oy=t=>{Vn=Kn(t).replace(/^\s+/g,"")},sy=()=>Vn,ay=t=>{Xn=Kn(t).replace(/\n\s+/g,` `)},ly=()=>Xn,hy=t=>{Gn=Kn(t)},cy=()=>Gn,uy=Object.freeze(Object.defineProperty({__proto__:null,clear:ny,getAccDescription:ly,getAccTitle:sy,getDiagramTitle:cy,setAccDescription:ay,setAccTitle:oy,setDiagramTitle:hy},Symbol.toStringTag,{value:"Module"})),fy=O,dy=Wn,Zn=Pt,Nb=gl,Rb=Ne,py=t=>mi(t,Zn()),gy=ty,my=()=>uy,lr={},hr=(t,e,i)=>{var r;if(lr[t])throw new Error(`Diagram ${t} already registered.`);lr[t]=e,i&&ll(t,i),iy(t,e.styles),(r=e.injectUtils)==null||r.call(e,fy,dy,Zn,py,gy,my(),()=>{})},Jn=t=>{if(t in lr)return lr[t];throw new _y(t)};class _y extends Error{constructor(e){super(`Diagram ${e} not found.`)}}const yy=t=>{var e;const{securityLevel:i}=Zn();let r=Tt("body");if(i==="sandbox"){const s=((e=Tt(`#i${t}`).node())==null?void 0:e.contentDocument)??document;r=Tt(s.body)}return r.select(`#${t}`)},Cy=(t,e,i)=>{O.debug(`rendering svg for syntax error -`);const r=yy(e),n=r.append("g");r.attr("viewBox","0 0 2412 512"),$l(r,100,512,!0),n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${i}`)},Dl={draw:Cy},xy=Dl,by={db:{},renderer:Dl,parser:{parser:{yy:{}},parse:()=>{}}},Ty=by,Nl="flowchart-elk",vy=(t,e)=>{var i;return!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="elk")},ky=async()=>{const{diagram:t}=await X(()=>import("./flowchart-elk-definition-ae0efee6-BvF1eOFQ.js"),__vite__mapDeps([37,4,10,11,12,13,14,2]));return{id:Nl,diagram:t}},Sy={id:Nl,detector:vy,loader:ky},wy=Sy,Rl="timeline",By=t=>/^\s*timeline/.test(t),Ay=async()=>{const{diagram:t}=await X(()=>import("./timeline-definition-bf702344-CfSWb9uZ.js"),__vite__mapDeps([38,24,14,2]));return{id:Rl,diagram:t}},Ly={id:Rl,detector:By,loader:Ay},Fy=Ly,Pl="mindmap",Ey=t=>/^\s*mindmap/.test(t),Oy=async()=>{const{diagram:t}=await X(()=>import("./mindmap-definition-307c710a-3IslH3zH.js"),__vite__mapDeps([39,11,2]));return{id:Pl,diagram:t}},My={id:Pl,detector:Ey,loader:Oy},Iy=My,ql="sankey",$y=t=>/^\s*sankey-beta/.test(t),Dy=async()=>{const{diagram:t}=await X(()=>import("./sankeyDiagram-707fac0f-C8B1JfeB.js"),__vite__mapDeps([40,25,21,41,2]));return{id:ql,diagram:t}},Ny={id:ql,detector:$y,loader:Dy},Ry=Ny,zl="block",Py=t=>/^\s*block-beta/.test(t),qy=async()=>{const{diagram:t}=await X(()=>import("./blockDiagram-9f4a6865-Lac1f6ab.js"),__vite__mapDeps([42,9,5,10,11,12,13,14,25,21,15,41,2]));return{id:zl,diagram:t}},zy={id:zl,detector:Py,loader:qy},Wy=zy;let Ls=!1;const Qn=()=>{Ls||(Ls=!0,hr("error",Ty,t=>t.toLowerCase().trim()==="error"),hr("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},t=>t.toLowerCase().trimStart().startsWith("---")),al(H0,P_,$_,e_,h_,f_,g_,B_,E_,wy,Z0,V0,Iy,Fy,o_,V_,H_,Z_,C_,Ry,v_,Wy))};class Wl{constructor(e,i={}){this.text=e,this.metadata=i,this.type="graph",this.text=O0(e),this.text+=` +`);const r=yy(e),n=r.append("g");r.attr("viewBox","0 0 2412 512"),$l(r,100,512,!0),n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${i}`)},Dl={draw:Cy},xy=Dl,by={db:{},renderer:Dl,parser:{parser:{yy:{}},parse:()=>{}}},Ty=by,Nl="flowchart-elk",vy=(t,e)=>{var i;return!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&((i=e==null?void 0:e.flowchart)==null?void 0:i.defaultRenderer)==="elk")},ky=async()=>{const{diagram:t}=await X(()=>import("./flowchart-elk-definition-ae0efee6-CfLg3myy.js"),__vite__mapDeps([37,4,10,11,12,13,14,2]));return{id:Nl,diagram:t}},Sy={id:Nl,detector:vy,loader:ky},wy=Sy,Rl="timeline",By=t=>/^\s*timeline/.test(t),Ay=async()=>{const{diagram:t}=await X(()=>import("./timeline-definition-bf702344-DHauvNjP.js"),__vite__mapDeps([38,24,14,2]));return{id:Rl,diagram:t}},Ly={id:Rl,detector:By,loader:Ay},Fy=Ly,Pl="mindmap",Ey=t=>/^\s*mindmap/.test(t),Oy=async()=>{const{diagram:t}=await X(()=>import("./mindmap-definition-307c710a-Bb-El7-P.js"),__vite__mapDeps([39,11,2]));return{id:Pl,diagram:t}},My={id:Pl,detector:Ey,loader:Oy},Iy=My,ql="sankey",$y=t=>/^\s*sankey-beta/.test(t),Dy=async()=>{const{diagram:t}=await X(()=>import("./sankeyDiagram-707fac0f-ZjD0l9d1.js"),__vite__mapDeps([40,25,21,41,2]));return{id:ql,diagram:t}},Ny={id:ql,detector:$y,loader:Dy},Ry=Ny,zl="block",Py=t=>/^\s*block-beta/.test(t),qy=async()=>{const{diagram:t}=await X(()=>import("./blockDiagram-9f4a6865-Zpc-eQGX.js"),__vite__mapDeps([42,9,5,10,11,12,13,14,25,21,15,41,2]));return{id:zl,diagram:t}},zy={id:zl,detector:Py,loader:qy},Wy=zy;let Ls=!1;const Qn=()=>{Ls||(Ls=!0,hr("error",Ty,t=>t.toLowerCase().trim()==="error"),hr("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},t=>t.toLowerCase().trimStart().startsWith("---")),al(H0,P_,$_,e_,h_,f_,g_,B_,E_,wy,Z0,V0,Iy,Fy,o_,V_,H_,Z_,C_,Ry,v_,Wy))};class Wl{constructor(e,i={}){this.text=e,this.metadata=i,this.type="graph",this.text=O0(e),this.text+=` `;const r=Pt();try{this.type=Lr(e,r)}catch(o){this.type="error",this.detectError=o}const n=Jn(this.type);O.debug("Type "+this.type),this.db=n.db,this.renderer=n.renderer,this.parser=n.parser,this.parser.parser.yy=this.db,this.init=n.init,this.parse()}parse(){var e,i,r,n,o;if(this.detectError)throw this.detectError;(i=(e=this.db).clear)==null||i.call(e);const s=Pt();(r=this.init)==null||r.call(this,s),this.metadata.title&&((o=(n=this.db).setDiagramTitle)==null||o.call(n,this.metadata.title)),this.parser.parse(this.text)}async render(e,i){await this.renderer.draw(this.text,e,i,this)}getParser(){return this.parser}getType(){return this.type}}const Hy=async(t,e={})=>{const i=Lr(t,Pt());try{Jn(i)}catch{const n=s0(i);if(!n)throw new sl(`Diagram ${i} not found.`);const{id:o,diagram:s}=await n();hr(o,s)}return new Wl(t,e)};let Fs=[];const jy=()=>{Fs.forEach(t=>{t()}),Fs=[]},Uy="graphics-document document";function Yy(t,e){t.attr("role",Uy),e!==""&&t.attr("aria-roledescription",e)}function Vy(t,e,i,r){if(t.insert!==void 0){if(i){const n=`chart-desc-${r}`;t.attr("aria-describedby",n),t.insert("desc",":first-child").attr("id",n).text(i)}if(e){const n=`chart-title-${r}`;t.attr("aria-labelledby",n),t.insert("title",":first-child").attr("id",n).text(e)}}}const Gy=t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function Hl(t){return typeof t>"u"||t===null}function Xy(t){return typeof t=="object"&&t!==null}function Ky(t){return Array.isArray(t)?t:Hl(t)?[]:[t]}function Zy(t,e){var i,r,n,o;if(e)for(o=Object.keys(e),i=0,r=o.length;ia&&(o=" ... ",e=r-a+o.length),i-r>a&&(s=" ...",i=r+a-s.length),{str:o+t.slice(e,i).replace(/\t/g,"→")+s,pos:r-e+o.length}}function Jr(t,e){return ut.repeat(" ",e-t.length)+t}function sC(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var i=/\r?\n|\r|\0/g,r=[0],n=[],o,s=-1;o=i.exec(t.buffer);)n.push(o.index),r.push(o.index+o[0].length),t.position<=o.index&&s<0&&(s=r.length-2);s<0&&(s=r.length-1);var a="",l,h,u=Math.min(t.line+e.linesAfter,n.length).toString().length,f=e.maxLength-(e.indent+u+3);for(l=1;l<=e.linesBefore&&!(s-l<0);l++)h=Zr(t.buffer,r[s-l],n[s-l],t.position-(r[s]-r[s-l]),f),a=ut.repeat(" ",e.indent)+Jr((t.line-l+1).toString(),u)+" | "+h.str+` diff --git a/assets/message-format.html-D21CuXih.js b/assets/message-format.html-DtYcYMvv.js similarity index 96% rename from assets/message-format.html-D21CuXih.js rename to assets/message-format.html-DtYcYMvv.js index e62fd39..217fc20 100644 --- a/assets/message-format.html-D21CuXih.js +++ b/assets/message-format.html-DtYcYMvv.js @@ -1,4 +1,4 @@ -import{_ as c}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as p,c as u,e as o,w as a,b as s,d as e,a as m}from"./app-BQ_RvZRm.js";const d={},k=s("h1",{id:"taskiq-message-format",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#taskiq-message-format"},[s("span",null,"Taskiq message format")])],-1),g=s("p",null,"Taskiq doesn't force you to use any specific message format. We define default message format, but you can use any format you want.",-1),b=s("p",null,"The default message format is:",-1),h=s("div",{class:"language-json line-numbers-mode","data-ext":"json","data-title":"json"},[s("pre",{class:"language-json"},[s("code",null,[s("span",{class:"token punctuation"},"{"),e(` +import{_ as c}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as p,c as u,e as o,w as a,b as s,d as e,a as m}from"./app-B7rxM88G.js";const d={},k=s("h1",{id:"taskiq-message-format",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#taskiq-message-format"},[s("span",null,"Taskiq message format")])],-1),g=s("p",null,"Taskiq doesn't force you to use any specific message format. We define default message format, but you can use any format you want.",-1),b=s("p",null,"The default message format is:",-1),h=s("div",{class:"language-json line-numbers-mode","data-ext":"json","data-title":"json"},[s("pre",{class:"language-json"},[s("code",null,[s("span",{class:"token punctuation"},"{"),e(` `),s("span",{class:"token property"},'"task_name"'),s("span",{class:"token operator"},":"),e(),s("span",{class:"token string"},'"my_project.module1.task"'),s("span",{class:"token punctuation"},","),e(` `),s("span",{class:"token property"},'"args"'),s("span",{class:"token operator"},":"),e(),s("span",{class:"token punctuation"},"["),s("span",{class:"token number"},"1"),s("span",{class:"token punctuation"},","),e(),s("span",{class:"token number"},"2"),s("span",{class:"token punctuation"},","),e(),s("span",{class:"token number"},"3"),s("span",{class:"token punctuation"},"]"),s("span",{class:"token punctuation"},","),e(` `),s("span",{class:"token property"},'"kwargs"'),s("span",{class:"token operator"},":"),e(),s("span",{class:"token punctuation"},"{"),s("span",{class:"token property"},'"a"'),s("span",{class:"token operator"},":"),e(),s("span",{class:"token number"},"1"),s("span",{class:"token punctuation"},","),e(),s("span",{class:"token property"},'"b"'),s("span",{class:"token operator"},":"),e(),s("span",{class:"token number"},"2"),s("span",{class:"token punctuation"},","),e(),s("span",{class:"token property"},'"c"'),s("span",{class:"token operator"},":"),e(),s("span",{class:"token number"},"3"),s("span",{class:"token punctuation"},"}"),s("span",{class:"token punctuation"},","),e(` @@ -43,4 +43,4 @@ import{_ as c}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as p, `)])]),s("div",{class:"line-numbers","aria-hidden":"true"},[s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"})])],-1),y=s("p",null,"But this can be easily changed by creating your own implementation of the TaskiqFormatter class or TaskiqSerializer class.",-1),v=s("h3",{id:"serializers",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#serializers"},[s("span",null,"Serializers")])],-1),_=s("p",null,"Serializers define the format of the message but not the structure. For example, if you want to use msgpack or ORJson to serialize your message, you should update the serializer of your broker.",-1),T=s("p",null,"Be default, Taskiq uses JSON serializer. But we also have some implementations of other serializers:",-1),q={href:"https://pypi.org/project/orjson/",target:"_blank",rel:"noopener noreferrer"},z={href:"https://pypi.org/project/msgpack/",target:"_blank",rel:"noopener noreferrer"},w={href:"https://pypi.org/project/cbor2/",target:"_blank",rel:"noopener noreferrer"},j=s("p",null,[e("To define your own serializer, you have to subclass the TaskiqSerializer class and implement "),s("code",null,"dumpb"),e(" and "),s("code",null,"loadb"),e(" methods. You can take a look at the existing implementations from the "),s("code",null,"taskiq.serializers"),e(" module.")],-1),x=s("p",null,"To install taskiq with libraries for non-JSON serializers, you should install taskiq with extras.",-1),S=s("div",{class:"language-bash line-numbers-mode","data-ext":"sh","data-title":"sh"},[s("pre",{class:"language-bash"},[s("code",null,[e("pip "),s("span",{class:"token function"},"install"),e(),s("span",{class:"token string"},'"taskiq[orjson]"'),e(` `)])]),s("div",{class:"line-numbers","aria-hidden":"true"},[s("div",{class:"line-number"})])],-1),A=s("div",{class:"language-bash line-numbers-mode","data-ext":"sh","data-title":"sh"},[s("pre",{class:"language-bash"},[s("code",null,[e("pip "),s("span",{class:"token function"},"install"),e(),s("span",{class:"token string"},'"taskiq[msgpack]"'),e(` `)])]),s("div",{class:"line-numbers","aria-hidden":"true"},[s("div",{class:"line-number"})])],-1),N=s("div",{class:"language-bash line-numbers-mode","data-ext":"sh","data-title":"sh"},[s("pre",{class:"language-bash"},[s("code",null,[e("pip "),s("span",{class:"token function"},"install"),e(),s("span",{class:"token string"},'"taskiq[cbor]"'),e(` -`)])]),s("div",{class:"line-numbers","aria-hidden":"true"},[s("div",{class:"line-number"})])],-1),B=m('

Formatters

Formatters define the format of the message. It might be useful if you'd like to send a task to a celery worker for a different project. You can do it in seriazier as well, but formatters give you correct type hints.

By default we use a formatter that dumps the message to dict and serializes it using serializer. But you can define your own formatter to send a message in any format you want. To define a new formatter, you have to subclass the TaskiqFormatter class and implement dumps and loads methods. As an example, you can take a look at the JSONFormatter from taskiq.formatters implementation.

',3);function O(F,J){const l=i("Tabs"),r=i("ExternalLinkIcon");return p(),u("div",null,[k,g,b,o(l,{id:"9",data:[{id:"example"},{id:"json schema"}]},{title0:a(({value:n,isActive:t})=>[e("example")]),title1:a(({value:n,isActive:t})=>[e("json schema")]),tab0:a(({value:n,isActive:t})=>[h]),tab1:a(({value:n,isActive:t})=>[f]),_:1}),y,v,_,T,s("ul",null,[s("li",null,[e("ORJSONSerializer - faster "),s("a",q,[e("JSON implementation"),o(r)]),e(". Also, it supports datetime and UUID serialization.")]),s("li",null,[e("MSGPackSerializer - "),s("a",z,[e("MsgPack"),o(r)]),e(" format serializer. It might be useful to send less data over the network.")]),s("li",null,[e("CBORSerializer - "),s("a",w,[e("CBOR"),o(r)]),e(" format serializer. It is also has a smaller size than JSON.")])]),j,x,o(l,{id:"52",data:[{id:"orjson"},{id:"msgpack"},{id:"cbor"}]},{title0:a(({value:n,isActive:t})=>[e("orjson")]),title1:a(({value:n,isActive:t})=>[e("msgpack")]),title2:a(({value:n,isActive:t})=>[e("cbor")]),tab0:a(({value:n,isActive:t})=>[S]),tab1:a(({value:n,isActive:t})=>[A]),tab2:a(({value:n,isActive:t})=>[N]),_:1}),B])}const C=c(d,[["render",O],["__file","message-format.html.vue"]]),P=JSON.parse(`{"path":"/guide/message-format.html","title":"Taskiq message format","lang":"en-US","frontmatter":{"order":11,"description":"Taskiq message format Taskiq doesn't force you to use any specific message format. We define default message format, but you can use any format you want. The default message for...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/message-format.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Taskiq message format"}],["meta",{"property":"og:description","content":"Taskiq message format Taskiq doesn't force you to use any specific message format. We define default message format, but you can use any format you want. The default message for..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Taskiq message format\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":3,"title":"Serializers","slug":"serializers","link":"#serializers","children":[]},{"level":3,"title":"Formatters","slug":"formatters","link":"#formatters","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/message-format.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Taskiq doesn't force you to use any specific message format. We define default message format,\\nbut you can use any format you want.

\\n

The default message format is:

\\n\\n

But this can be easily changed by creating your own implementation of the TaskiqFormatter class or TaskiqSerializer class.

"}`);export{C as comp,P as data}; +`)])]),s("div",{class:"line-numbers","aria-hidden":"true"},[s("div",{class:"line-number"})])],-1),B=m('

Formatters

Formatters define the format of the message. It might be useful if you'd like to send a task to a celery worker for a different project. You can do it in seriazier as well, but formatters give you correct type hints.

By default we use a formatter that dumps the message to dict and serializes it using serializer. But you can define your own formatter to send a message in any format you want. To define a new formatter, you have to subclass the TaskiqFormatter class and implement dumps and loads methods. As an example, you can take a look at the JSONFormatter from taskiq.formatters implementation.

',3);function O(F,J){const l=i("Tabs"),r=i("ExternalLinkIcon");return p(),u("div",null,[k,g,b,o(l,{id:"9",data:[{id:"example"},{id:"json schema"}]},{title0:a(({value:n,isActive:t})=>[e("example")]),title1:a(({value:n,isActive:t})=>[e("json schema")]),tab0:a(({value:n,isActive:t})=>[h]),tab1:a(({value:n,isActive:t})=>[f]),_:1}),y,v,_,T,s("ul",null,[s("li",null,[e("ORJSONSerializer - faster "),s("a",q,[e("JSON implementation"),o(r)]),e(". Also, it supports datetime and UUID serialization.")]),s("li",null,[e("MSGPackSerializer - "),s("a",z,[e("MsgPack"),o(r)]),e(" format serializer. It might be useful to send less data over the network.")]),s("li",null,[e("CBORSerializer - "),s("a",w,[e("CBOR"),o(r)]),e(" format serializer. It is also has a smaller size than JSON.")])]),j,x,o(l,{id:"52",data:[{id:"orjson"},{id:"msgpack"},{id:"cbor"}]},{title0:a(({value:n,isActive:t})=>[e("orjson")]),title1:a(({value:n,isActive:t})=>[e("msgpack")]),title2:a(({value:n,isActive:t})=>[e("cbor")]),tab0:a(({value:n,isActive:t})=>[S]),tab1:a(({value:n,isActive:t})=>[A]),tab2:a(({value:n,isActive:t})=>[N]),_:1}),B])}const C=c(d,[["render",O],["__file","message-format.html.vue"]]),P=JSON.parse(`{"path":"/guide/message-format.html","title":"Taskiq message format","lang":"en-US","frontmatter":{"order":11,"description":"Taskiq message format Taskiq doesn't force you to use any specific message format. We define default message format, but you can use any format you want. The default message for...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/message-format.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Taskiq message format"}],["meta",{"property":"og:description","content":"Taskiq message format Taskiq doesn't force you to use any specific message format. We define default message format, but you can use any format you want. The default message for..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Taskiq message format\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":3,"title":"Serializers","slug":"serializers","link":"#serializers","children":[]},{"level":3,"title":"Formatters","slug":"formatters","link":"#formatters","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/message-format.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Taskiq doesn't force you to use any specific message format. We define default message format,\\nbut you can use any format you want.

\\n

The default message format is:

\\n\\n

But this can be easily changed by creating your own implementation of the TaskiqFormatter class or TaskiqSerializer class.

"}`);export{C as comp,P as data}; diff --git a/assets/middleware.html-C4f4VUnw.js b/assets/middleware.html-C0_oXorf.js similarity index 96% rename from assets/middleware.html-C4f4VUnw.js rename to assets/middleware.html-C0_oXorf.js index fe10a36..bcc0f30 100644 --- a/assets/middleware.html-C4f4VUnw.js +++ b/assets/middleware.html-C0_oXorf.js @@ -1,4 +1,4 @@ -import{_ as p}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as c,o as r,c as u,b as s,d as n,e as o,w as e}from"./app-BQ_RvZRm.js";const k={},d=s("h1",{id:"middlewares",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#middlewares"},[s("span",null,"Middlewares")])],-1),m=s("p",null,"Middlewares are super helpful. You can inject some code before or after task's execution.",-1),b={href:"https://github.com/taskiq-python/taskiq/blob/master/taskiq/abc/middleware.py",target:"_blank",rel:"noopener noreferrer"},w=s("code",null,"taskiq.abc.middleware.TaskiqMiddleware",-1),y=s("p",null,"For example:",-1),v=s("div",{class:"language-python line-numbers-mode","data-ext":"py","data-title":"py"},[s("pre",{class:"language-python"},[s("code",null,[s("span",{class:"token keyword"},"from"),n(" time "),s("span",{class:"token keyword"},"import"),n(` sleep +import{_ as p}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as c,o as r,c as u,b as s,d as n,e as o,w as e}from"./app-B7rxM88G.js";const k={},d=s("h1",{id:"middlewares",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#middlewares"},[s("span",null,"Middlewares")])],-1),m=s("p",null,"Middlewares are super helpful. You can inject some code before or after task's execution.",-1),b={href:"https://github.com/taskiq-python/taskiq/blob/master/taskiq/abc/middleware.py",target:"_blank",rel:"noopener noreferrer"},w=s("code",null,"taskiq.abc.middleware.TaskiqMiddleware",-1),y=s("p",null,"For example:",-1),v=s("div",{class:"language-python line-numbers-mode","data-ext":"py","data-title":"py"},[s("pre",{class:"language-python"},[s("code",null,[s("span",{class:"token keyword"},"from"),n(" time "),s("span",{class:"token keyword"},"import"),n(` sleep `),s("span",{class:"token keyword"},"from"),n(" typing "),s("span",{class:"token keyword"},"import"),n(` Any `),s("span",{class:"token keyword"},"from"),n(" taskiq "),s("span",{class:"token keyword"},"import"),n(" TaskiqMessage"),s("span",{class:"token punctuation"},","),n(" TaskiqMiddleware"),s("span",{class:"token punctuation"},","),n(` TaskiqResult @@ -46,4 +46,4 @@ import{_ as p}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as c,o as r, `),s("span",{class:"token punctuation"},")"),n(),s("span",{class:"token operator"},"-"),s("span",{class:"token operator"},">"),n(),s("span",{class:"token boolean"},"None"),s("span",{class:"token punctuation"},":"),n(` `),s("span",{class:"token keyword"},"await"),n(" sleep"),s("span",{class:"token punctuation"},"("),s("span",{class:"token number"},"1"),s("span",{class:"token punctuation"},")"),n(` `),s("span",{class:"token keyword"},"print"),s("span",{class:"token punctuation"},"("),s("span",{class:"token string"},'"Post save"'),s("span",{class:"token punctuation"},")"),n(` -`)])]),s("div",{class:"line-numbers","aria-hidden":"true"},[s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"})])],-1),h=s("p",null,[n("Also, middlewares always have reference to the current broker in "),s("code",null,"self.broker"),n(" field. If you want to kick a message during the execution of some middleware hooks, you may use "),s("code",null,"self.broker"),n(" to do so.")],-1),g={href:"https://github.com/taskiq-python/taskiq-pipelines",target:"_blank",rel:"noopener noreferrer"};function _(q,T){const l=c("ExternalLinkIcon"),i=c("Tabs");return r(),u("div",null,[d,m,s("p",null,[n("Middlewares must implement "),s("a",b,[w,o(l)]),n(" abstract class. Every method of a middleware can be either sync or async. Taskiq will execute it as you expect.")]),y,o(i,{id:"12",data:[{id:"sync"},{id:"async"}]},{title0:e(({value:a,isActive:t})=>[n("sync")]),title1:e(({value:a,isActive:t})=>[n("async")]),tab0:e(({value:a,isActive:t})=>[v]),tab1:e(({value:a,isActive:t})=>[f]),_:1}),h,s("p",null,[s("a",g,[n("Taskiq-pipelines"),o(l)]),n(" uses middlewares to call next tasks.")])])}const N=p(k,[["render",_],["__file","middleware.html.vue"]]),A=JSON.parse(`{"path":"/extending-taskiq/middleware.html","title":"Middlewares","lang":"en-US","frontmatter":{"order":2,"description":"Middlewares Middlewares are super helpful. You can inject some code before or after task's execution. Middlewares must implement taskiq.abc.middleware.TaskiqMiddleware abstract ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/middleware.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Middlewares"}],["meta",{"property":"og:description","content":"Middlewares Middlewares are super helpful. You can inject some code before or after task's execution. Middlewares must implement taskiq.abc.middleware.TaskiqMiddleware abstract ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Middlewares\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/middleware.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Middlewares are super helpful. You can inject some code before or after task's execution.

\\n

Middlewares must implement taskiq.abc.middleware.TaskiqMiddleware abstract class.\\nEvery method of a middleware can be either sync or async. Taskiq will execute it\\nas you expect.

"}`);export{N as comp,A as data}; +`)])]),s("div",{class:"line-numbers","aria-hidden":"true"},[s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"}),s("div",{class:"line-number"})])],-1),h=s("p",null,[n("Also, middlewares always have reference to the current broker in "),s("code",null,"self.broker"),n(" field. If you want to kick a message during the execution of some middleware hooks, you may use "),s("code",null,"self.broker"),n(" to do so.")],-1),g={href:"https://github.com/taskiq-python/taskiq-pipelines",target:"_blank",rel:"noopener noreferrer"};function _(q,T){const l=c("ExternalLinkIcon"),i=c("Tabs");return r(),u("div",null,[d,m,s("p",null,[n("Middlewares must implement "),s("a",b,[w,o(l)]),n(" abstract class. Every method of a middleware can be either sync or async. Taskiq will execute it as you expect.")]),y,o(i,{id:"12",data:[{id:"sync"},{id:"async"}]},{title0:e(({value:a,isActive:t})=>[n("sync")]),title1:e(({value:a,isActive:t})=>[n("async")]),tab0:e(({value:a,isActive:t})=>[v]),tab1:e(({value:a,isActive:t})=>[f]),_:1}),h,s("p",null,[s("a",g,[n("Taskiq-pipelines"),o(l)]),n(" uses middlewares to call next tasks.")])])}const N=p(k,[["render",_],["__file","middleware.html.vue"]]),A=JSON.parse(`{"path":"/extending-taskiq/middleware.html","title":"Middlewares","lang":"en-US","frontmatter":{"order":2,"description":"Middlewares Middlewares are super helpful. You can inject some code before or after task's execution. Middlewares must implement taskiq.abc.middleware.TaskiqMiddleware abstract ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/middleware.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Middlewares"}],["meta",{"property":"og:description","content":"Middlewares Middlewares are super helpful. You can inject some code before or after task's execution. Middlewares must implement taskiq.abc.middleware.TaskiqMiddleware abstract ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Middlewares\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/middleware.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Middlewares are super helpful. You can inject some code before or after task's execution.

\\n

Middlewares must implement taskiq.abc.middleware.TaskiqMiddleware abstract class.\\nEvery method of a middleware can be either sync or async. Taskiq will execute it\\nas you expect.

"}`);export{N as comp,A as data}; diff --git a/assets/middlewares.html-CxZ7sgW4.js b/assets/middlewares.html-CqXjJAKK.js similarity index 95% rename from assets/middlewares.html-CxZ7sgW4.js rename to assets/middlewares.html-CqXjJAKK.js index 421485e..f445124 100644 --- a/assets/middlewares.html-CxZ7sgW4.js +++ b/assets/middlewares.html-CqXjJAKK.js @@ -1,4 +1,4 @@ -import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as d,c as p,e as c,w as s,a as i,d as a,b as e}from"./app-BQ_RvZRm.js";const u={},m=i(`

Available middlewares

Middlewares allow you to execute code when specific event occurs. Taskiq has several default middlewares.

Simple retry middleware

This middleware allows you to restart functions on errors. If exception was raised during task execution, the task would be resent with same parameters.

To enable this middleware, add it to the list of middlewares for a broker.

from taskiq import ZeroMQBroker, SimpleRetryMiddleware
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as d,c as p,e as c,w as s,a as i,d as a,b as e}from"./app-B7rxM88G.js";const u={},m=i(`

Available middlewares

Middlewares allow you to execute code when specific event occurs. Taskiq has several default middlewares.

Simple retry middleware

This middleware allows you to restart functions on errors. If exception was raised during task execution, the task would be resent with same parameters.

To enable this middleware, add it to the list of middlewares for a broker.

from taskiq import ZeroMQBroker, SimpleRetryMiddleware
 
 broker = ZeroMQBroker().with_middlewares(
     SimpleRetryMiddleware(default_retry_count=3),
@@ -15,4 +15,4 @@ broker = ZeroMQBroker= ZeroMQBroker().with_middlewares(
     PrometheusMiddleware(server_addr="0.0.0.0", server_port=9000),
 )
-

After that, metrics will be available at port 9000. Of course, this parameter can be configured. If you have other metrics, they'll be shown as well.

`,2);function w(b,y){const o=l("Tabs");return d(),p("div",null,[m,c(o,{id:"29",data:[{id:"only prometheus"},{id:"taskiq with extras"}]},{title0:s(({value:n,isActive:t})=>[a("only prometheus")]),title1:s(({value:n,isActive:t})=>[a("taskiq with extras")]),tab0:s(({value:n,isActive:t})=>[h]),tab1:s(({value:n,isActive:t})=>[k]),_:1}),v])}const _=r(u,[["render",w],["__file","middlewares.html.vue"]]),x=JSON.parse('{"path":"/available-components/middlewares.html","title":"Available middlewares","lang":"en-US","frontmatter":{"order":5,"description":"Available middlewares Middlewares allow you to execute code when specific event occurs. Taskiq has several default middlewares. Simple retry middleware This middleware allows yo...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/available-components/middlewares.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Available middlewares"}],["meta",{"property":"og:description","content":"Available middlewares Middlewares allow you to execute code when specific event occurs. Taskiq has several default middlewares. Simple retry middleware This middleware allows yo..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Available middlewares\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":3,"title":"Simple retry middleware","slug":"simple-retry-middleware","link":"#simple-retry-middleware","children":[]},{"level":3,"title":"Prometheus middleware","slug":"prometheus-middleware","link":"#prometheus-middleware","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"available-components/middlewares.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Middlewares allow you to execute code when specific event occurs.\\nTaskiq has several default middlewares.

\\n

Simple retry middleware

\\n

This middleware allows you to restart functions on errors. If exception was raised during task execution,\\nthe task would be resent with same parameters.

"}');export{_ as comp,x as data}; +

After that, metrics will be available at port 9000. Of course, this parameter can be configured. If you have other metrics, they'll be shown as well.

`,2);function w(b,y){const o=l("Tabs");return d(),p("div",null,[m,c(o,{id:"29",data:[{id:"only prometheus"},{id:"taskiq with extras"}]},{title0:s(({value:n,isActive:t})=>[a("only prometheus")]),title1:s(({value:n,isActive:t})=>[a("taskiq with extras")]),tab0:s(({value:n,isActive:t})=>[h]),tab1:s(({value:n,isActive:t})=>[k]),_:1}),v])}const _=r(u,[["render",w],["__file","middlewares.html.vue"]]),x=JSON.parse('{"path":"/available-components/middlewares.html","title":"Available middlewares","lang":"en-US","frontmatter":{"order":5,"description":"Available middlewares Middlewares allow you to execute code when specific event occurs. Taskiq has several default middlewares. Simple retry middleware This middleware allows yo...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/available-components/middlewares.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Available middlewares"}],["meta",{"property":"og:description","content":"Available middlewares Middlewares allow you to execute code when specific event occurs. Taskiq has several default middlewares. Simple retry middleware This middleware allows yo..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Available middlewares\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":3,"title":"Simple retry middleware","slug":"simple-retry-middleware","link":"#simple-retry-middleware","children":[]},{"level":3,"title":"Prometheus middleware","slug":"prometheus-middleware","link":"#prometheus-middleware","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"available-components/middlewares.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Middlewares allow you to execute code when specific event occurs.\\nTaskiq has several default middlewares.

\\n

Simple retry middleware

\\n

This middleware allows you to restart functions on errors. If exception was raised during task execution,\\nthe task would be resent with same parameters.

"}');export{_ as comp,x as data}; diff --git a/assets/mindmap-definition-307c710a-3IslH3zH.js b/assets/mindmap-definition-307c710a-Bb-El7-P.js similarity index 99% rename from assets/mindmap-definition-307c710a-3IslH3zH.js rename to assets/mindmap-definition-307c710a-Bb-El7-P.js index 5057460..943d8fe 100644 --- a/assets/mindmap-definition-307c710a-3IslH3zH.js +++ b/assets/mindmap-definition-307c710a-Bb-El7-P.js @@ -1,4 +1,4 @@ -import{aB as hi,aC as tl,l as Er,c as ci,aJ as rl,u as al,aL as ja,d as en,h as nl,b5 as il,b6 as sl,b7 as ol,aN as ul}from"./mermaid.core-Cio1iadR.js";import{c as ll}from"./createText-ca0c5216-BYApgeQh.js";import"./app-BQ_RvZRm.js";function Xe(t){"@babel/helpers - typeof";return Xe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Xe(t)}function vi(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function fl(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,a=new Array(e);rt.length)&&(e=t.length);for(var r=0,a=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(u){throw u},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,o;return{s:function(){r=r.call(t)},n:function(){var u=r.next();return i=u.done,u},e:function(u){s=!0,o=u},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw o}}}}var Ye=typeof window>"u"?null:window,Yi=Ye?Ye.navigator:null;Ye&&Ye.document;var gl=Xe(""),io=Xe({}),pl=Xe(function(){}),yl=typeof HTMLElement>"u"?"undefined":Xe(HTMLElement),xa=function(e){return e&&e.instanceString&&Ge(e.instanceString)?e.instanceString():null},ve=function(e){return e!=null&&Xe(e)==gl},Ge=function(e){return e!=null&&Xe(e)===pl},Re=function(e){return!pt(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},Ce=function(e){return e!=null&&Xe(e)===io&&!Re(e)&&e.constructor===Object},ml=function(e){return e!=null&&Xe(e)===io},ne=function(e){return e!=null&&Xe(e)===Xe(1)&&!isNaN(e)},bl=function(e){return ne(e)&&Math.floor(e)===e},tn=function(e){if(yl!=="undefined")return e!=null&&e instanceof HTMLElement},pt=function(e){return Ta(e)||so(e)},Ta=function(e){return xa(e)==="collection"&&e._private.single},so=function(e){return xa(e)==="collection"&&!e._private.single},gi=function(e){return xa(e)==="core"},oo=function(e){return xa(e)==="stylesheet"},El=function(e){return xa(e)==="event"},jt=function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},wl=function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},xl=function(e){return Ce(e)&&ne(e.x1)&&ne(e.x2)&&ne(e.y1)&&ne(e.y2)},Tl=function(e){return ml(e)&&Ge(e.then)},Cl=function(){return Yi&&Yi.userAgent.match(/msie|trident|edge/i)},ha=function(e,r){r||(r=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var i=[],s=0;sr?1:0},Il=function(e,r){return-1*lo(e,r)},be=Object.assign!=null?Object.assign.bind(Object):function(t){for(var e=arguments,r=1;r1&&(g-=1),g<1/6?v+(p-v)*6*g:g<1/2?p:g<2/3?v+(p-v)*(2/3-g)*6:v}var h=new RegExp("^"+Ll+"$").exec(e);if(h){if(a=parseInt(h[1]),a<0?a=(360- -1*a%360)%360:a>360&&(a=a%360),a/=360,n=parseFloat(h[2]),n<0||n>100||(n=n/100,i=parseFloat(h[3]),i<0||i>100)||(i=i/100,s=h[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(n===0)o=u=l=Math.round(i*255);else{var d=i<.5?i*(1+n):i+n-i*n,c=2*i-d;o=Math.round(255*f(c,d,a+1/3)),u=Math.round(255*f(c,d,a)),l=Math.round(255*f(c,d,a-1/3))}r=[o,u,l,s]}return r},kl=function(e){var r,a=new RegExp("^"+Dl+"$").exec(e);if(a){r=[];for(var n=[],i=1;i<=3;i++){var s=a[i];if(s[s.length-1]==="%"&&(n[i]=!0),s=parseFloat(s),n[i]&&(s=s/100*255),s<0||s>255)return;r.push(Math.floor(s))}var o=n[1]||n[2]||n[3],u=n[1]&&n[2]&&n[3];if(o&&!u)return;var l=a[4];if(l!==void 0){if(l=parseFloat(l),l<0||l>1)return;r.push(l)}}return r},Pl=function(e){return Fl[e.toLowerCase()]},Bl=function(e){return(Re(e)?e:null)||Pl(e)||Ml(e)||kl(e)||Rl(e)},Fl={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},fo=function(e){for(var r=e.map,a=e.keys,n=a.length,i=0;i=e||E<0||h&&x>=i}function y(){var S=Rn();if(g(S))return b(S);o=setTimeout(y,p(S))}function b(S){return o=void 0,d&&a?c(S):(a=n=void 0,s)}function m(){o!==void 0&&clearTimeout(o),l=0,a=u=n=o=void 0}function T(){return o===void 0?s:b(Rn())}function C(){var S=Rn(),E=g(S);if(a=arguments,n=this,u=S,E){if(o===void 0)return v(u);if(h)return clearTimeout(o),o=setTimeout(y,e),c(u)}return o===void 0&&(o=setTimeout(y,e)),s}return C.cancel=m,C.flush=T,C}var gn=xf,kn=Ye?Ye.performance:null,go=kn&&kn.now?function(){return kn.now()}:function(){return Date.now()},Tf=function(){if(Ye){if(Ye.requestAnimationFrame)return function(t){Ye.requestAnimationFrame(t)};if(Ye.mozRequestAnimationFrame)return function(t){Ye.mozRequestAnimationFrame(t)};if(Ye.webkitRequestAnimationFrame)return function(t){Ye.webkitRequestAnimationFrame(t)};if(Ye.msRequestAnimationFrame)return function(t){Ye.msRequestAnimationFrame(t)}}return function(t){t&&setTimeout(function(){t(go())},1e3/60)}}(),rn=function(e){return Tf(e)},$t=go,Nr=9261,po=65599,ia=5381,yo=function(e){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Nr,a=r,n;n=e.next(),!n.done;)a=a*po+n.value|0;return a},ca=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Nr;return r*po+e|0},va=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ia;return(r<<5)+r+e|0},Cf=function(e,r){return e*2097152+r},qt=function(e){return e[0]*2097152+e[1]},Ma=function(e,r){return[ca(e[0],r[0]),va(e[1],r[1])]},Df=function(e,r){var a={value:0,done:!1},n=0,i=e.length,s={next:function(){return n=0;n--)e[n]===r&&e.splice(n,1)},bi=function(e){e.splice(0,e.length)},Mf=function(e,r){for(var a=0;a"u"?"undefined":Xe(Set))!==kf?Set:Pf,pn=function(e,r){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||r===void 0||!gi(e)){ze("An element must have a core reference and parameters set");return}var n=r.group;if(n==null&&(r.data&&r.data.source!=null&&r.data.target!=null?n="edges":n="nodes"),n!=="nodes"&&n!=="edges"){ze("An element must be of type `nodes` or `edges`; you specified `"+n+"`");return}this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:n,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!r.selected,selectable:r.selectable===void 0?!0:!!r.selectable,locked:!!r.locked,grabbed:!1,grabbable:r.grabbable===void 0?!0:!!r.grabbable,pannable:r.pannable===void 0?n==="edges":!!r.pannable,active:!1,classes:new Ur,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(i.position.x==null&&(i.position.x=0),i.position.y==null&&(i.position.y=0),r.renderedPosition){var s=r.renderedPosition,o=e.pan(),u=e.zoom();i.position={x:(s.x-o.x)/u,y:(s.y-o.y)/u}}var l=[];Re(r.classes)?l=r.classes:ve(r.classes)&&(l=r.classes.split(/\s+/));for(var f=0,h=l.length;fb?1:0},f=function(y,b,m,T,C){var S;if(m==null&&(m=0),C==null&&(C=a),m<0)throw new Error("lo must be non-negative");for(T==null&&(T=y.length);mD;0<=D?w++:w--)x.push(w);return x}).apply(this).reverse(),E=[],T=0,C=S.length;TL;0<=L?++x:--x)A.push(s(y,m));return A},p=function(y,b,m,T){var C,S,E;for(T==null&&(T=a),C=y[m];m>b;){if(E=m-1>>1,S=y[E],T(C,S)<0){y[m]=S,m=E;continue}break}return y[m]=C},g=function(y,b,m){var T,C,S,E,x;for(m==null&&(m=a),C=y.length,x=b,S=y[b],T=2*b+1;T0;){var S=b.pop(),E=g(S),x=S.id();if(d[x]=E,E!==1/0)for(var w=S.neighborhood().intersect(v),D=0;D0)for(P.unshift(k);h[V];){var F=h[V];P.unshift(F.edge),P.unshift(F.node),B=F.node,V=B.id()}return o.spawn(P)}}}},zf={kruskal:function(e){e=e||function(m){return 1};for(var r=this.byGroup(),a=r.nodes,n=r.edges,i=a.length,s=new Array(i),o=a,u=function(T){for(var C=0;C0;){if(C(),E++,T===f){for(var x=[],w=i,D=f,L=y[D];x.unshift(w),L!=null&&x.unshift(L),w=g[D],w!=null;)D=w.id(),L=y[D];return{found:!0,distance:h[T],path:this.spawn(x),steps:E}}c[T]=!0;for(var A=m._private.edges,I=0;IL&&(v[D]=L,b[D]=w,m[D]=C),!i){var A=w*f+x;!i&&v[A]>L&&(v[A]=L,b[A]=x,m[A]=C)}}}for(var I=0;I1&&arguments[1]!==void 0?arguments[1]:s,Ae=m(fe),xe=[],we=Ae;;){if(we==null)return r.spawn();var De=b(we),j=De.edge,N=De.pred;if(xe.unshift(we[0]),we.same(ge)&&xe.length>0)break;j!=null&&xe.unshift(j),we=N}return u.spawn(xe)},S=0;S=0;f--){var h=l[f],d=h[1],c=h[2];(r[d]===o&&r[c]===u||r[d]===u&&r[c]===o)&&l.splice(f,1)}for(var v=0;vn;){var i=Math.floor(Math.random()*r.length);r=qf(i,e,r),a--}return r},Wf={kargerStein:function(){var e=this,r=this.byGroup(),a=r.nodes,n=r.edges;n.unmergeBy(function(P){return P.isLoop()});var i=a.length,s=n.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),u=Math.floor(i/Xf);if(i<2){ze("At least 2 nodes are required for Karger-Stein algorithm");return}for(var l=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=1/0,i=r;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=-1/0,i=r;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=0,i=0,s=r;s1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;n?e=e.slice(r,a):(a0&&e.splice(0,r));for(var o=0,u=e.length-1;u>=0;u--){var l=e[u];s?isFinite(l)||(e[u]=-1/0,o++):e.splice(u,1)}i&&e.sort(function(d,c){return d-c});var f=e.length,h=Math.floor(f/2);return f%2!==0?e[h+1+o]:(e[h-1+o]+e[h+o])/2},eh=function(e){return Math.PI*e/180},Ra=function(e,r){return Math.atan2(r,e)-Math.PI/2},Ei=Math.log2||function(t){return Math.log(t)/Math.log(2)},Co=function(e){return e>0?1:e<0?-1:0},gr=function(e,r){return Math.sqrt(ur(e,r))},ur=function(e,r){var a=r.x-e.x,n=r.y-e.y;return a*a+n*n},th=function(e){for(var r=e.length,a=0,n=0;n=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},ah=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},nh=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},ih=function(e,r,a){return{x1:e.x1+r,x2:e.x2+r,y1:e.y1+a,y2:e.y2+a,w:e.w,h:e.h}},Do=function(e,r){e.x1=Math.min(e.x1,r.x1),e.x2=Math.max(e.x2,r.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,r.y1),e.y2=Math.max(e.y2,r.y2),e.h=e.y2-e.y1},sh=function(e,r,a){e.x1=Math.min(e.x1,r),e.x2=Math.max(e.x2,r),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,a),e.y2=Math.max(e.y2,a),e.h=e.y2-e.y1},_a=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=r,e.x2+=r,e.y1-=r,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Ha=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],a,n,i,s;if(r.length===1)a=n=i=s=r[0];else if(r.length===2)a=i=r[0],s=n=r[1];else if(r.length===4){var o=St(r,4);a=o[0],n=o[1],i=o[2],s=o[3]}return e.x1-=s,e.x2+=n,e.y1-=a,e.y2+=i,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Qi=function(e,r){e.x1=r.x1,e.y1=r.y1,e.x2=r.x2,e.y2=r.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},wi=function(e,r){return!(e.x1>r.x2||r.x1>e.x2||e.x2r.y2||r.y1>e.y2)},Gr=function(e,r,a){return e.x1<=r&&r<=e.x2&&e.y1<=a&&a<=e.y2},oh=function(e,r){return Gr(e,r.x,r.y)},So=function(e,r){return Gr(e,r.x1,r.y1)&&Gr(e,r.x2,r.y2)},Lo=function(e,r,a,n,i,s,o){var u=arguments.length>7&&arguments[7]!==void 0?arguments[7]:"auto",l=u==="auto"?pr(i,s):u,f=i/2,h=s/2;l=Math.min(l,f,h);var d=l!==f,c=l!==h,v;if(d){var p=a-f+l-o,g=n-h-o,y=a+f-l+o,b=g;if(v=Zt(e,r,a,n,p,g,y,b,!1),v.length>0)return v}if(c){var m=a+f+o,T=n-h+l-o,C=m,S=n+h-l+o;if(v=Zt(e,r,a,n,m,T,C,S,!1),v.length>0)return v}if(d){var E=a-f+l-o,x=n+h+o,w=a+f-l+o,D=x;if(v=Zt(e,r,a,n,E,x,w,D,!1),v.length>0)return v}if(c){var L=a-f-o,A=n-h+l-o,I=L,O=n+h-l+o;if(v=Zt(e,r,a,n,L,A,I,O,!1),v.length>0)return v}var M;{var R=a-f+l,k=n-h+l;if(M=sa(e,r,a,n,R,k,l+o),M.length>0&&M[0]<=R&&M[1]<=k)return[M[0],M[1]]}{var P=a+f-l,B=n-h+l;if(M=sa(e,r,a,n,P,B,l+o),M.length>0&&M[0]>=P&&M[1]<=B)return[M[0],M[1]]}{var V=a+f-l,F=n+h-l;if(M=sa(e,r,a,n,V,F,l+o),M.length>0&&M[0]>=V&&M[1]>=F)return[M[0],M[1]]}{var G=a-f+l,Y=n+h-l;if(M=sa(e,r,a,n,G,Y,l+o),M.length>0&&M[0]<=G&&M[1]>=Y)return[M[0],M[1]]}return[]},uh=function(e,r,a,n,i,s,o){var u=o,l=Math.min(a,i),f=Math.max(a,i),h=Math.min(n,s),d=Math.max(n,s);return l-u<=e&&e<=f+u&&h-u<=r&&r<=d+u},lh=function(e,r,a,n,i,s,o,u,l){var f={x1:Math.min(a,o,i)-l,x2:Math.max(a,o,i)+l,y1:Math.min(n,u,s)-l,y2:Math.max(n,u,s)+l};return!(ef.x2||rf.y2)},fh=function(e,r,a,n){a-=n;var i=r*r-4*e*a;if(i<0)return[];var s=Math.sqrt(i),o=2*e,u=(-r+s)/o,l=(-r-s)/o;return[u,l]},hh=function(e,r,a,n,i){var s=1e-5;e===0&&(e=s),r/=e,a/=e,n/=e;var o,u,l,f,h,d,c,v;if(u=(3*a-r*r)/9,l=-(27*n)+r*(9*a-2*(r*r)),l/=54,o=u*u*u+l*l,i[1]=0,c=r/3,o>0){h=l+Math.sqrt(o),h=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),d=l-Math.sqrt(o),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),i[0]=-c+h+d,c+=(h+d)/2,i[4]=i[2]=-c,c=Math.sqrt(3)*(-d+h)/2,i[3]=c,i[5]=-c;return}if(i[5]=i[3]=0,o===0){v=l<0?-Math.pow(-l,1/3):Math.pow(l,1/3),i[0]=-c+2*v,i[4]=i[2]=-(v+c);return}u=-u,f=u*u*u,f=Math.acos(l/Math.sqrt(f)),v=2*Math.sqrt(u),i[0]=-c+v*Math.cos(f/3),i[2]=-c+v*Math.cos((f+2*Math.PI)/3),i[4]=-c+v*Math.cos((f+4*Math.PI)/3)},ch=function(e,r,a,n,i,s,o,u){var l=1*a*a-4*a*i+2*a*o+4*i*i-4*i*o+o*o+n*n-4*n*s+2*n*u+4*s*s-4*s*u+u*u,f=1*9*a*i-3*a*a-3*a*o-6*i*i+3*i*o+9*n*s-3*n*n-3*n*u-6*s*s+3*s*u,h=1*3*a*a-6*a*i+a*o-a*e+2*i*i+2*i*e-o*e+3*n*n-6*n*s+n*u-n*r+2*s*s+2*s*r-u*r,d=1*a*i-a*a+a*e-i*e+n*s-n*n+n*r-s*r,c=[];hh(l,f,h,d,c);for(var v=1e-7,p=[],g=0;g<6;g+=2)Math.abs(c[g+1])=0&&c[g]<=1&&p.push(c[g]);p.push(1),p.push(0);for(var y=-1,b,m,T,C=0;C=0?Tl?(e-i)*(e-i)+(r-s)*(r-s):f-d},dt=function(e,r,a){for(var n,i,s,o,u,l=0,f=0;f=e&&e>=s||n<=e&&e<=s)u=(e-n)/(s-n)*(o-i)+i,u>r&&l++;else continue;return l%2!==0},Yt=function(e,r,a,n,i,s,o,u,l){var f=new Array(a.length),h;u[0]!=null?(h=Math.atan(u[1]/u[0]),u[0]<0?h=h+Math.PI/2:h=-h-Math.PI/2):h=u;for(var d=Math.cos(-h),c=Math.sin(-h),v=0;v0){var g=sn(f,-l);p=nn(g)}else p=f;return dt(e,r,p)},dh=function(e,r,a,n,i,s,o,u){for(var l=new Array(a.length*2),f=0;f=0&&g<=1&&b.push(g),y>=0&&y<=1&&b.push(y),b.length===0)return[];var m=b[0]*u[0]+e,T=b[0]*u[1]+r;if(b.length>1){if(b[0]==b[1])return[m,T];var C=b[1]*u[0]+e,S=b[1]*u[1]+r;return[m,T,C,S]}else return[m,T]},Bn=function(e,r,a){return r<=e&&e<=a||a<=e&&e<=r?e:e<=r&&r<=a||a<=r&&r<=e?r:a},Zt=function(e,r,a,n,i,s,o,u,l){var f=e-i,h=a-e,d=o-i,c=r-s,v=n-r,p=u-s,g=d*c-p*f,y=h*c-v*f,b=p*h-d*v;if(b!==0){var m=g/b,T=y/b,C=.001,S=0-C,E=1+C;return S<=m&&m<=E&&S<=T&&T<=E?[e+m*h,r+m*v]:l?[e+m*h,r+m*v]:[]}else return g===0||y===0?Bn(e,a,o)===o?[o,u]:Bn(e,a,i)===i?[i,s]:Bn(i,o,a)===a?[a,n]:[]:[]},pa=function(e,r,a,n,i,s,o,u){var l=[],f,h=new Array(a.length),d=!0;s==null&&(d=!1);var c;if(d){for(var v=0;v0){var p=sn(h,-u);c=nn(p)}else c=h}else c=a;for(var g,y,b,m,T=0;T2){for(var v=[f[0],f[1]],p=Math.pow(v[0]-e,2)+Math.pow(v[1]-r,2),g=1;gf&&(f=T)},get:function(m){return l[m]}},d=0;d0?R=M.edgesTo(O)[0]:R=O.edgesTo(M)[0];var k=n(R);O=O.id(),x[O]>x[A]+k&&(x[O]=x[A]+k,w.nodes.indexOf(O)<0?w.push(O):w.updateItem(O),E[O]=0,S[O]=[]),x[O]==x[A]+k&&(E[O]=E[O]+E[A],S[O].push(A))}else for(var P=0;P0;){for(var G=C.pop(),Y=0;Y0&&o.push(a[u]);o.length!==0&&i.push(n.collection(o))}return i},Nh=function(e,r){for(var a=0;a5&&arguments[5]!==void 0?arguments[5]:Rh,o=n,u,l,f=0;f=2?ea(e,r,a,0,rs,kh):ea(e,r,a,0,ts)},squaredEuclidean:function(e,r,a){return ea(e,r,a,0,rs)},manhattan:function(e,r,a){return ea(e,r,a,0,ts)},max:function(e,r,a){return ea(e,r,a,-1/0,Ph)}};zr["squared-euclidean"]=zr.squaredEuclidean;zr.squaredeuclidean=zr.squaredEuclidean;function mn(t,e,r,a,n,i){var s;return Ge(t)?s=t:s=zr[t]||zr.euclidean,e===0&&Ge(t)?s(n,i):s(e,r,a,n,i)}var Bh=tt({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),Ti=function(e){return Bh(e)},on=function(e,r,a,n,i){var s=i!=="kMedoids",o=s?function(h){return a[h]}:function(h){return n[h](a)},u=function(d){return n[d](r)},l=a,f=r;return mn(e,n.length,o,u,l,f)},Fn=function(e,r,a){for(var n=a.length,i=new Array(n),s=new Array(n),o=new Array(r),u=null,l=0;la)return!1}return!0},zh=function(e,r,a){for(var n=0;no&&(o=r[l][f],u=f);i[u].push(e[l])}for(var h=0;h=i.threshold||i.mode==="dendrogram"&&e.length===1)return!1;var v=r[s],p=r[n[s]],g;i.mode==="dendrogram"?g={left:v,right:p,key:v.key}:g={value:v.value.concat(p.value),key:v.key},e[v.index]=g,e.splice(p.index,1),r[v.key]=g;for(var y=0;ya[p.key][b.key]&&(u=a[p.key][b.key])):i.linkage==="max"?(u=a[v.key][b.key],a[v.key][b.key]0&&n.push(i);return n},us=function(e,r,a){for(var n=[],i=0;io&&(s=l,o=r[i*e+l])}s>0&&n.push(s)}for(var f=0;fl&&(u=f,l=h)}a[i]=s[u]}return n=us(e,r,a),n},ls=function(e){for(var r=this.cy(),a=this.nodes(),n=jh(e),i={},s=0;s=L?(A=L,L=O,I=M):O>A&&(A=O);for(var R=0;R0?1:0;E[w%n.minIterations*o+G]=Y,F+=Y}if(F>0&&(w>=n.minIterations-1||w==n.maxIterations-1)){for(var _=0,q=0;q1||S>1)&&(o=!0),h[m]=[],b.outgoers().forEach(function(x){x.isEdge()&&h[m].push(x.id())})}else d[m]=[void 0,b.target().id()]}):s.forEach(function(b){var m=b.id();if(b.isNode()){var T=b.degree(!0);T%2&&(u?l?o=!0:l=m:u=m),h[m]=[],b.connectedEdges().forEach(function(C){return h[m].push(C.id())})}else d[m]=[b.source().id(),b.target().id()]});var c={found:!1,trail:void 0};if(o)return c;if(l&&u)if(i){if(f&&l!=f)return c;f=l}else{if(f&&l!=f&&u!=f)return c;f||(f=l)}else f||(f=s[0].id());var v=function(m){for(var T=m,C=[m],S,E,x;h[T].length;)S=h[T].shift(),E=d[S][0],x=d[S][1],T!=x?(h[x]=h[x].filter(function(w){return w!=S}),T=x):!i&&T!=E&&(h[E]=h[E].filter(function(w){return w!=S}),T=E),C.unshift(S),C.unshift(T);return C},p=[],g=[];for(g=v(f);g.length!=1;)h[g[0]].length==0?(p.unshift(s.getElementById(g.shift())),p.unshift(s.getElementById(g.shift()))):g=v(g.shift()).concat(g);p.unshift(s.getElementById(g.shift()));for(var y in h)if(h[y].length)return c;return c.found=!0,c.trail=this.spawn(p,!0),c}},Ba=function(){var e=this,r={},a=0,n=0,i=[],s=[],o={},u=function(d,c){for(var v=s.length-1,p=[],g=e.spawn();s[v].x!=d||s[v].y!=c;)p.push(s.pop().edge),v--;p.push(s.pop().edge),p.forEach(function(y){var b=y.connectedNodes().intersection(e);g.merge(y),b.forEach(function(m){var T=m.id(),C=m.connectedEdges().intersection(e);g.merge(m),r[T].cutVertex?g.merge(C.filter(function(S){return S.isLoop()})):g.merge(C)})}),i.push(g)},l=function h(d,c,v){d===v&&(n+=1),r[c]={id:a,low:a++,cutVertex:!1};var p=e.getElementById(c).connectedEdges().intersection(e);if(p.size()===0)i.push(e.spawn(e.getElementById(c)));else{var g,y,b,m;p.forEach(function(T){g=T.source().id(),y=T.target().id(),b=g===c?y:g,b!==v&&(m=T.id(),o[m]||(o[m]=!0,s.push({x:c,y:b,edge:T})),b in r?r[c].low=Math.min(r[c].low,r[b].id):(h(d,b,c),r[c].low=Math.min(r[c].low,r[b].low),r[c].id<=r[b].low&&(r[c].cutVertex=!0,u(c,b))))})}};e.forEach(function(h){if(h.isNode()){var d=h.id();d in r||(n=0,l(d,d),r[d].cutVertex=n>1)}});var f=Object.keys(r).filter(function(h){return r[h].cutVertex}).map(function(h){return e.getElementById(h)});return{cut:e.spawn(f),components:i}},oc={hopcroftTarjanBiconnected:Ba,htbc:Ba,htb:Ba,hopcroftTarjanBiconnectedComponents:Ba},Fa=function(){var e=this,r={},a=0,n=[],i=[],s=e.spawn(e),o=function u(l){i.push(l),r[l]={index:a,low:a++,explored:!1};var f=e.getElementById(l).connectedEdges().intersection(e);if(f.forEach(function(p){var g=p.target().id();g!==l&&(g in r||u(g),r[g].explored||(r[l].low=Math.min(r[l].low,r[g].low)))}),r[l].index===r[l].low){for(var h=e.spawn();;){var d=i.pop();if(h.merge(e.getElementById(d)),r[d].low=r[l].index,r[d].explored=!0,d===l)break}var c=h.edgesWith(h),v=h.merge(c);n.push(v),s=s.difference(v)}};return e.forEach(function(u){if(u.isNode()){var l=u.id();l in r||o(l)}}),{cut:s,components:n}},uc={tarjanStronglyConnected:Fa,tsc:Fa,tscc:Fa,tarjanStronglyConnectedComponents:Fa},ko={};[da,Gf,zf,Uf,Yf,Hf,Wf,bh,kr,Pr,Zn,Mh,Hh,Qh,nc,sc,oc,uc].forEach(function(t){be(ko,t)});/*! Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable diff --git a/assets/pieDiagram-bb1d19e5-DTocJMlC.js b/assets/pieDiagram-bb1d19e5-C2756XJQ.js similarity index 98% rename from assets/pieDiagram-bb1d19e5-DTocJMlC.js rename to assets/pieDiagram-bb1d19e5-C2756XJQ.js index d795831..fb42ad8 100644 --- a/assets/pieDiagram-bb1d19e5-DTocJMlC.js +++ b/assets/pieDiagram-bb1d19e5-C2756XJQ.js @@ -1,4 +1,4 @@ -import{aK as q,aL as at,x as lt,y as ot,s as ct,g as ht,b as ut,a as yt,A as ft,d as pt,c as et,l as it,aM as gt,aJ as dt,aN as mt,i as _t}from"./mermaid.core-Cio1iadR.js";import{a as tt}from"./arc-Dfq8ddjc.js";import{o as xt}from"./ordinal-Cboi1Yqb.js";import{a as kt}from"./array-BKyUJesY.js";import{c as F}from"./path-CbwjOpE9.js";import"./app-BQ_RvZRm.js";import"./init-Gi6I4Gst.js";function vt(e,u){return ue?1:u>=e?0:NaN}function bt(e){return e}function St(){var e=bt,u=vt,$=null,p=F(0),g=F(q),A=F(0);function y(a){var l,d=(a=kt(a)).length,m,I,T=0,_=new Array(d),v=new Array(d),c=+p.apply(this,arguments),E=Math.min(q,Math.max(-q,g.apply(this,arguments)-c)),O,w=Math.min(Math.abs(E)/d,A.apply(this,arguments)),b=w*(E<0?-1:1),t;for(l=0;l0&&(T+=t);for(u!=null?_.sort(function(i,n){return u(v[i],v[n])}):$!=null&&_.sort(function(i,n){return $(a[i],a[n])}),l=0,I=T?(E-d*b)/T:0;l0?t*I:0)+b,v[m]={data:a[m],index:l,value:t,startAngle:c,endAngle:O,padAngle:w};return v}return y.value=function(a){return arguments.length?(e=typeof a=="function"?a:F(+a),y):e},y.sortValues=function(a){return arguments.length?(u=a,$=null,y):u},y.sort=function(a){return arguments.length?($=a,u=null,y):$},y.startAngle=function(a){return arguments.length?(p=typeof a=="function"?a:F(+a),y):p},y.endAngle=function(a){return arguments.length?(g=typeof a=="function"?a:F(+a),y):g},y.padAngle=function(a){return arguments.length?(A=typeof a=="function"?a:F(+a),y):A},y}var H=function(){var e=function(b,t,i,n){for(i=i||{},n=b.length;n--;i[b[n]]=t);return i},u=[1,3],$=[1,4],p=[1,5],g=[1,6],A=[1,10,12,14,16,18,19,20,21,22],y=[2,4],a=[1,5,10,12,14,16,18,19,20,21,22],l=[20,21,22],d=[2,7],m=[1,12],I=[1,13],T=[1,14],_=[1,15],v=[1,16],c=[1,17],E={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",10:"txt",11:"value",12:"title",13:"title_value",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"section",20:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(t,i,n,r,o,s,P){var x=s.length-1;switch(o){case 3:r.setShowData(!0);break;case 6:this.$=s[x-1];break;case 8:r.addSection(s[x-1],r.cleanupValue(s[x]));break;case 9:this.$=s[x].trim(),r.setDiagramTitle(this.$);break;case 10:this.$=s[x].trim(),r.setAccTitle(this.$);break;case 11:case 12:this.$=s[x].trim(),r.setAccDescription(this.$);break;case 13:r.addSection(s[x].substr(8)),this.$=s[x].substr(8);break}},table:[{3:1,4:2,5:u,20:$,21:p,22:g},{1:[3]},{3:7,4:2,5:u,20:$,21:p,22:g},e(A,y,{6:8,7:[1,9]}),e(a,[2,14]),e(a,[2,15]),e(a,[2,16]),{1:[2,1]},e(l,d,{8:10,9:11,1:[2,2],10:m,12:I,14:T,16:_,18:v,19:c}),e(A,y,{6:18}),e(A,[2,5]),{4:19,20:$,21:p,22:g},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},e(l,[2,12]),e(l,[2,13]),e(l,d,{8:10,9:11,1:[2,3],10:m,12:I,14:T,16:_,18:v,19:c}),e(A,[2,6]),e(l,[2,8]),e(l,[2,9]),e(l,[2,10]),e(l,[2,11])],defaultActions:{7:[2,1]},parseError:function(t,i){if(i.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=i,n}},parse:function(t){var i=this,n=[0],r=[],o=[null],s=[],P=this.table,x="",f=0,V=0,R=2,M=1,B=s.slice.call(arguments,1),h=Object.create(this.lexer),N={yy:{}};for(var Y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Y)&&(N.yy[Y]=this.yy[Y]);h.setInput(t,N.yy),N.yy.lexer=h,N.yy.parser=this,typeof h.yylloc>"u"&&(h.yylloc={});var J=h.yylloc;s.push(J);var st=h.options&&h.options.ranges;typeof N.yy.parseError=="function"?this.parseError=N.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function rt(){var C;return C=r.pop()||h.lex()||M,typeof C!="number"&&(C instanceof Array&&(r=C,C=r.pop()),C=i.symbols_[C]||C),C}for(var k,L,S,K,z={},j,D,X,W;;){if(L=n[n.length-1],this.defaultActions[L]?S=this.defaultActions[L]:((k===null||typeof k>"u")&&(k=rt()),S=P[L]&&P[L][k]),typeof S>"u"||!S.length||!S[0]){var Z="";W=[];for(j in P[L])this.terminals_[j]&&j>R&&W.push("'"+this.terminals_[j]+"'");h.showPosition?Z="Parse error on line "+(f+1)+`: +import{aK as q,aL as at,x as lt,y as ot,s as ct,g as ht,b as ut,a as yt,A as ft,d as pt,c as et,l as it,aM as gt,aJ as dt,aN as mt,i as _t}from"./mermaid.core-D8sVPjx9.js";import{a as tt}from"./arc-DKl72la8.js";import{o as xt}from"./ordinal-Cboi1Yqb.js";import{a as kt}from"./array-BKyUJesY.js";import{c as F}from"./path-CbwjOpE9.js";import"./app-B7rxM88G.js";import"./init-Gi6I4Gst.js";function vt(e,u){return ue?1:u>=e?0:NaN}function bt(e){return e}function St(){var e=bt,u=vt,$=null,p=F(0),g=F(q),A=F(0);function y(a){var l,d=(a=kt(a)).length,m,I,T=0,_=new Array(d),v=new Array(d),c=+p.apply(this,arguments),E=Math.min(q,Math.max(-q,g.apply(this,arguments)-c)),O,w=Math.min(Math.abs(E)/d,A.apply(this,arguments)),b=w*(E<0?-1:1),t;for(l=0;l0&&(T+=t);for(u!=null?_.sort(function(i,n){return u(v[i],v[n])}):$!=null&&_.sort(function(i,n){return $(a[i],a[n])}),l=0,I=T?(E-d*b)/T:0;l0?t*I:0)+b,v[m]={data:a[m],index:l,value:t,startAngle:c,endAngle:O,padAngle:w};return v}return y.value=function(a){return arguments.length?(e=typeof a=="function"?a:F(+a),y):e},y.sortValues=function(a){return arguments.length?(u=a,$=null,y):u},y.sort=function(a){return arguments.length?($=a,u=null,y):$},y.startAngle=function(a){return arguments.length?(p=typeof a=="function"?a:F(+a),y):p},y.endAngle=function(a){return arguments.length?(g=typeof a=="function"?a:F(+a),y):g},y.padAngle=function(a){return arguments.length?(A=typeof a=="function"?a:F(+a),y):A},y}var H=function(){var e=function(b,t,i,n){for(i=i||{},n=b.length;n--;i[b[n]]=t);return i},u=[1,3],$=[1,4],p=[1,5],g=[1,6],A=[1,10,12,14,16,18,19,20,21,22],y=[2,4],a=[1,5,10,12,14,16,18,19,20,21,22],l=[20,21,22],d=[2,7],m=[1,12],I=[1,13],T=[1,14],_=[1,15],v=[1,16],c=[1,17],E={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,PIE:5,document:6,showData:7,line:8,statement:9,txt:10,value:11,title:12,title_value:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,section:19,NEWLINE:20,";":21,EOF:22,$accept:0,$end:1},terminals_:{2:"error",5:"PIE",7:"showData",10:"txt",11:"value",12:"title",13:"title_value",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"section",20:"NEWLINE",21:";",22:"EOF"},productions_:[0,[3,2],[3,2],[3,3],[6,0],[6,2],[8,2],[9,0],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[4,1],[4,1],[4,1]],performAction:function(t,i,n,r,o,s,P){var x=s.length-1;switch(o){case 3:r.setShowData(!0);break;case 6:this.$=s[x-1];break;case 8:r.addSection(s[x-1],r.cleanupValue(s[x]));break;case 9:this.$=s[x].trim(),r.setDiagramTitle(this.$);break;case 10:this.$=s[x].trim(),r.setAccTitle(this.$);break;case 11:case 12:this.$=s[x].trim(),r.setAccDescription(this.$);break;case 13:r.addSection(s[x].substr(8)),this.$=s[x].substr(8);break}},table:[{3:1,4:2,5:u,20:$,21:p,22:g},{1:[3]},{3:7,4:2,5:u,20:$,21:p,22:g},e(A,y,{6:8,7:[1,9]}),e(a,[2,14]),e(a,[2,15]),e(a,[2,16]),{1:[2,1]},e(l,d,{8:10,9:11,1:[2,2],10:m,12:I,14:T,16:_,18:v,19:c}),e(A,y,{6:18}),e(A,[2,5]),{4:19,20:$,21:p,22:g},{11:[1,20]},{13:[1,21]},{15:[1,22]},{17:[1,23]},e(l,[2,12]),e(l,[2,13]),e(l,d,{8:10,9:11,1:[2,3],10:m,12:I,14:T,16:_,18:v,19:c}),e(A,[2,6]),e(l,[2,8]),e(l,[2,9]),e(l,[2,10]),e(l,[2,11])],defaultActions:{7:[2,1]},parseError:function(t,i){if(i.recoverable)this.trace(t);else{var n=new Error(t);throw n.hash=i,n}},parse:function(t){var i=this,n=[0],r=[],o=[null],s=[],P=this.table,x="",f=0,V=0,R=2,M=1,B=s.slice.call(arguments,1),h=Object.create(this.lexer),N={yy:{}};for(var Y in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Y)&&(N.yy[Y]=this.yy[Y]);h.setInput(t,N.yy),N.yy.lexer=h,N.yy.parser=this,typeof h.yylloc>"u"&&(h.yylloc={});var J=h.yylloc;s.push(J);var st=h.options&&h.options.ranges;typeof N.yy.parseError=="function"?this.parseError=N.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function rt(){var C;return C=r.pop()||h.lex()||M,typeof C!="number"&&(C instanceof Array&&(r=C,C=r.pop()),C=i.symbols_[C]||C),C}for(var k,L,S,K,z={},j,D,X,W;;){if(L=n[n.length-1],this.defaultActions[L]?S=this.defaultActions[L]:((k===null||typeof k>"u")&&(k=rt()),S=P[L]&&P[L][k]),typeof S>"u"||!S.length||!S[0]){var Z="";W=[];for(j in P[L])this.terminals_[j]&&j>R&&W.push("'"+this.terminals_[j]+"'");h.showPosition?Z="Parse error on line "+(f+1)+`: `+h.showPosition()+` Expecting `+W.join(", ")+", got '"+(this.terminals_[k]||k)+"'":Z="Parse error on line "+(f+1)+": Unexpected "+(k==M?"end of input":"'"+(this.terminals_[k]||k)+"'"),this.parseError(Z,{text:h.match,token:this.terminals_[k]||k,line:h.yylineno,loc:J,expected:W})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+k);switch(S[0]){case 1:n.push(k),o.push(h.yytext),s.push(h.yylloc),n.push(S[1]),k=null,V=h.yyleng,x=h.yytext,f=h.yylineno,J=h.yylloc;break;case 2:if(D=this.productions_[S[1]][1],z.$=o[o.length-D],z._$={first_line:s[s.length-(D||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(D||1)].first_column,last_column:s[s.length-1].last_column},st&&(z._$.range=[s[s.length-(D||1)].range[0],s[s.length-1].range[1]]),K=this.performAction.apply(z,[x,V,f,N.yy,S[1],o,s].concat(B)),typeof K<"u")return K;D&&(n=n.slice(0,-1*D*2),o=o.slice(0,-1*D),s=s.slice(0,-1*D)),n.push(this.productions_[S[1]][0]),o.push(z.$),s.push(z._$),X=P[n[n.length-2]][n[n.length-1]],n.push(X);break;case 3:return!0}}return!0}},O=function(){var b={EOF:1,parseError:function(i,n){if(this.yy.parser)this.yy.parser.parseError(i,n);else throw new Error(i)},setInput:function(t,i){return this.yy=i||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var i=t.match(/(?:\r\n?|\n).*/g);return i?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var i=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),i=new Array(t.length+1).join("-");return t+this.upcomingInput()+` diff --git a/assets/quadrantDiagram-c759a472-DS1tcxYb.js b/assets/quadrantDiagram-c759a472-B-yKjtHK.js similarity index 99% rename from assets/quadrantDiagram-c759a472-DS1tcxYb.js rename to assets/quadrantDiagram-c759a472-B-yKjtHK.js index 19b58df..ee3c6aa 100644 --- a/assets/quadrantDiagram-c759a472-DS1tcxYb.js +++ b/assets/quadrantDiagram-c759a472-B-yKjtHK.js @@ -1,4 +1,4 @@ -import{a_ as vt,c as yt,aL as D,l as ot,s as Lt,g as Ct,x as zt,y as bt,a as Et,b as Dt,A as It,h as gt,i as Bt,d as wt}from"./mermaid.core-Cio1iadR.js";import{l as mt}from"./linear-DyHMIkCX.js";import"./app-BQ_RvZRm.js";import"./init-Gi6I4Gst.js";var pt=function(){var e=function(K,n,r,l){for(r=r||{},l=K.length;l--;r[K[l]]=n);return r},s=[1,3],h=[1,4],x=[1,5],f=[1,6],d=[1,7],c=[1,5,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],g=[1,5,6,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],i=[32,33,34],y=[2,7],p=[1,13],B=[1,17],N=[1,18],V=[1,19],I=[1,20],b=[1,21],M=[1,22],X=[1,23],C=[1,24],it=[1,25],at=[1,26],nt=[1,27],U=[1,30],Q=[1,31],T=[1,32],m=[1,33],_=[1,34],t=[1,35],A=[1,36],S=[1,37],k=[1,38],F=[1,39],P=[1,40],v=[1,41],L=[1,42],O=[1,57],Y=[1,58],z=[5,22,26,32,33,34,40,41,42,43,44,45,46,47,48,49,50,51],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,QUADRANT:6,document:7,line:8,statement:9,axisDetails:10,quadrantDetails:11,points:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,text:21,point_start:22,point_x:23,point_y:24,"X-AXIS":25,"AXIS-TEXT-DELIMITER":26,"Y-AXIS":27,QUADRANT_1:28,QUADRANT_2:29,QUADRANT_3:30,QUADRANT_4:31,NEWLINE:32,SEMI:33,EOF:34,alphaNumToken:35,textNoTagsToken:36,STR:37,MD_STR:38,alphaNum:39,PUNCTUATION:40,AMP:41,NUM:42,ALPHA:43,COMMA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,UNDERSCORE:50,MINUS:51,$accept:0,$end:1},terminals_:{2:"error",5:"SPACE",6:"QUADRANT",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",22:"point_start",23:"point_x",24:"point_y",25:"X-AXIS",26:"AXIS-TEXT-DELIMITER",27:"Y-AXIS",28:"QUADRANT_1",29:"QUADRANT_2",30:"QUADRANT_3",31:"QUADRANT_4",32:"NEWLINE",33:"SEMI",34:"EOF",37:"STR",38:"MD_STR",40:"PUNCTUATION",41:"AMP",42:"NUM",43:"ALPHA",44:"COMMA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"UNDERSCORE",51:"MINUS"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[9,0],[9,2],[9,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,1],[9,1],[12,4],[10,4],[10,3],[10,2],[10,4],[10,3],[10,2],[11,2],[11,2],[11,2],[11,2],[4,1],[4,1],[4,1],[21,1],[21,2],[21,1],[21,1],[39,1],[39,2],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[36,1],[36,1],[36,1]],performAction:function(n,r,l,o,q,a,et){var u=a.length-1;switch(q){case 12:this.$=a[u].trim(),o.setDiagramTitle(this.$);break;case 13:this.$=a[u].trim(),o.setAccTitle(this.$);break;case 14:case 15:this.$=a[u].trim(),o.setAccDescription(this.$);break;case 16:o.addSection(a[u].substr(8)),this.$=a[u].substr(8);break;case 17:o.addPoint(a[u-3],a[u-1],a[u]);break;case 18:o.setXAxisLeftText(a[u-2]),o.setXAxisRightText(a[u]);break;case 19:a[u-1].text+=" ⟶ ",o.setXAxisLeftText(a[u-1]);break;case 20:o.setXAxisLeftText(a[u]);break;case 21:o.setYAxisBottomText(a[u-2]),o.setYAxisTopText(a[u]);break;case 22:a[u-1].text+=" ⟶ ",o.setYAxisBottomText(a[u-1]);break;case 23:o.setYAxisBottomText(a[u]);break;case 24:o.setQuadrant1Text(a[u]);break;case 25:o.setQuadrant2Text(a[u]);break;case 26:o.setQuadrant3Text(a[u]);break;case 27:o.setQuadrant4Text(a[u]);break;case 31:this.$={text:a[u],type:"text"};break;case 32:this.$={text:a[u-1].text+""+a[u],type:a[u-1].type};break;case 33:this.$={text:a[u],type:"text"};break;case 34:this.$={text:a[u],type:"markdown"};break;case 35:this.$=a[u];break;case 36:this.$=a[u-1]+""+a[u];break}},table:[{3:1,4:2,5:s,6:h,32:x,33:f,34:d},{1:[3]},{3:8,4:2,5:s,6:h,32:x,33:f,34:d},{3:9,4:2,5:s,6:h,32:x,33:f,34:d},e(c,[2,4],{7:10}),e(g,[2,28]),e(g,[2,29]),e(g,[2,30]),{1:[2,1]},{1:[2,2]},e(i,y,{8:11,9:12,10:14,11:15,12:16,21:28,35:29,1:[2,3],5:p,13:B,15:N,17:V,19:I,20:b,25:M,27:X,28:C,29:it,30:at,31:nt,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(c,[2,5]),{4:43,32:x,33:f,34:d},e(i,y,{10:14,11:15,12:16,21:28,35:29,9:44,5:p,13:B,15:N,17:V,19:I,20:b,25:M,27:X,28:C,29:it,30:at,31:nt,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(i,[2,9]),e(i,[2,10]),e(i,[2,11]),{14:[1,45]},{16:[1,46]},{18:[1,47]},e(i,[2,15]),e(i,[2,16]),{21:48,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:49,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:50,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:51,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:52,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:53,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{5:O,22:[1,54],35:56,36:55,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y},e(z,[2,31]),e(z,[2,33]),e(z,[2,34]),e(z,[2,37]),e(z,[2,38]),e(z,[2,39]),e(z,[2,40]),e(z,[2,41]),e(z,[2,42]),e(z,[2,43]),e(z,[2,44]),e(z,[2,45]),e(z,[2,46]),e(z,[2,47]),e(c,[2,6]),e(i,[2,8]),e(i,[2,12]),e(i,[2,13]),e(i,[2,14]),e(i,[2,20],{36:55,35:56,5:O,26:[1,59],40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,23],{36:55,35:56,5:O,26:[1,60],40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,24],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,25],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,26],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,27],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),{23:[1,61]},e(z,[2,32]),e(z,[2,48]),e(z,[2,49]),e(z,[2,50]),e(i,[2,19],{35:29,21:62,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(i,[2,22],{35:29,21:63,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),{24:[1,64]},e(i,[2,18],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,21],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,17])],defaultActions:{8:[2,1],9:[2,2]},parseError:function(n,r){if(r.recoverable)this.trace(n);else{var l=new Error(n);throw l.hash=r,l}},parse:function(n){var r=this,l=[0],o=[],q=[null],a=[],et=this.table,u="",st=0,qt=0,St=2,Tt=1,kt=a.slice.call(arguments,1),E=Object.create(this.lexer),Z={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(Z.yy[dt]=this.yy[dt]);E.setInput(n,Z.yy),Z.yy.lexer=E,Z.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var ut=E.yylloc;a.push(ut);var Ft=E.options&&E.options.ranges;typeof Z.yy.parseError=="function"?this.parseError=Z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Pt(){var j;return j=o.pop()||E.lex()||Tt,typeof j!="number"&&(j instanceof Array&&(o=j,j=o.pop()),j=r.symbols_[j]||j),j}for(var W,J,H,xt,tt={},rt,$,_t,lt;;){if(J=l[l.length-1],this.defaultActions[J]?H=this.defaultActions[J]:((W===null||typeof W>"u")&&(W=Pt()),H=et[J]&&et[J][W]),typeof H>"u"||!H.length||!H[0]){var ft="";lt=[];for(rt in et[J])this.terminals_[rt]&&rt>St&<.push("'"+this.terminals_[rt]+"'");E.showPosition?ft="Parse error on line "+(st+1)+`: +import{a_ as vt,c as yt,aL as D,l as ot,s as Lt,g as Ct,x as zt,y as bt,a as Et,b as Dt,A as It,h as gt,i as Bt,d as wt}from"./mermaid.core-D8sVPjx9.js";import{l as mt}from"./linear-DPKUxXbT.js";import"./app-B7rxM88G.js";import"./init-Gi6I4Gst.js";var pt=function(){var e=function(K,n,r,l){for(r=r||{},l=K.length;l--;r[K[l]]=n);return r},s=[1,3],h=[1,4],x=[1,5],f=[1,6],d=[1,7],c=[1,5,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],g=[1,5,6,13,15,17,19,20,25,27,28,29,30,31,32,33,34,37,38,40,41,42,43,44,45,46,47,48,49,50],i=[32,33,34],y=[2,7],p=[1,13],B=[1,17],N=[1,18],V=[1,19],I=[1,20],b=[1,21],M=[1,22],X=[1,23],C=[1,24],it=[1,25],at=[1,26],nt=[1,27],U=[1,30],Q=[1,31],T=[1,32],m=[1,33],_=[1,34],t=[1,35],A=[1,36],S=[1,37],k=[1,38],F=[1,39],P=[1,40],v=[1,41],L=[1,42],O=[1,57],Y=[1,58],z=[5,22,26,32,33,34,40,41,42,43,44,45,46,47,48,49,50,51],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,SPACE:5,QUADRANT:6,document:7,line:8,statement:9,axisDetails:10,quadrantDetails:11,points:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,text:21,point_start:22,point_x:23,point_y:24,"X-AXIS":25,"AXIS-TEXT-DELIMITER":26,"Y-AXIS":27,QUADRANT_1:28,QUADRANT_2:29,QUADRANT_3:30,QUADRANT_4:31,NEWLINE:32,SEMI:33,EOF:34,alphaNumToken:35,textNoTagsToken:36,STR:37,MD_STR:38,alphaNum:39,PUNCTUATION:40,AMP:41,NUM:42,ALPHA:43,COMMA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,UNDERSCORE:50,MINUS:51,$accept:0,$end:1},terminals_:{2:"error",5:"SPACE",6:"QUADRANT",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",22:"point_start",23:"point_x",24:"point_y",25:"X-AXIS",26:"AXIS-TEXT-DELIMITER",27:"Y-AXIS",28:"QUADRANT_1",29:"QUADRANT_2",30:"QUADRANT_3",31:"QUADRANT_4",32:"NEWLINE",33:"SEMI",34:"EOF",37:"STR",38:"MD_STR",40:"PUNCTUATION",41:"AMP",42:"NUM",43:"ALPHA",44:"COMMA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"UNDERSCORE",51:"MINUS"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[9,0],[9,2],[9,1],[9,1],[9,1],[9,2],[9,2],[9,2],[9,1],[9,1],[12,4],[10,4],[10,3],[10,2],[10,4],[10,3],[10,2],[11,2],[11,2],[11,2],[11,2],[4,1],[4,1],[4,1],[21,1],[21,2],[21,1],[21,1],[39,1],[39,2],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[36,1],[36,1],[36,1]],performAction:function(n,r,l,o,q,a,et){var u=a.length-1;switch(q){case 12:this.$=a[u].trim(),o.setDiagramTitle(this.$);break;case 13:this.$=a[u].trim(),o.setAccTitle(this.$);break;case 14:case 15:this.$=a[u].trim(),o.setAccDescription(this.$);break;case 16:o.addSection(a[u].substr(8)),this.$=a[u].substr(8);break;case 17:o.addPoint(a[u-3],a[u-1],a[u]);break;case 18:o.setXAxisLeftText(a[u-2]),o.setXAxisRightText(a[u]);break;case 19:a[u-1].text+=" ⟶ ",o.setXAxisLeftText(a[u-1]);break;case 20:o.setXAxisLeftText(a[u]);break;case 21:o.setYAxisBottomText(a[u-2]),o.setYAxisTopText(a[u]);break;case 22:a[u-1].text+=" ⟶ ",o.setYAxisBottomText(a[u-1]);break;case 23:o.setYAxisBottomText(a[u]);break;case 24:o.setQuadrant1Text(a[u]);break;case 25:o.setQuadrant2Text(a[u]);break;case 26:o.setQuadrant3Text(a[u]);break;case 27:o.setQuadrant4Text(a[u]);break;case 31:this.$={text:a[u],type:"text"};break;case 32:this.$={text:a[u-1].text+""+a[u],type:a[u-1].type};break;case 33:this.$={text:a[u],type:"text"};break;case 34:this.$={text:a[u],type:"markdown"};break;case 35:this.$=a[u];break;case 36:this.$=a[u-1]+""+a[u];break}},table:[{3:1,4:2,5:s,6:h,32:x,33:f,34:d},{1:[3]},{3:8,4:2,5:s,6:h,32:x,33:f,34:d},{3:9,4:2,5:s,6:h,32:x,33:f,34:d},e(c,[2,4],{7:10}),e(g,[2,28]),e(g,[2,29]),e(g,[2,30]),{1:[2,1]},{1:[2,2]},e(i,y,{8:11,9:12,10:14,11:15,12:16,21:28,35:29,1:[2,3],5:p,13:B,15:N,17:V,19:I,20:b,25:M,27:X,28:C,29:it,30:at,31:nt,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(c,[2,5]),{4:43,32:x,33:f,34:d},e(i,y,{10:14,11:15,12:16,21:28,35:29,9:44,5:p,13:B,15:N,17:V,19:I,20:b,25:M,27:X,28:C,29:it,30:at,31:nt,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(i,[2,9]),e(i,[2,10]),e(i,[2,11]),{14:[1,45]},{16:[1,46]},{18:[1,47]},e(i,[2,15]),e(i,[2,16]),{21:48,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:49,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:50,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:51,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:52,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{21:53,35:29,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L},{5:O,22:[1,54],35:56,36:55,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y},e(z,[2,31]),e(z,[2,33]),e(z,[2,34]),e(z,[2,37]),e(z,[2,38]),e(z,[2,39]),e(z,[2,40]),e(z,[2,41]),e(z,[2,42]),e(z,[2,43]),e(z,[2,44]),e(z,[2,45]),e(z,[2,46]),e(z,[2,47]),e(c,[2,6]),e(i,[2,8]),e(i,[2,12]),e(i,[2,13]),e(i,[2,14]),e(i,[2,20],{36:55,35:56,5:O,26:[1,59],40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,23],{36:55,35:56,5:O,26:[1,60],40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,24],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,25],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,26],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,27],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),{23:[1,61]},e(z,[2,32]),e(z,[2,48]),e(z,[2,49]),e(z,[2,50]),e(i,[2,19],{35:29,21:62,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),e(i,[2,22],{35:29,21:63,37:U,38:Q,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L}),{24:[1,64]},e(i,[2,18],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,21],{36:55,35:56,5:O,40:T,41:m,42:_,43:t,44:A,45:S,46:k,47:F,48:P,49:v,50:L,51:Y}),e(i,[2,17])],defaultActions:{8:[2,1],9:[2,2]},parseError:function(n,r){if(r.recoverable)this.trace(n);else{var l=new Error(n);throw l.hash=r,l}},parse:function(n){var r=this,l=[0],o=[],q=[null],a=[],et=this.table,u="",st=0,qt=0,St=2,Tt=1,kt=a.slice.call(arguments,1),E=Object.create(this.lexer),Z={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(Z.yy[dt]=this.yy[dt]);E.setInput(n,Z.yy),Z.yy.lexer=E,Z.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var ut=E.yylloc;a.push(ut);var Ft=E.options&&E.options.ranges;typeof Z.yy.parseError=="function"?this.parseError=Z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Pt(){var j;return j=o.pop()||E.lex()||Tt,typeof j!="number"&&(j instanceof Array&&(o=j,j=o.pop()),j=r.symbols_[j]||j),j}for(var W,J,H,xt,tt={},rt,$,_t,lt;;){if(J=l[l.length-1],this.defaultActions[J]?H=this.defaultActions[J]:((W===null||typeof W>"u")&&(W=Pt()),H=et[J]&&et[J][W]),typeof H>"u"||!H.length||!H[0]){var ft="";lt=[];for(rt in et[J])this.terminals_[rt]&&rt>St&<.push("'"+this.terminals_[rt]+"'");E.showPosition?ft="Parse error on line "+(st+1)+`: `+E.showPosition()+` Expecting `+lt.join(", ")+", got '"+(this.terminals_[W]||W)+"'":ft="Parse error on line "+(st+1)+": Unexpected "+(W==Tt?"end of input":"'"+(this.terminals_[W]||W)+"'"),this.parseError(ft,{text:E.match,token:this.terminals_[W]||W,line:E.yylineno,loc:ut,expected:lt})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+W);switch(H[0]){case 1:l.push(W),q.push(E.yytext),a.push(E.yylloc),l.push(H[1]),W=null,qt=E.yyleng,u=E.yytext,st=E.yylineno,ut=E.yylloc;break;case 2:if($=this.productions_[H[1]][1],tt.$=q[q.length-$],tt._$={first_line:a[a.length-($||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-($||1)].first_column,last_column:a[a.length-1].last_column},Ft&&(tt._$.range=[a[a.length-($||1)].range[0],a[a.length-1].range[1]]),xt=this.performAction.apply(tt,[u,qt,st,Z.yy,H[1],q,a].concat(kt)),typeof xt<"u")return xt;$&&(l=l.slice(0,-1*$*2),q=q.slice(0,-1*$),a=a.slice(0,-1*$)),l.push(this.productions_[H[1]][0]),q.push(tt.$),a.push(tt._$),_t=et[l[l.length-2]][l[l.length-1]],l.push(_t);break;case 3:return!0}}return!0}},At=function(){var K={EOF:1,parseError:function(r,l){if(this.yy.parser)this.yy.parser.parseError(r,l);else throw new Error(r)},setInput:function(n,r){return this.yy=r||this.yy||{},this._input=n,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var r=n.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),n},unput:function(n){var r=n.length,l=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var q=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===o.length?this.yylloc.first_column:0)+o[o.length-l.length].length-l[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[q[0],q[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var n=this.pastInput(),r=new Array(n.length+1).join("-");return n+this.upcomingInput()+` diff --git a/assets/requirementDiagram-87253d64-CeDPUd4g.js b/assets/requirementDiagram-87253d64-Cszy6Rvt.js similarity index 98% rename from assets/requirementDiagram-87253d64-CeDPUd4g.js rename to assets/requirementDiagram-87253d64-Cszy6Rvt.js index cef0efc..e11dcba 100644 --- a/assets/requirementDiagram-87253d64-CeDPUd4g.js +++ b/assets/requirementDiagram-87253d64-Cszy6Rvt.js @@ -1,4 +1,4 @@ -import{c as Te,s as Ce,g as Fe,b as Me,a as De,l as Ne,A as Pe,h as oe,i as Ye,j as ke}from"./mermaid.core-Cio1iadR.js";import{G as Ue}from"./graph-k1ojK0f-.js";import{l as Be}from"./layout-CbxIxNpL.js";import{l as Qe}from"./line-DOPC82El.js";import"./app-BQ_RvZRm.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";var ce=function(){var e=function(V,i,n,a){for(n=n||{},a=V.length;a--;n[V[a]]=i);return n},t=[1,3],l=[1,4],c=[1,5],u=[1,6],d=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],p=[1,18],h=[2,7],o=[1,22],g=[1,23],R=[1,24],A=[1,25],T=[1,26],N=[1,27],v=[1,20],k=[1,28],x=[1,29],F=[62,63],de=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],pe=[1,47],fe=[1,48],ye=[1,49],_e=[1,50],ge=[1,51],Ee=[1,52],Re=[1,53],O=[53,54],M=[1,64],D=[1,60],P=[1,61],Y=[1,62],U=[1,63],B=[1,65],j=[1,69],z=[1,70],X=[1,67],J=[1,68],m=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],ie={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(i,n,a,r,f,s,W){var _=s.length-1;switch(f){case 4:this.$=s[_].trim(),r.setAccTitle(this.$);break;case 5:case 6:this.$=s[_].trim(),r.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:r.addRequirement(s[_-3],s[_-4]);break;case 14:r.setNewReqId(s[_-2]);break;case 15:r.setNewReqText(s[_-2]);break;case 16:r.setNewReqRisk(s[_-2]);break;case 17:r.setNewReqVerifyMethod(s[_-2]);break;case 20:this.$=r.RequirementType.REQUIREMENT;break;case 21:this.$=r.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=r.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=r.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=r.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=r.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=r.RiskLevel.LOW_RISK;break;case 27:this.$=r.RiskLevel.MED_RISK;break;case 28:this.$=r.RiskLevel.HIGH_RISK;break;case 29:this.$=r.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=r.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=r.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=r.VerifyType.VERIFY_TEST;break;case 33:r.addElement(s[_-3]);break;case 34:r.setNewElementType(s[_-2]);break;case 35:r.setNewElementDocRef(s[_-2]);break;case 38:r.addRelationship(s[_-2],s[_],s[_-4]);break;case 39:r.addRelationship(s[_-2],s[_-4],s[_]);break;case 40:this.$=r.Relationships.CONTAINS;break;case 41:this.$=r.Relationships.COPIES;break;case 42:this.$=r.Relationships.DERIVES;break;case 43:this.$=r.Relationships.SATISFIES;break;case 44:this.$=r.Relationships.VERIFIES;break;case 45:this.$=r.Relationships.REFINES;break;case 46:this.$=r.Relationships.TRACES;break}},table:[{3:1,4:2,6:t,9:l,11:c,13:u},{1:[3]},{3:8,4:2,5:[1,7],6:t,9:l,11:c,13:u},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(d,[2,6]),{3:12,4:2,6:t,9:l,11:c,13:u},{1:[2,2]},{4:17,5:p,7:13,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},e(d,[2,4]),e(d,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:p,7:31,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:32,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:33,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:34,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:35,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},e(F,[2,20]),e(F,[2,21]),e(F,[2,22]),e(F,[2,23]),e(F,[2,24]),e(F,[2,25]),e(de,[2,49]),e(de,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:pe,56:fe,57:ye,58:_e,59:ge,60:Ee,61:Re},{52:54,55:pe,56:fe,57:ye,58:_e,59:ge,60:Ee,61:Re},{5:[1,55]},{5:[1,56]},{53:[1,57]},e(O,[2,40]),e(O,[2,41]),e(O,[2,42]),e(O,[2,43]),e(O,[2,44]),e(O,[2,45]),e(O,[2,46]),{54:[1,58]},{5:M,20:59,21:D,24:P,26:Y,28:U,30:B},{5:j,30:z,46:66,47:X,49:J},{23:71,62:k,63:x},{23:72,62:k,63:x},e(m,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:M,20:77,21:D,24:P,26:Y,28:U,30:B},e(m,[2,19]),e(m,[2,33]),{22:[1,78]},{22:[1,79]},{5:j,30:z,46:80,47:X,49:J},e(m,[2,37]),e(m,[2,38]),e(m,[2,39]),{23:81,62:k,63:x},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},e(m,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},e(m,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:M,20:106,21:D,24:P,26:Y,28:U,30:B},{5:M,20:107,21:D,24:P,26:Y,28:U,30:B},{5:M,20:108,21:D,24:P,26:Y,28:U,30:B},{5:M,20:109,21:D,24:P,26:Y,28:U,30:B},{5:j,30:z,46:110,47:X,49:J},{5:j,30:z,46:111,47:X,49:J},e(m,[2,14]),e(m,[2,15]),e(m,[2,16]),e(m,[2,17]),e(m,[2,34]),e(m,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(i,n){if(n.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=n,a}},parse:function(i){var n=this,a=[0],r=[],f=[null],s=[],W=this.table,_="",Z=0,me=0,Ve=2,Ie=1,qe=s.slice.call(arguments,1),E=Object.create(this.lexer),L={yy:{}};for(var ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ne)&&(L.yy[ne]=this.yy[ne]);E.setInput(i,L.yy),L.yy.lexer=E,L.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var se=E.yylloc;s.push(se);var Oe=E.options&&E.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Le(){var $;return $=r.pop()||E.lex()||Ie,typeof $!="number"&&($ instanceof Array&&(r=$,$=r.pop()),$=n.symbols_[$]||$),$}for(var I,C,S,ae,Q={},ee,w,be,te;;){if(C=a[a.length-1],this.defaultActions[C]?S=this.defaultActions[C]:((I===null||typeof I>"u")&&(I=Le()),S=W[C]&&W[C][I]),typeof S>"u"||!S.length||!S[0]){var le="";te=[];for(ee in W[C])this.terminals_[ee]&&ee>Ve&&te.push("'"+this.terminals_[ee]+"'");E.showPosition?le="Parse error on line "+(Z+1)+`: +import{c as Te,s as Ce,g as Fe,b as Me,a as De,l as Ne,A as Pe,h as oe,i as Ye,j as ke}from"./mermaid.core-D8sVPjx9.js";import{G as Ue}from"./graph-BKQChTdx.js";import{l as Be}from"./layout-Bwrh1hP1.js";import{l as Qe}from"./line-Dh5t0evl.js";import"./app-B7rxM88G.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";var ce=function(){var e=function(V,i,n,a){for(n=n||{},a=V.length;a--;n[V[a]]=i);return n},t=[1,3],l=[1,4],c=[1,5],u=[1,6],d=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],p=[1,18],h=[2,7],o=[1,22],g=[1,23],R=[1,24],A=[1,25],T=[1,26],N=[1,27],v=[1,20],k=[1,28],x=[1,29],F=[62,63],de=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],pe=[1,47],fe=[1,48],ye=[1,49],_e=[1,50],ge=[1,51],Ee=[1,52],Re=[1,53],O=[53,54],M=[1,64],D=[1,60],P=[1,61],Y=[1,62],U=[1,63],B=[1,65],j=[1,69],z=[1,70],X=[1,67],J=[1,68],m=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],ie={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:function(i,n,a,r,f,s,W){var _=s.length-1;switch(f){case 4:this.$=s[_].trim(),r.setAccTitle(this.$);break;case 5:case 6:this.$=s[_].trim(),r.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:r.addRequirement(s[_-3],s[_-4]);break;case 14:r.setNewReqId(s[_-2]);break;case 15:r.setNewReqText(s[_-2]);break;case 16:r.setNewReqRisk(s[_-2]);break;case 17:r.setNewReqVerifyMethod(s[_-2]);break;case 20:this.$=r.RequirementType.REQUIREMENT;break;case 21:this.$=r.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=r.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=r.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=r.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=r.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=r.RiskLevel.LOW_RISK;break;case 27:this.$=r.RiskLevel.MED_RISK;break;case 28:this.$=r.RiskLevel.HIGH_RISK;break;case 29:this.$=r.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=r.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=r.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=r.VerifyType.VERIFY_TEST;break;case 33:r.addElement(s[_-3]);break;case 34:r.setNewElementType(s[_-2]);break;case 35:r.setNewElementDocRef(s[_-2]);break;case 38:r.addRelationship(s[_-2],s[_],s[_-4]);break;case 39:r.addRelationship(s[_-2],s[_-4],s[_]);break;case 40:this.$=r.Relationships.CONTAINS;break;case 41:this.$=r.Relationships.COPIES;break;case 42:this.$=r.Relationships.DERIVES;break;case 43:this.$=r.Relationships.SATISFIES;break;case 44:this.$=r.Relationships.VERIFIES;break;case 45:this.$=r.Relationships.REFINES;break;case 46:this.$=r.Relationships.TRACES;break}},table:[{3:1,4:2,6:t,9:l,11:c,13:u},{1:[3]},{3:8,4:2,5:[1,7],6:t,9:l,11:c,13:u},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(d,[2,6]),{3:12,4:2,6:t,9:l,11:c,13:u},{1:[2,2]},{4:17,5:p,7:13,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},e(d,[2,4]),e(d,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:p,7:31,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:32,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:33,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:34,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{4:17,5:p,7:35,8:h,9:l,11:c,13:u,14:14,15:15,16:16,17:19,23:21,31:o,32:g,33:R,34:A,35:T,36:N,44:v,62:k,63:x},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},e(F,[2,20]),e(F,[2,21]),e(F,[2,22]),e(F,[2,23]),e(F,[2,24]),e(F,[2,25]),e(de,[2,49]),e(de,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:pe,56:fe,57:ye,58:_e,59:ge,60:Ee,61:Re},{52:54,55:pe,56:fe,57:ye,58:_e,59:ge,60:Ee,61:Re},{5:[1,55]},{5:[1,56]},{53:[1,57]},e(O,[2,40]),e(O,[2,41]),e(O,[2,42]),e(O,[2,43]),e(O,[2,44]),e(O,[2,45]),e(O,[2,46]),{54:[1,58]},{5:M,20:59,21:D,24:P,26:Y,28:U,30:B},{5:j,30:z,46:66,47:X,49:J},{23:71,62:k,63:x},{23:72,62:k,63:x},e(m,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:M,20:77,21:D,24:P,26:Y,28:U,30:B},e(m,[2,19]),e(m,[2,33]),{22:[1,78]},{22:[1,79]},{5:j,30:z,46:80,47:X,49:J},e(m,[2,37]),e(m,[2,38]),e(m,[2,39]),{23:81,62:k,63:x},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},e(m,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},e(m,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:M,20:106,21:D,24:P,26:Y,28:U,30:B},{5:M,20:107,21:D,24:P,26:Y,28:U,30:B},{5:M,20:108,21:D,24:P,26:Y,28:U,30:B},{5:M,20:109,21:D,24:P,26:Y,28:U,30:B},{5:j,30:z,46:110,47:X,49:J},{5:j,30:z,46:111,47:X,49:J},e(m,[2,14]),e(m,[2,15]),e(m,[2,16]),e(m,[2,17]),e(m,[2,34]),e(m,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:function(i,n){if(n.recoverable)this.trace(i);else{var a=new Error(i);throw a.hash=n,a}},parse:function(i){var n=this,a=[0],r=[],f=[null],s=[],W=this.table,_="",Z=0,me=0,Ve=2,Ie=1,qe=s.slice.call(arguments,1),E=Object.create(this.lexer),L={yy:{}};for(var ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ne)&&(L.yy[ne]=this.yy[ne]);E.setInput(i,L.yy),L.yy.lexer=E,L.yy.parser=this,typeof E.yylloc>"u"&&(E.yylloc={});var se=E.yylloc;s.push(se);var Oe=E.options&&E.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Le(){var $;return $=r.pop()||E.lex()||Ie,typeof $!="number"&&($ instanceof Array&&(r=$,$=r.pop()),$=n.symbols_[$]||$),$}for(var I,C,S,ae,Q={},ee,w,be,te;;){if(C=a[a.length-1],this.defaultActions[C]?S=this.defaultActions[C]:((I===null||typeof I>"u")&&(I=Le()),S=W[C]&&W[C][I]),typeof S>"u"||!S.length||!S[0]){var le="";te=[];for(ee in W[C])this.terminals_[ee]&&ee>Ve&&te.push("'"+this.terminals_[ee]+"'");E.showPosition?le="Parse error on line "+(Z+1)+`: `+E.showPosition()+` Expecting `+te.join(", ")+", got '"+(this.terminals_[I]||I)+"'":le="Parse error on line "+(Z+1)+": Unexpected "+(I==Ie?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(le,{text:E.match,token:this.terminals_[I]||I,line:E.yylineno,loc:se,expected:te})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+C+", token: "+I);switch(S[0]){case 1:a.push(I),f.push(E.yytext),s.push(E.yylloc),a.push(S[1]),I=null,me=E.yyleng,_=E.yytext,Z=E.yylineno,se=E.yylloc;break;case 2:if(w=this.productions_[S[1]][1],Q.$=f[f.length-w],Q._$={first_line:s[s.length-(w||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(w||1)].first_column,last_column:s[s.length-1].last_column},Oe&&(Q._$.range=[s[s.length-(w||1)].range[0],s[s.length-1].range[1]]),ae=this.performAction.apply(Q,[_,me,Z,L.yy,S[1],f,s].concat(qe)),typeof ae<"u")return ae;w&&(a=a.slice(0,-1*w*2),f=f.slice(0,-1*w),s=s.slice(0,-1*w)),a.push(this.productions_[S[1]][0]),f.push(Q.$),s.push(Q._$),be=W[a[a.length-2]][a[a.length-1]],a.push(be);break;case 3:return!0}}return!0}},$e=function(){var V={EOF:1,parseError:function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},setInput:function(i,n){return this.yy=n||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var n=i.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var n=i.length,a=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var f=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===r.length?this.yylloc.first_column:0)+r[r.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+` diff --git a/assets/result-backend.html-BC9Oa3OE.js b/assets/result-backend.html-DUmMr-aN.js similarity index 97% rename from assets/result-backend.html-BC9Oa3OE.js rename to assets/result-backend.html-DUmMr-aN.js index 7d6104e..e23e757 100644 --- a/assets/result-backend.html-BC9Oa3OE.js +++ b/assets/result-backend.html-DUmMr-aN.js @@ -1,4 +1,4 @@ -import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as a,a as t}from"./app-BQ_RvZRm.js";const e={},o=t(`

Result backend

Result backends are used to store information about task execution. To create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBackend class.

Here's a minimal example of a result backend:

from typing import TypeVar
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as a,a as t}from"./app-B7rxM88G.js";const e={},o=t(`

Result backend

Result backends are used to store information about task execution. To create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBackend class.

Here's a minimal example of a result backend:

from typing import TypeVar
 
 from taskiq import TaskiqResult
 from taskiq.abc.result_backend import AsyncResultBackend
@@ -60,4 +60,4 @@ _ReturnType = TypeVarreturn ...  # type: ignore
-

Cool tip!

It's a good practice to skip fetching logs from the storage unless with_logs=True is explicitly specified.

Important note!

with_logs param is now deprecated. It will be removed in future releases.

`,6),p=[o];function i(c,l){return s(),a("div",null,p)}const k=n(e,[["render",i],["__file","result-backend.html.vue"]]),d=JSON.parse(`{"path":"/extending-taskiq/result-backend.html","title":"Result backend","lang":"en-US","frontmatter":{"order":3,"description":"Result backend Result backends are used to store information about task execution. To create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBacken...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/result-backend.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Result backend"}],["meta",{"property":"og:description","content":"Result backend Result backends are used to store information about task execution. To create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBacken..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Result backend\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/result-backend.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Result backends are used to store information about task execution.\\nTo create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBackend class.

\\n

Here's a minimal example of a result backend:

\\n
from typing import TypeVar\\n\\nfrom taskiq import TaskiqResult\\nfrom taskiq.abc.result_backend import AsyncResultBackend\\n\\n_ReturnType = TypeVar(\\"_ReturnType\\")\\n\\n\\nclass MyResultBackend(AsyncResultBackend[_ReturnType]):\\n    async def startup(self) -> None:\\n        \\"\\"\\"Do something when starting broker.\\"\\"\\"\\n\\n    async def shutdown(self) -> None:\\n        \\"\\"\\"Do something on shutdown.\\"\\"\\"\\n\\n    async def set_result(\\n        self,\\n        task_id: str,\\n        result: TaskiqResult[_ReturnType],\\n    ) -> None:\\n        \\"\\"\\"\\n        Set result in your backend.\\n\\n        :param task_id: current task id.\\n        :param result: result of execution.\\n        \\"\\"\\"\\n\\n    async def get_result(\\n        self,\\n        task_id: str,\\n        with_logs: bool = False,\\n    ) -> TaskiqResult[_ReturnType]:\\n        \\"\\"\\"\\n        Here you must retrieve result by id.\\n\\n        Logs is a part of a result.\\n        Here we have a parameter whether you want to\\n        fetch result with logs or not, because logs\\n        can have a lot of info and sometimes it's critical\\n        to get only needed information.\\n\\n        :param task_id: id of a task.\\n        :param with_logs: whether to fetch logs.\\n        :return: result.\\n        \\"\\"\\"\\n        return ...  # type: ignore\\n\\n    async def is_result_ready(\\n        self,\\n        task_id: str,\\n    ) -> bool:\\n        \\"\\"\\"\\n        Check if result exists.\\n\\n        This function must check whether result\\n        is available in your result backend\\n        without fetching the result.\\n\\n        :param task_id: id of a task.\\n        :return: True if result is ready.\\n        \\"\\"\\"\\n        return ...  # type: ignore\\n
"}`);export{k as comp,d as data}; +

Cool tip!

It's a good practice to skip fetching logs from the storage unless with_logs=True is explicitly specified.

Important note!

with_logs param is now deprecated. It will be removed in future releases.

`,6),p=[o];function i(c,l){return s(),a("div",null,p)}const k=n(e,[["render",i],["__file","result-backend.html.vue"]]),d=JSON.parse(`{"path":"/extending-taskiq/result-backend.html","title":"Result backend","lang":"en-US","frontmatter":{"order":3,"description":"Result backend Result backends are used to store information about task execution. To create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBacken...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/result-backend.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Result backend"}],["meta",{"property":"og:description","content":"Result backend Result backends are used to store information about task execution. To create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBacken..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Result backend\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/result-backend.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Result backends are used to store information about task execution.\\nTo create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBackend class.

\\n

Here's a minimal example of a result backend:

\\n
from typing import TypeVar\\n\\nfrom taskiq import TaskiqResult\\nfrom taskiq.abc.result_backend import AsyncResultBackend\\n\\n_ReturnType = TypeVar(\\"_ReturnType\\")\\n\\n\\nclass MyResultBackend(AsyncResultBackend[_ReturnType]):\\n    async def startup(self) -> None:\\n        \\"\\"\\"Do something when starting broker.\\"\\"\\"\\n\\n    async def shutdown(self) -> None:\\n        \\"\\"\\"Do something on shutdown.\\"\\"\\"\\n\\n    async def set_result(\\n        self,\\n        task_id: str,\\n        result: TaskiqResult[_ReturnType],\\n    ) -> None:\\n        \\"\\"\\"\\n        Set result in your backend.\\n\\n        :param task_id: current task id.\\n        :param result: result of execution.\\n        \\"\\"\\"\\n\\n    async def get_result(\\n        self,\\n        task_id: str,\\n        with_logs: bool = False,\\n    ) -> TaskiqResult[_ReturnType]:\\n        \\"\\"\\"\\n        Here you must retrieve result by id.\\n\\n        Logs is a part of a result.\\n        Here we have a parameter whether you want to\\n        fetch result with logs or not, because logs\\n        can have a lot of info and sometimes it's critical\\n        to get only needed information.\\n\\n        :param task_id: id of a task.\\n        :param with_logs: whether to fetch logs.\\n        :return: result.\\n        \\"\\"\\"\\n        return ...  # type: ignore\\n\\n    async def is_result_ready(\\n        self,\\n        task_id: str,\\n    ) -> bool:\\n        \\"\\"\\"\\n        Check if result exists.\\n\\n        This function must check whether result\\n        is available in your result backend\\n        without fetching the result.\\n\\n        :param task_id: id of a task.\\n        :return: True if result is ready.\\n        \\"\\"\\"\\n        return ...  # type: ignore\\n
"}`);export{k as comp,d as data}; diff --git a/assets/result-backends.html-FfIc_G19.js b/assets/result-backends.html-1sXIWCy8.js similarity index 87% rename from assets/result-backends.html-FfIc_G19.js rename to assets/result-backends.html-1sXIWCy8.js index 9ab7418..7b921f2 100644 --- a/assets/result-backends.html-FfIc_G19.js +++ b/assets/result-backends.html-1sXIWCy8.js @@ -1,2 +1,2 @@ -import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as i,c as o,b as t,d as e,e as s,a as n}from"./app-BQ_RvZRm.js";const c={},d=n('

Available result backends

Result backends are used to store execution results. This includes:

  • return value;
  • Execution time in seconds.

DummyResultBackend

This result backend doesn't do anything. It doesn't store results and cannot be used in cases, where you need actual results.

This broker will always return None for any return_value. Please be careful.

Redis result backend

',7),u={href:"https://pypi.org/project/taskiq-redis/",target:"_blank",rel:"noopener noreferrer"},p=n(`
pip install taskiq-redis
-
`,1),m={href:"https://github.com/taskiq-python/taskiq-redis",target:"_blank",rel:"noopener noreferrer"};function h(b,k){const a=l("ExternalLinkIcon");return i(),o("div",null,[d,t("p",null,[e("This result backend is not part of the core taskiq library. You can install it as a separate package "),t("a",u,[e("taskiq-redis"),s(a)]),e(".")]),p,t("p",null,[e("You can read more about parameters and abilities of this broker in "),t("a",m,[e("README.md"),s(a)]),e(".")])])}const _=r(c,[["render",h],["__file","result-backends.html.vue"]]),g=JSON.parse(`{"path":"/available-components/result-backends.html","title":"Available result backends","lang":"en-US","frontmatter":{"order":3,"description":"Available result backends Result backends are used to store execution results. This includes: return value; Execution time in seconds. DummyResultBackend This result backend doe...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/available-components/result-backends.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Available result backends"}],["meta",{"property":"og:description","content":"Available result backends Result backends are used to store execution results. This includes: return value; Execution time in seconds. DummyResultBackend This result backend doe..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Available result backends\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"DummyResultBackend","slug":"dummyresultbackend","link":"#dummyresultbackend","children":[]},{"level":2,"title":"Redis result backend","slug":"redis-result-backend","link":"#redis-result-backend","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"available-components/result-backends.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Result backends are used to store execution results.\\nThis includes:

\\n
    \\n
  • return value;
  • \\n
  • Execution time in seconds.
  • \\n
\\n

DummyResultBackend

\\n

This result backend doesn't do anything. It doesn't store results and cannot be used in cases,\\nwhere you need actual results.

"}`);export{_ as comp,g as data}; +import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as i,c as o,b as t,d as e,e as s,a as n}from"./app-B7rxM88G.js";const c={},d=n('

Available result backends

Result backends are used to store execution results. This includes:

  • return value;
  • Execution time in seconds.

DummyResultBackend

This result backend doesn't do anything. It doesn't store results and cannot be used in cases, where you need actual results.

This broker will always return None for any return_value. Please be careful.

Redis result backend

',7),u={href:"https://pypi.org/project/taskiq-redis/",target:"_blank",rel:"noopener noreferrer"},p=n(`
pip install taskiq-redis
+
`,1),m={href:"https://github.com/taskiq-python/taskiq-redis",target:"_blank",rel:"noopener noreferrer"};function h(b,k){const a=l("ExternalLinkIcon");return i(),o("div",null,[d,t("p",null,[e("This result backend is not part of the core taskiq library. You can install it as a separate package "),t("a",u,[e("taskiq-redis"),s(a)]),e(".")]),p,t("p",null,[e("You can read more about parameters and abilities of this broker in "),t("a",m,[e("README.md"),s(a)]),e(".")])])}const _=r(c,[["render",h],["__file","result-backends.html.vue"]]),g=JSON.parse(`{"path":"/available-components/result-backends.html","title":"Available result backends","lang":"en-US","frontmatter":{"order":3,"description":"Available result backends Result backends are used to store execution results. This includes: return value; Execution time in seconds. DummyResultBackend This result backend doe...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/available-components/result-backends.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Available result backends"}],["meta",{"property":"og:description","content":"Available result backends Result backends are used to store execution results. This includes: return value; Execution time in seconds. DummyResultBackend This result backend doe..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Available result backends\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"DummyResultBackend","slug":"dummyresultbackend","link":"#dummyresultbackend","children":[]},{"level":2,"title":"Redis result backend","slug":"redis-result-backend","link":"#redis-result-backend","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"available-components/result-backends.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Result backends are used to store execution results.\\nThis includes:

\\n
    \\n
  • return value;
  • \\n
  • Execution time in seconds.
  • \\n
\\n

DummyResultBackend

\\n

This result backend doesn't do anything. It doesn't store results and cannot be used in cases,\\nwhere you need actual results.

"}`);export{_ as comp,g as data}; diff --git a/assets/sankeyDiagram-707fac0f-C8B1JfeB.js b/assets/sankeyDiagram-707fac0f-ZjD0l9d1.js similarity index 99% rename from assets/sankeyDiagram-707fac0f-C8B1JfeB.js rename to assets/sankeyDiagram-707fac0f-ZjD0l9d1.js index 7a77606..10a8f34 100644 --- a/assets/sankeyDiagram-707fac0f-C8B1JfeB.js +++ b/assets/sankeyDiagram-707fac0f-ZjD0l9d1.js @@ -1,4 +1,4 @@ -import{c as rt,g as mt,s as kt,a as _t,b as xt,y as vt,x as bt,A as wt,j as St,v as Lt,h as G,u as Et}from"./mermaid.core-Cio1iadR.js";import{o as At}from"./ordinal-Cboi1Yqb.js";import{s as Tt}from"./Tableau10-B-NsZVaP.js";import"./app-BQ_RvZRm.js";import"./init-Gi6I4Gst.js";function ot(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s=a)&&(s=a);else{let a=-1;for(let u of t)(u=n(u,++a,t))!=null&&(s=u)&&(s=u)}return s}function yt(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s>a||s===void 0&&a>=a)&&(s=a);else{let a=-1;for(let u of t)(u=n(u,++a,t))!=null&&(s>u||s===void 0&&u>=u)&&(s=u)}return s}function Z(t,n){let s=0;if(n===void 0)for(let a of t)(a=+a)&&(s+=a);else{let a=-1;for(let u of t)(u=+n(u,++a,t))&&(s+=u)}return s}function Mt(t){return t.target.depth}function Nt(t){return t.depth}function Pt(t,n){return n-1-t.height}function dt(t,n){return t.sourceLinks.length?t.depth:n-1}function Ct(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?yt(t.sourceLinks,Mt)-1:0}function Y(t){return function(){return t}}function lt(t,n){return H(t.source,n.source)||t.index-n.index}function at(t,n){return H(t.target,n.target)||t.index-n.index}function H(t,n){return t.y0-n.y0}function J(t){return t.value}function It(t){return t.index}function $t(t){return t.nodes}function Ot(t){return t.links}function ct(t,n){const s=t.get(n);if(!s)throw new Error("missing: "+n);return s}function ut({nodes:t}){for(const n of t){let s=n.y0,a=s;for(const u of n.sourceLinks)u.y0=s+u.width/2,s+=u.width;for(const u of n.targetLinks)u.y1=a+u.width/2,a+=u.width}}function jt(){let t=0,n=0,s=1,a=1,u=24,_=8,g,p=It,i=dt,o,c,m=$t,b=Ot,y=6;function x(){const e={nodes:m.apply(null,arguments),links:b.apply(null,arguments)};return E(e),L(e),A(e),N(e),S(e),ut(e),e}x.update=function(e){return ut(e),e},x.nodeId=function(e){return arguments.length?(p=typeof e=="function"?e:Y(e),x):p},x.nodeAlign=function(e){return arguments.length?(i=typeof e=="function"?e:Y(e),x):i},x.nodeSort=function(e){return arguments.length?(o=e,x):o},x.nodeWidth=function(e){return arguments.length?(u=+e,x):u},x.nodePadding=function(e){return arguments.length?(_=g=+e,x):_},x.nodes=function(e){return arguments.length?(m=typeof e=="function"?e:Y(e),x):m},x.links=function(e){return arguments.length?(b=typeof e=="function"?e:Y(e),x):b},x.linkSort=function(e){return arguments.length?(c=e,x):c},x.size=function(e){return arguments.length?(t=n=0,s=+e[0],a=+e[1],x):[s-t,a-n]},x.extent=function(e){return arguments.length?(t=+e[0][0],s=+e[1][0],n=+e[0][1],a=+e[1][1],x):[[t,n],[s,a]]},x.iterations=function(e){return arguments.length?(y=+e,x):y};function E({nodes:e,links:f}){for(const[h,r]of e.entries())r.index=h,r.sourceLinks=[],r.targetLinks=[];const l=new Map(e.map((h,r)=>[p(h,r,e),h]));for(const[h,r]of f.entries()){r.index=h;let{source:k,target:v}=r;typeof k!="object"&&(k=r.source=ct(l,k)),typeof v!="object"&&(v=r.target=ct(l,v)),k.sourceLinks.push(r),v.targetLinks.push(r)}if(c!=null)for(const{sourceLinks:h,targetLinks:r}of e)h.sort(c),r.sort(c)}function L({nodes:e}){for(const f of e)f.value=f.fixedValue===void 0?Math.max(Z(f.sourceLinks,J),Z(f.targetLinks,J)):f.fixedValue}function A({nodes:e}){const f=e.length;let l=new Set(e),h=new Set,r=0;for(;l.size;){for(const k of l){k.depth=r;for(const{target:v}of k.sourceLinks)h.add(v)}if(++r>f)throw new Error("circular link");l=h,h=new Set}}function N({nodes:e}){const f=e.length;let l=new Set(e),h=new Set,r=0;for(;l.size;){for(const k of l){k.height=r;for(const{source:v}of k.targetLinks)h.add(v)}if(++r>f)throw new Error("circular link");l=h,h=new Set}}function I({nodes:e}){const f=ot(e,r=>r.depth)+1,l=(s-t-u)/(f-1),h=new Array(f);for(const r of e){const k=Math.max(0,Math.min(f-1,Math.floor(i.call(null,r,f))));r.layer=k,r.x0=t+k*l,r.x1=r.x0+u,h[k]?h[k].push(r):h[k]=[r]}if(o)for(const r of h)r.sort(o);return h}function j(e){const f=yt(e,l=>(a-n-(l.length-1)*g)/Z(l,J));for(const l of e){let h=n;for(const r of l){r.y0=h,r.y1=h+r.value*f,h=r.y1+g;for(const k of r.sourceLinks)k.width=k.value*f}h=(a-h+g)/(l.length+1);for(let r=0;rl.length)-1)),j(f);for(let l=0;l0))continue;let U=(R/z-v.y0)*f;v.y0+=U,v.y1+=U,w(v)}o===void 0&&k.sort(H),P(k,l)}}function O(e,f,l){for(let h=e.length,r=h-2;r>=0;--r){const k=e[r];for(const v of k){let R=0,z=0;for(const{target:W,value:K}of v.sourceLinks){let F=K*(W.layer-v.layer);R+=V(v,W)*F,z+=F}if(!(z>0))continue;let U=(R/z-v.y0)*f;v.y0+=U,v.y1+=U,w(v)}o===void 0&&k.sort(H),P(k,l)}}function P(e,f){const l=e.length>>1,h=e[l];d(e,h.y0-g,l-1,f),C(e,h.y1+g,l+1,f),d(e,a,e.length-1,f),C(e,n,0,f)}function C(e,f,l,h){for(;l1e-6&&(r.y0+=k,r.y1+=k),f=r.y1+g}}function d(e,f,l,h){for(;l>=0;--l){const r=e[l],k=(r.y1-f)*h;k>1e-6&&(r.y0-=k,r.y1-=k),f=r.y0-g}}function w({sourceLinks:e,targetLinks:f}){if(c===void 0){for(const{source:{sourceLinks:l}}of f)l.sort(at);for(const{target:{targetLinks:l}}of e)l.sort(lt)}}function $(e){if(c===void 0)for(const{sourceLinks:f,targetLinks:l}of e)f.sort(at),l.sort(lt)}function T(e,f){let l=e.y0-(e.sourceLinks.length-1)*g/2;for(const{target:h,width:r}of e.sourceLinks){if(h===f)break;l+=r+g}for(const{source:h,width:r}of f.targetLinks){if(h===e)break;l-=r}return l}function V(e,f){let l=f.y0-(f.targetLinks.length-1)*g/2;for(const{source:h,width:r}of f.targetLinks){if(h===e)break;l+=r+g}for(const{target:h,width:r}of e.sourceLinks){if(h===f)break;l-=r}return l}return x}var tt=Math.PI,et=2*tt,D=1e-6,zt=et-D;function nt(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function gt(){return new nt}nt.prototype=gt.prototype={constructor:nt,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,s,a){this._+="Q"+ +t+","+ +n+","+(this._x1=+s)+","+(this._y1=+a)},bezierCurveTo:function(t,n,s,a,u,_){this._+="C"+ +t+","+ +n+","+ +s+","+ +a+","+(this._x1=+u)+","+(this._y1=+_)},arcTo:function(t,n,s,a,u){t=+t,n=+n,s=+s,a=+a,u=+u;var _=this._x1,g=this._y1,p=s-t,i=a-n,o=_-t,c=g-n,m=o*o+c*c;if(u<0)throw new Error("negative radius: "+u);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(m>D)if(!(Math.abs(c*p-i*o)>D)||!u)this._+="L"+(this._x1=t)+","+(this._y1=n);else{var b=s-_,y=a-g,x=p*p+i*i,E=b*b+y*y,L=Math.sqrt(x),A=Math.sqrt(m),N=u*Math.tan((tt-Math.acos((x+m-E)/(2*L*A)))/2),I=N/A,j=N/L;Math.abs(I-1)>D&&(this._+="L"+(t+I*o)+","+(n+I*c)),this._+="A"+u+","+u+",0,0,"+ +(c*b>o*y)+","+(this._x1=t+j*p)+","+(this._y1=n+j*i)}},arc:function(t,n,s,a,u,_){t=+t,n=+n,s=+s,_=!!_;var g=s*Math.cos(a),p=s*Math.sin(a),i=t+g,o=n+p,c=1^_,m=_?a-u:u-a;if(s<0)throw new Error("negative radius: "+s);this._x1===null?this._+="M"+i+","+o:(Math.abs(this._x1-i)>D||Math.abs(this._y1-o)>D)&&(this._+="L"+i+","+o),s&&(m<0&&(m=m%et+et),m>zt?this._+="A"+s+","+s+",0,1,"+c+","+(t-g)+","+(n-p)+"A"+s+","+s+",0,1,"+c+","+(this._x1=i)+","+(this._y1=o):m>D&&(this._+="A"+s+","+s+",0,"+ +(m>=tt)+","+c+","+(this._x1=t+s*Math.cos(u))+","+(this._y1=n+s*Math.sin(u))))},rect:function(t,n,s,a){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +s+"v"+ +a+"h"+-s+"Z"},toString:function(){return this._}};function ht(t){return function(){return t}}function Dt(t){return t[0]}function Bt(t){return t[1]}var Vt=Array.prototype.slice;function Rt(t){return t.source}function Ut(t){return t.target}function Wt(t){var n=Rt,s=Ut,a=Dt,u=Bt,_=null;function g(){var p,i=Vt.call(arguments),o=n.apply(this,i),c=s.apply(this,i);if(_||(_=p=gt()),t(_,+a.apply(this,(i[0]=o,i)),+u.apply(this,i),+a.apply(this,(i[0]=c,i)),+u.apply(this,i)),p)return _=null,p+""||null}return g.source=function(p){return arguments.length?(n=p,g):n},g.target=function(p){return arguments.length?(s=p,g):s},g.x=function(p){return arguments.length?(a=typeof p=="function"?p:ht(+p),g):a},g.y=function(p){return arguments.length?(u=typeof p=="function"?p:ht(+p),g):u},g.context=function(p){return arguments.length?(_=p??null,g):_},g}function Ft(t,n,s,a,u){t.moveTo(n,s),t.bezierCurveTo(n=(n+a)/2,s,n,u,a,u)}function Gt(){return Wt(Ft)}function Yt(t){return[t.source.x1,t.y0]}function Ht(t){return[t.target.x0,t.y1]}function Xt(){return Gt().source(Yt).target(Ht)}var it=function(){var t=function(p,i,o,c){for(o=o||{},c=p.length;c--;o[p[c]]=i);return o},n=[1,9],s=[1,10],a=[1,5,10,12],u={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(i,o,c,m,b,y,x){var E=y.length-1;switch(b){case 7:const L=m.findOrCreateNode(y[E-4].trim().replaceAll('""','"')),A=m.findOrCreateNode(y[E-2].trim().replaceAll('""','"')),N=parseFloat(y[E].trim());m.addLink(L,A,N);break;case 8:case 9:case 11:this.$=y[E];break;case 10:this.$=y[E-1];break}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:n,20:s},{1:[2,6],7:11,10:[1,12]},t(s,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(a,[2,8]),t(a,[2,9]),{19:[1,16]},t(a,[2,11]),{1:[2,1]},{1:[2,5]},t(s,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:n,20:s},{15:18,16:7,17:8,18:n,20:s},{18:[1,19]},t(s,[2,3]),{12:[1,20]},t(a,[2,10]),{15:21,16:7,17:8,18:n,20:s},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(i,o){if(o.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=o,c}},parse:function(i){var o=this,c=[0],m=[],b=[null],y=[],x=this.table,E="",L=0,A=0,N=2,I=1,j=y.slice.call(arguments,1),S=Object.create(this.lexer),M={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(M.yy[O]=this.yy[O]);S.setInput(i,M.yy),M.yy.lexer=S,M.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var P=S.yylloc;y.push(P);var C=S.options&&S.options.ranges;typeof M.yy.parseError=="function"?this.parseError=M.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function d(){var v;return v=m.pop()||S.lex()||I,typeof v!="number"&&(v instanceof Array&&(m=v,v=m.pop()),v=o.symbols_[v]||v),v}for(var w,$,T,V,e={},f,l,h,r;;){if($=c[c.length-1],this.defaultActions[$]?T=this.defaultActions[$]:((w===null||typeof w>"u")&&(w=d()),T=x[$]&&x[$][w]),typeof T>"u"||!T.length||!T[0]){var k="";r=[];for(f in x[$])this.terminals_[f]&&f>N&&r.push("'"+this.terminals_[f]+"'");S.showPosition?k="Parse error on line "+(L+1)+`: +import{c as rt,g as mt,s as kt,a as _t,b as xt,y as vt,x as bt,A as wt,j as St,v as Lt,h as G,u as Et}from"./mermaid.core-D8sVPjx9.js";import{o as At}from"./ordinal-Cboi1Yqb.js";import{s as Tt}from"./Tableau10-B-NsZVaP.js";import"./app-B7rxM88G.js";import"./init-Gi6I4Gst.js";function ot(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s=a)&&(s=a);else{let a=-1;for(let u of t)(u=n(u,++a,t))!=null&&(s=u)&&(s=u)}return s}function yt(t,n){let s;if(n===void 0)for(const a of t)a!=null&&(s>a||s===void 0&&a>=a)&&(s=a);else{let a=-1;for(let u of t)(u=n(u,++a,t))!=null&&(s>u||s===void 0&&u>=u)&&(s=u)}return s}function Z(t,n){let s=0;if(n===void 0)for(let a of t)(a=+a)&&(s+=a);else{let a=-1;for(let u of t)(u=+n(u,++a,t))&&(s+=u)}return s}function Mt(t){return t.target.depth}function Nt(t){return t.depth}function Pt(t,n){return n-1-t.height}function dt(t,n){return t.sourceLinks.length?t.depth:n-1}function Ct(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?yt(t.sourceLinks,Mt)-1:0}function Y(t){return function(){return t}}function lt(t,n){return H(t.source,n.source)||t.index-n.index}function at(t,n){return H(t.target,n.target)||t.index-n.index}function H(t,n){return t.y0-n.y0}function J(t){return t.value}function It(t){return t.index}function $t(t){return t.nodes}function Ot(t){return t.links}function ct(t,n){const s=t.get(n);if(!s)throw new Error("missing: "+n);return s}function ut({nodes:t}){for(const n of t){let s=n.y0,a=s;for(const u of n.sourceLinks)u.y0=s+u.width/2,s+=u.width;for(const u of n.targetLinks)u.y1=a+u.width/2,a+=u.width}}function jt(){let t=0,n=0,s=1,a=1,u=24,_=8,g,p=It,i=dt,o,c,m=$t,b=Ot,y=6;function x(){const e={nodes:m.apply(null,arguments),links:b.apply(null,arguments)};return E(e),L(e),A(e),N(e),S(e),ut(e),e}x.update=function(e){return ut(e),e},x.nodeId=function(e){return arguments.length?(p=typeof e=="function"?e:Y(e),x):p},x.nodeAlign=function(e){return arguments.length?(i=typeof e=="function"?e:Y(e),x):i},x.nodeSort=function(e){return arguments.length?(o=e,x):o},x.nodeWidth=function(e){return arguments.length?(u=+e,x):u},x.nodePadding=function(e){return arguments.length?(_=g=+e,x):_},x.nodes=function(e){return arguments.length?(m=typeof e=="function"?e:Y(e),x):m},x.links=function(e){return arguments.length?(b=typeof e=="function"?e:Y(e),x):b},x.linkSort=function(e){return arguments.length?(c=e,x):c},x.size=function(e){return arguments.length?(t=n=0,s=+e[0],a=+e[1],x):[s-t,a-n]},x.extent=function(e){return arguments.length?(t=+e[0][0],s=+e[1][0],n=+e[0][1],a=+e[1][1],x):[[t,n],[s,a]]},x.iterations=function(e){return arguments.length?(y=+e,x):y};function E({nodes:e,links:f}){for(const[h,r]of e.entries())r.index=h,r.sourceLinks=[],r.targetLinks=[];const l=new Map(e.map((h,r)=>[p(h,r,e),h]));for(const[h,r]of f.entries()){r.index=h;let{source:k,target:v}=r;typeof k!="object"&&(k=r.source=ct(l,k)),typeof v!="object"&&(v=r.target=ct(l,v)),k.sourceLinks.push(r),v.targetLinks.push(r)}if(c!=null)for(const{sourceLinks:h,targetLinks:r}of e)h.sort(c),r.sort(c)}function L({nodes:e}){for(const f of e)f.value=f.fixedValue===void 0?Math.max(Z(f.sourceLinks,J),Z(f.targetLinks,J)):f.fixedValue}function A({nodes:e}){const f=e.length;let l=new Set(e),h=new Set,r=0;for(;l.size;){for(const k of l){k.depth=r;for(const{target:v}of k.sourceLinks)h.add(v)}if(++r>f)throw new Error("circular link");l=h,h=new Set}}function N({nodes:e}){const f=e.length;let l=new Set(e),h=new Set,r=0;for(;l.size;){for(const k of l){k.height=r;for(const{source:v}of k.targetLinks)h.add(v)}if(++r>f)throw new Error("circular link");l=h,h=new Set}}function I({nodes:e}){const f=ot(e,r=>r.depth)+1,l=(s-t-u)/(f-1),h=new Array(f);for(const r of e){const k=Math.max(0,Math.min(f-1,Math.floor(i.call(null,r,f))));r.layer=k,r.x0=t+k*l,r.x1=r.x0+u,h[k]?h[k].push(r):h[k]=[r]}if(o)for(const r of h)r.sort(o);return h}function j(e){const f=yt(e,l=>(a-n-(l.length-1)*g)/Z(l,J));for(const l of e){let h=n;for(const r of l){r.y0=h,r.y1=h+r.value*f,h=r.y1+g;for(const k of r.sourceLinks)k.width=k.value*f}h=(a-h+g)/(l.length+1);for(let r=0;rl.length)-1)),j(f);for(let l=0;l0))continue;let U=(R/z-v.y0)*f;v.y0+=U,v.y1+=U,w(v)}o===void 0&&k.sort(H),P(k,l)}}function O(e,f,l){for(let h=e.length,r=h-2;r>=0;--r){const k=e[r];for(const v of k){let R=0,z=0;for(const{target:W,value:K}of v.sourceLinks){let F=K*(W.layer-v.layer);R+=V(v,W)*F,z+=F}if(!(z>0))continue;let U=(R/z-v.y0)*f;v.y0+=U,v.y1+=U,w(v)}o===void 0&&k.sort(H),P(k,l)}}function P(e,f){const l=e.length>>1,h=e[l];d(e,h.y0-g,l-1,f),C(e,h.y1+g,l+1,f),d(e,a,e.length-1,f),C(e,n,0,f)}function C(e,f,l,h){for(;l1e-6&&(r.y0+=k,r.y1+=k),f=r.y1+g}}function d(e,f,l,h){for(;l>=0;--l){const r=e[l],k=(r.y1-f)*h;k>1e-6&&(r.y0-=k,r.y1-=k),f=r.y0-g}}function w({sourceLinks:e,targetLinks:f}){if(c===void 0){for(const{source:{sourceLinks:l}}of f)l.sort(at);for(const{target:{targetLinks:l}}of e)l.sort(lt)}}function $(e){if(c===void 0)for(const{sourceLinks:f,targetLinks:l}of e)f.sort(at),l.sort(lt)}function T(e,f){let l=e.y0-(e.sourceLinks.length-1)*g/2;for(const{target:h,width:r}of e.sourceLinks){if(h===f)break;l+=r+g}for(const{source:h,width:r}of f.targetLinks){if(h===e)break;l-=r}return l}function V(e,f){let l=f.y0-(f.targetLinks.length-1)*g/2;for(const{source:h,width:r}of f.targetLinks){if(h===e)break;l+=r+g}for(const{target:h,width:r}of e.sourceLinks){if(h===f)break;l-=r}return l}return x}var tt=Math.PI,et=2*tt,D=1e-6,zt=et-D;function nt(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function gt(){return new nt}nt.prototype=gt.prototype={constructor:nt,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,s,a){this._+="Q"+ +t+","+ +n+","+(this._x1=+s)+","+(this._y1=+a)},bezierCurveTo:function(t,n,s,a,u,_){this._+="C"+ +t+","+ +n+","+ +s+","+ +a+","+(this._x1=+u)+","+(this._y1=+_)},arcTo:function(t,n,s,a,u){t=+t,n=+n,s=+s,a=+a,u=+u;var _=this._x1,g=this._y1,p=s-t,i=a-n,o=_-t,c=g-n,m=o*o+c*c;if(u<0)throw new Error("negative radius: "+u);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(m>D)if(!(Math.abs(c*p-i*o)>D)||!u)this._+="L"+(this._x1=t)+","+(this._y1=n);else{var b=s-_,y=a-g,x=p*p+i*i,E=b*b+y*y,L=Math.sqrt(x),A=Math.sqrt(m),N=u*Math.tan((tt-Math.acos((x+m-E)/(2*L*A)))/2),I=N/A,j=N/L;Math.abs(I-1)>D&&(this._+="L"+(t+I*o)+","+(n+I*c)),this._+="A"+u+","+u+",0,0,"+ +(c*b>o*y)+","+(this._x1=t+j*p)+","+(this._y1=n+j*i)}},arc:function(t,n,s,a,u,_){t=+t,n=+n,s=+s,_=!!_;var g=s*Math.cos(a),p=s*Math.sin(a),i=t+g,o=n+p,c=1^_,m=_?a-u:u-a;if(s<0)throw new Error("negative radius: "+s);this._x1===null?this._+="M"+i+","+o:(Math.abs(this._x1-i)>D||Math.abs(this._y1-o)>D)&&(this._+="L"+i+","+o),s&&(m<0&&(m=m%et+et),m>zt?this._+="A"+s+","+s+",0,1,"+c+","+(t-g)+","+(n-p)+"A"+s+","+s+",0,1,"+c+","+(this._x1=i)+","+(this._y1=o):m>D&&(this._+="A"+s+","+s+",0,"+ +(m>=tt)+","+c+","+(this._x1=t+s*Math.cos(u))+","+(this._y1=n+s*Math.sin(u))))},rect:function(t,n,s,a){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +s+"v"+ +a+"h"+-s+"Z"},toString:function(){return this._}};function ht(t){return function(){return t}}function Dt(t){return t[0]}function Bt(t){return t[1]}var Vt=Array.prototype.slice;function Rt(t){return t.source}function Ut(t){return t.target}function Wt(t){var n=Rt,s=Ut,a=Dt,u=Bt,_=null;function g(){var p,i=Vt.call(arguments),o=n.apply(this,i),c=s.apply(this,i);if(_||(_=p=gt()),t(_,+a.apply(this,(i[0]=o,i)),+u.apply(this,i),+a.apply(this,(i[0]=c,i)),+u.apply(this,i)),p)return _=null,p+""||null}return g.source=function(p){return arguments.length?(n=p,g):n},g.target=function(p){return arguments.length?(s=p,g):s},g.x=function(p){return arguments.length?(a=typeof p=="function"?p:ht(+p),g):a},g.y=function(p){return arguments.length?(u=typeof p=="function"?p:ht(+p),g):u},g.context=function(p){return arguments.length?(_=p??null,g):_},g}function Ft(t,n,s,a,u){t.moveTo(n,s),t.bezierCurveTo(n=(n+a)/2,s,n,u,a,u)}function Gt(){return Wt(Ft)}function Yt(t){return[t.source.x1,t.y0]}function Ht(t){return[t.target.x0,t.y1]}function Xt(){return Gt().source(Yt).target(Ht)}var it=function(){var t=function(p,i,o,c){for(o=o||{},c=p.length;c--;o[p[c]]=i);return o},n=[1,9],s=[1,10],a=[1,5,10,12],u={trace:function(){},yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:function(i,o,c,m,b,y,x){var E=y.length-1;switch(b){case 7:const L=m.findOrCreateNode(y[E-4].trim().replaceAll('""','"')),A=m.findOrCreateNode(y[E-2].trim().replaceAll('""','"')),N=parseFloat(y[E].trim());m.addLink(L,A,N);break;case 8:case 9:case 11:this.$=y[E];break;case 10:this.$=y[E-1];break}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:n,20:s},{1:[2,6],7:11,10:[1,12]},t(s,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(a,[2,8]),t(a,[2,9]),{19:[1,16]},t(a,[2,11]),{1:[2,1]},{1:[2,5]},t(s,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:n,20:s},{15:18,16:7,17:8,18:n,20:s},{18:[1,19]},t(s,[2,3]),{12:[1,20]},t(a,[2,10]),{15:21,16:7,17:8,18:n,20:s},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:function(i,o){if(o.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=o,c}},parse:function(i){var o=this,c=[0],m=[],b=[null],y=[],x=this.table,E="",L=0,A=0,N=2,I=1,j=y.slice.call(arguments,1),S=Object.create(this.lexer),M={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(M.yy[O]=this.yy[O]);S.setInput(i,M.yy),M.yy.lexer=S,M.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var P=S.yylloc;y.push(P);var C=S.options&&S.options.ranges;typeof M.yy.parseError=="function"?this.parseError=M.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function d(){var v;return v=m.pop()||S.lex()||I,typeof v!="number"&&(v instanceof Array&&(m=v,v=m.pop()),v=o.symbols_[v]||v),v}for(var w,$,T,V,e={},f,l,h,r;;){if($=c[c.length-1],this.defaultActions[$]?T=this.defaultActions[$]:((w===null||typeof w>"u")&&(w=d()),T=x[$]&&x[$][w]),typeof T>"u"||!T.length||!T[0]){var k="";r=[];for(f in x[$])this.terminals_[f]&&f>N&&r.push("'"+this.terminals_[f]+"'");S.showPosition?k="Parse error on line "+(L+1)+`: `+S.showPosition()+` Expecting `+r.join(", ")+", got '"+(this.terminals_[w]||w)+"'":k="Parse error on line "+(L+1)+": Unexpected "+(w==I?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(k,{text:S.match,token:this.terminals_[w]||w,line:S.yylineno,loc:P,expected:r})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+w);switch(T[0]){case 1:c.push(w),b.push(S.yytext),y.push(S.yylloc),c.push(T[1]),w=null,A=S.yyleng,E=S.yytext,L=S.yylineno,P=S.yylloc;break;case 2:if(l=this.productions_[T[1]][1],e.$=b[b.length-l],e._$={first_line:y[y.length-(l||1)].first_line,last_line:y[y.length-1].last_line,first_column:y[y.length-(l||1)].first_column,last_column:y[y.length-1].last_column},C&&(e._$.range=[y[y.length-(l||1)].range[0],y[y.length-1].range[1]]),V=this.performAction.apply(e,[E,A,L,M.yy,T[1],b,y].concat(j)),typeof V<"u")return V;l&&(c=c.slice(0,-1*l*2),b=b.slice(0,-1*l),y=y.slice(0,-1*l)),c.push(this.productions_[T[1]][0]),b.push(e.$),y.push(e._$),h=x[c[c.length-2]][c[c.length-1]],c.push(h);break;case 3:return!0}}return!0}},_=function(){var p={EOF:1,parseError:function(o,c){if(this.yy.parser)this.yy.parser.parseError(o,c);else throw new Error(o)},setInput:function(i,o){return this.yy=o||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var o=i.match(/(?:\r\n?|\n).*/g);return o?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var o=i.length,c=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-o),this.offset-=o;var m=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var b=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===m.length?this.yylloc.first_column:0)+m[m.length-c.length].length-c[0].length:this.yylloc.first_column-o},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-o]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),o=new Array(i.length+1).join("-");return i+this.upcomingInput()+` diff --git a/assets/schedule-sources.html-B5ZlrPM_.js b/assets/schedule-sources.html-CWUhHItT.js similarity index 95% rename from assets/schedule-sources.html-B5ZlrPM_.js rename to assets/schedule-sources.html-CWUhHItT.js index e998503..9ce43f1 100644 --- a/assets/schedule-sources.html-B5ZlrPM_.js +++ b/assets/schedule-sources.html-CWUhHItT.js @@ -1,4 +1,4 @@ -import{_ as c}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as i,c as u,b as e,d as s,e as t,w as o,a as n}from"./app-BQ_RvZRm.js";const p={},r=n(`

Available schedule sources

These objects are used to fetch current schedule for tasks. Currently we have only one schedule source.

RedisScheduleSource

This source is capable of adding new schedules in runtime. It uses Redis as a storage for schedules. To use this source you need to install taskiq-redis package.

from taskiq_redis import RedisScheduleSource
+import{_ as c}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as i,c as u,b as e,d as s,e as t,w as o,a as n}from"./app-B7rxM88G.js";const p={},r=n(`

Available schedule sources

These objects are used to fetch current schedule for tasks. Currently we have only one schedule source.

RedisScheduleSource

This source is capable of adding new schedules in runtime. It uses Redis as a storage for schedules. To use this source you need to install taskiq-redis package.

from taskiq_redis import RedisScheduleSource
 
 from taskiq import TaskiqScheduler
 
@@ -27,4 +27,4 @@ scheduler = TaskiqScheduler=broker,
     sources=[LabelScheduleSource(broker)],
 )
-

Cool notice!

In order to resolve all labels correctly, don't forget to import all task modules using CLI interface.

`,3);function f(_,w){const a=l("RouteLink");return i(),u("div",null,[r,e("p",null,[s("For more information on how to use dynamic schedule sources read "),t(a,{to:"/guide/scheduling-tasks.html#dynamic-scheduling"},{default:o(()=>[s("Dynamic scheduling section")]),_:1}),s(".")]),d,e("ul",null,[h,e("li",null,[k,s(" - timezone offset for cron values. Explained "),t(a,{to:"/guide/scheduling-tasks.html#working-with-timezones"},{default:o(()=>[s("here")]),_:1})]),m,v,b,g]),y])}const T=c(p,[["render",f],["__file","schedule-sources.html.vue"]]),x=JSON.parse('{"path":"/available-components/schedule-sources.html","title":"Available schedule sources","lang":"en-US","frontmatter":{"order":4,"description":"Available schedule sources These objects are used to fetch current schedule for tasks. Currently we have only one schedule source. RedisScheduleSource This source is capable of ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/available-components/schedule-sources.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Available schedule sources"}],["meta",{"property":"og:description","content":"Available schedule sources These objects are used to fetch current schedule for tasks. Currently we have only one schedule source. RedisScheduleSource This source is capable of ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Available schedule sources\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"RedisScheduleSource","slug":"redisschedulesource","link":"#redisschedulesource","children":[]},{"level":2,"title":"LabelScheduleSource","slug":"labelschedulesource","link":"#labelschedulesource","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"available-components/schedule-sources.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

These objects are used to fetch current schedule for tasks.\\nCurrently we have only one schedule source.

\\n

RedisScheduleSource

\\n

This source is capable of adding new schedules in runtime. It uses Redis as a storage for schedules.\\nTo use this source you need to install taskiq-redis package.

"}');export{T as comp,x as data}; +

Cool notice!

In order to resolve all labels correctly, don't forget to import all task modules using CLI interface.

`,3);function f(_,w){const a=l("RouteLink");return i(),u("div",null,[r,e("p",null,[s("For more information on how to use dynamic schedule sources read "),t(a,{to:"/guide/scheduling-tasks.html#dynamic-scheduling"},{default:o(()=>[s("Dynamic scheduling section")]),_:1}),s(".")]),d,e("ul",null,[h,e("li",null,[k,s(" - timezone offset for cron values. Explained "),t(a,{to:"/guide/scheduling-tasks.html#working-with-timezones"},{default:o(()=>[s("here")]),_:1})]),m,v,b,g]),y])}const T=c(p,[["render",f],["__file","schedule-sources.html.vue"]]),x=JSON.parse('{"path":"/available-components/schedule-sources.html","title":"Available schedule sources","lang":"en-US","frontmatter":{"order":4,"description":"Available schedule sources These objects are used to fetch current schedule for tasks. Currently we have only one schedule source. RedisScheduleSource This source is capable of ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/available-components/schedule-sources.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Available schedule sources"}],["meta",{"property":"og:description","content":"Available schedule sources These objects are used to fetch current schedule for tasks. Currently we have only one schedule source. RedisScheduleSource This source is capable of ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Available schedule sources\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"RedisScheduleSource","slug":"redisschedulesource","link":"#redisschedulesource","children":[]},{"level":2,"title":"LabelScheduleSource","slug":"labelschedulesource","link":"#labelschedulesource","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"available-components/schedule-sources.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

These objects are used to fetch current schedule for tasks.\\nCurrently we have only one schedule source.

\\n

RedisScheduleSource

\\n

This source is capable of adding new schedules in runtime. It uses Redis as a storage for schedules.\\nTo use this source you need to install taskiq-redis package.

"}');export{T as comp,x as data}; diff --git a/assets/schedule-sources.html-BvQTi1oy.js b/assets/schedule-sources.html-NmDe5G3N.js similarity index 97% rename from assets/schedule-sources.html-BvQTi1oy.js rename to assets/schedule-sources.html-NmDe5G3N.js index 5b79774..c9c06c4 100644 --- a/assets/schedule-sources.html-BvQTi1oy.js +++ b/assets/schedule-sources.html-NmDe5G3N.js @@ -1,4 +1,4 @@ -import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as n,c as a,a as e}from"./app-BQ_RvZRm.js";const t={},o=e(`

Schedule source

Schedule sources are used to get schedule for tasks. To create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract class.

Here's a minimal example of a schedule source:

from typing import List
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as n,c as a,a as e}from"./app-B7rxM88G.js";const t={},o=e(`

Schedule source

Schedule sources are used to get schedule for tasks. To create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract class.

Here's a minimal example of a schedule source:

from typing import List
 
 from taskiq import ScheduledTask, ScheduleSource
 
@@ -52,4 +52,4 @@ import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as n,c as a,
 
         :param task: task that just have sent
         """
-

You can implement a schedule source that write schedules in the database and have delayed tasks in runtime.

`,5),p=[o];function c(l,u){return n(),a("div",null,p)}const k=s(t,[["render",c],["__file","schedule-sources.html.vue"]]),d=JSON.parse(`{"path":"/extending-taskiq/schedule-sources.html","title":"Schedule source","lang":"en-US","frontmatter":{"order":5,"description":"Schedule source Schedule sources are used to get schedule for tasks. To create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract c...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/schedule-sources.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Schedule source"}],["meta",{"property":"og:description","content":"Schedule source Schedule sources are used to get schedule for tasks. To create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract c..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Schedule source\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/schedule-sources.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Schedule sources are used to get schedule for tasks.\\nTo create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract class.

\\n

Here's a minimal example of a schedule source:

\\n
from typing import List\\n\\nfrom taskiq import ScheduledTask, ScheduleSource\\n\\n\\nclass MyScheduleSource(ScheduleSource):\\n    async def startup(self) -> None:\\n        \\"\\"\\"Do something when starting broker.\\"\\"\\"\\n\\n    async def shutdown(self) -> None:\\n        \\"\\"\\"Do something on shutdown.\\"\\"\\"\\n\\n    async def get_schedules(self) -> List[\\"ScheduledTask\\"]:\\n        # Here you must return list of scheduled tasks from your source.\\n        return [\\n            ScheduledTask(\\n                task_name=\\"\\",\\n                labels={},\\n                args=[],\\n                kwargs={},\\n                cron=\\"* * * * *\\",\\n            ),\\n        ]\\n\\n    # This method is optional. You may not implement this.\\n    # It's just a helper to people to be able to interact with your source.\\n    async def add_schedule(self, schedule: \\"ScheduledTask\\") -> None:\\n        print(\\"New schedule added:\\", schedule)\\n\\n    # This method is completely optional, but if you want to support\\n    # schedule cancelation, you must implement it.\\n    async def delete_schedule(self, schedule_id: str) -> None:\\n        print(\\"Deleting schedule:\\", schedule_id)\\n\\n    # This method is optional. You may not implement this.\\n    # It's just a helper to people to be able to interact with your source.\\n    async def pre_send(self, task: \\"ScheduledTask\\") -> None:\\n        \\"\\"\\"\\n        Actions to execute before task will be sent to broker.\\n\\n        This method may raise ScheduledTaskCancelledError.\\n        This cancels the task execution.\\n\\n        :param task: task that will be sent\\n        \\"\\"\\"\\n\\n    # This method is optional. You may not implement this.\\n    # It's just a helper to people to be able to interact with your source.\\n    async def post_send(self, task: \\"ScheduledTask\\") -> None:\\n        \\"\\"\\"\\n        Actions to execute after task was sent to broker.\\n\\n        :param task: task that just have sent\\n        \\"\\"\\"\\n
"}`);export{k as comp,d as data}; +

You can implement a schedule source that write schedules in the database and have delayed tasks in runtime.

`,5),p=[o];function c(l,u){return n(),a("div",null,p)}const k=s(t,[["render",c],["__file","schedule-sources.html.vue"]]),d=JSON.parse(`{"path":"/extending-taskiq/schedule-sources.html","title":"Schedule source","lang":"en-US","frontmatter":{"order":5,"description":"Schedule source Schedule sources are used to get schedule for tasks. To create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract c...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/extending-taskiq/schedule-sources.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Schedule source"}],["meta",{"property":"og:description","content":"Schedule source Schedule sources are used to get schedule for tasks. To create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract c..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Schedule source\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"extending-taskiq/schedule-sources.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Schedule sources are used to get schedule for tasks.\\nTo create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract class.

\\n

Here's a minimal example of a schedule source:

\\n
from typing import List\\n\\nfrom taskiq import ScheduledTask, ScheduleSource\\n\\n\\nclass MyScheduleSource(ScheduleSource):\\n    async def startup(self) -> None:\\n        \\"\\"\\"Do something when starting broker.\\"\\"\\"\\n\\n    async def shutdown(self) -> None:\\n        \\"\\"\\"Do something on shutdown.\\"\\"\\"\\n\\n    async def get_schedules(self) -> List[\\"ScheduledTask\\"]:\\n        # Here you must return list of scheduled tasks from your source.\\n        return [\\n            ScheduledTask(\\n                task_name=\\"\\",\\n                labels={},\\n                args=[],\\n                kwargs={},\\n                cron=\\"* * * * *\\",\\n            ),\\n        ]\\n\\n    # This method is optional. You may not implement this.\\n    # It's just a helper to people to be able to interact with your source.\\n    async def add_schedule(self, schedule: \\"ScheduledTask\\") -> None:\\n        print(\\"New schedule added:\\", schedule)\\n\\n    # This method is completely optional, but if you want to support\\n    # schedule cancelation, you must implement it.\\n    async def delete_schedule(self, schedule_id: str) -> None:\\n        print(\\"Deleting schedule:\\", schedule_id)\\n\\n    # This method is optional. You may not implement this.\\n    # It's just a helper to people to be able to interact with your source.\\n    async def pre_send(self, task: \\"ScheduledTask\\") -> None:\\n        \\"\\"\\"\\n        Actions to execute before task will be sent to broker.\\n\\n        This method may raise ScheduledTaskCancelledError.\\n        This cancels the task execution.\\n\\n        :param task: task that will be sent\\n        \\"\\"\\"\\n\\n    # This method is optional. You may not implement this.\\n    # It's just a helper to people to be able to interact with your source.\\n    async def post_send(self, task: \\"ScheduledTask\\") -> None:\\n        \\"\\"\\"\\n        Actions to execute after task was sent to broker.\\n\\n        :param task: task that just have sent\\n        \\"\\"\\"\\n
"}`);export{k as comp,d as data}; diff --git a/assets/scheduling-tasks.html-D4Z3wlOc.js b/assets/scheduling-tasks.html-DxDltdd4.js similarity index 98% rename from assets/scheduling-tasks.html-D4Z3wlOc.js rename to assets/scheduling-tasks.html-DxDltdd4.js index 3921ea9..a9aaeab 100644 --- a/assets/scheduling-tasks.html-D4Z3wlOc.js +++ b/assets/scheduling-tasks.html-DxDltdd4.js @@ -1,4 +1,4 @@ -import{_ as c}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as u,b as n,d as s,e,w as i,a}from"./app-BQ_RvZRm.js";const d={},r=a(`

Scheduling tasks

Sometimes you may want to execute some tasks according to some schedule. For example, you maybe want to call a function every day at 2 pm.

That's not a problem if you use taskiq. We have primitives that can help you to solve your problems.

Let's imagine we have a module, as shown below, and we want to execute the heavy_task every 5 minutes. What should we do?

from taskiq_aio_pika import AioPikaBroker
+import{_ as c}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as u,b as n,d as s,e,w as i,a}from"./app-B7rxM88G.js";const d={},r=a(`

Scheduling tasks

Sometimes you may want to execute some tasks according to some schedule. For example, you maybe want to call a function every day at 2 pm.

That's not a problem if you use taskiq. We have primitives that can help you to solve your problems.

Let's imagine we have a module, as shown below, and we want to execute the heavy_task every 5 minutes. What should we do?

from taskiq_aio_pika import AioPikaBroker
 
 broker = AioPikaBroker("amqp://guest:guest@localhost:5672/")
 
@@ -84,4 +84,4 @@ scheduler = TaskiqSchedulerasync def my_task(context: Context = TaskiqDepends()) -> None:
     schedule_id = context.message.labels.get("schedule_id")
     print("Schedule ID:", schedule_id)
-
`,15);function y(g,w){const t=o("RouteLink"),p=o("ExternalLinkIcon");return l(),u("div",null,[r,n("p",null,[s("You can check list of available schedule sources in the "),e(t,{to:"/available-components/schedule-sources.html"},{default:i(()=>[s("Available schedule sources")]),_:1}),s(" section.")]),k,n("p",null,[s("Taskiq scheduler assumes that if time has no specific timezone, it's in "),n("a",m,[s("UTC"),e(p)]),s(". Sometimes, this behavior might not be convinient for developers.")]),h,n("p",null,[s("Sometimes you may want to add new schedules to the scheduler on the fly. For example, you may want to run a specific function in several minutes from now. You can easily do it with ScheduleSources that support dynamic scheduling. Currently we suggest to use the "),v,s(" for that purpose. List of schedulers with dynamic task addition will be extended in the future. For list of available schedule sources see "),e(t,{to:"/available-components/schedule-sources.html"},{default:i(()=>[s("Available schedule sources")]),_:1}),s(".")]),b])}const q=c(d,[["render",y],["__file","scheduling-tasks.html.vue"]]),x=JSON.parse(`{"path":"/guide/scheduling-tasks.html","title":"Scheduling tasks","lang":"en-US","frontmatter":{"order":8,"description":"Scheduling tasks Sometimes you may want to execute some tasks according to some schedule. For example, you maybe want to call a function every day at 2 pm. That's not a problem ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/scheduling-tasks.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Scheduling tasks"}],["meta",{"property":"og:description","content":"Scheduling tasks Sometimes you may want to execute some tasks according to some schedule. For example, you maybe want to call a function every day at 2 pm. That's not a problem ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Scheduling tasks\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Multiple sources","slug":"multiple-sources","link":"#multiple-sources","children":[]},{"level":2,"title":"Working with timezones","slug":"working-with-timezones","link":"#working-with-timezones","children":[]},{"level":2,"title":"Skipping first run","slug":"skipping-first-run","link":"#skipping-first-run","children":[]},{"level":2,"title":"Dynamic scheduling","slug":"dynamic-scheduling","link":"#dynamic-scheduling","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/scheduling-tasks.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Sometimes you may want to execute some tasks according to some schedule.\\nFor example, you maybe want to call a function every day at 2 pm.

\\n

That's not a problem if you use taskiq. We have primitives that can help you to solve your problems.

\\n

Let's imagine we have a module, as shown below, and we want to execute the heavy_task every 5 minutes.\\nWhat should we do?

"}`);export{q as comp,x as data}; +
`,15);function y(g,w){const t=o("RouteLink"),p=o("ExternalLinkIcon");return l(),u("div",null,[r,n("p",null,[s("You can check list of available schedule sources in the "),e(t,{to:"/available-components/schedule-sources.html"},{default:i(()=>[s("Available schedule sources")]),_:1}),s(" section.")]),k,n("p",null,[s("Taskiq scheduler assumes that if time has no specific timezone, it's in "),n("a",m,[s("UTC"),e(p)]),s(". Sometimes, this behavior might not be convinient for developers.")]),h,n("p",null,[s("Sometimes you may want to add new schedules to the scheduler on the fly. For example, you may want to run a specific function in several minutes from now. You can easily do it with ScheduleSources that support dynamic scheduling. Currently we suggest to use the "),v,s(" for that purpose. List of schedulers with dynamic task addition will be extended in the future. For list of available schedule sources see "),e(t,{to:"/available-components/schedule-sources.html"},{default:i(()=>[s("Available schedule sources")]),_:1}),s(".")]),b])}const q=c(d,[["render",y],["__file","scheduling-tasks.html.vue"]]),x=JSON.parse(`{"path":"/guide/scheduling-tasks.html","title":"Scheduling tasks","lang":"en-US","frontmatter":{"order":8,"description":"Scheduling tasks Sometimes you may want to execute some tasks according to some schedule. For example, you maybe want to call a function every day at 2 pm. That's not a problem ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/scheduling-tasks.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Scheduling tasks"}],["meta",{"property":"og:description","content":"Scheduling tasks Sometimes you may want to execute some tasks according to some schedule. For example, you maybe want to call a function every day at 2 pm. That's not a problem ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Scheduling tasks\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Multiple sources","slug":"multiple-sources","link":"#multiple-sources","children":[]},{"level":2,"title":"Working with timezones","slug":"working-with-timezones","link":"#working-with-timezones","children":[]},{"level":2,"title":"Skipping first run","slug":"skipping-first-run","link":"#skipping-first-run","children":[]},{"level":2,"title":"Dynamic scheduling","slug":"dynamic-scheduling","link":"#dynamic-scheduling","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/scheduling-tasks.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Sometimes you may want to execute some tasks according to some schedule.\\nFor example, you maybe want to call a function every day at 2 pm.

\\n

That's not a problem if you use taskiq. We have primitives that can help you to solve your problems.

\\n

Let's imagine we have a module, as shown below, and we want to execute the heavy_task every 5 minutes.\\nWhat should we do?

"}`);export{q as comp,x as data}; diff --git a/assets/sequenceDiagram-6894f283-vjJz8JpS.js b/assets/sequenceDiagram-6894f283-DNGrofAl.js similarity index 99% rename from assets/sequenceDiagram-6894f283-vjJz8JpS.js rename to assets/sequenceDiagram-6894f283-DNGrofAl.js index 7869de3..66b6534 100644 --- a/assets/sequenceDiagram-6894f283-vjJz8JpS.js +++ b/assets/sequenceDiagram-6894f283-DNGrofAl.js @@ -1,4 +1,4 @@ -import{g as we,y as ve,x as _e,c as st,s as $t,b as ke,a as Pe,A as Le,l as X,d as At,j as v,e as Ie,h as Lt,i as Ae,z as B,b0 as nt,b1 as wt,m as te,r as ee,a$ as Bt,aN as se,b2 as Ne}from"./mermaid.core-Cio1iadR.js";import{d as Se,a as Me,g as Nt,b as zt,c as Re,e as Ce}from"./svgDrawCommon-5e1cfd1d-BdGGMEzj.js";import"./app-BQ_RvZRm.js";var Yt=function(){var t=function(dt,w,k,L){for(k=k||{},L=dt.length;L--;k[dt[L]]=w);return k},e=[1,2],c=[1,3],s=[1,4],i=[2,4],a=[1,9],o=[1,11],l=[1,13],p=[1,14],r=[1,16],x=[1,17],T=[1,18],u=[1,24],g=[1,25],m=[1,26],_=[1,27],I=[1,28],V=[1,29],S=[1,30],O=[1,31],R=[1,32],q=[1,33],z=[1,34],J=[1,35],$=[1,36],H=[1,37],U=[1,38],F=[1,39],W=[1,41],Z=[1,42],K=[1,43],Q=[1,44],tt=[1,45],N=[1,46],y=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],P=[4,5,16,50,52,53],j=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],rt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],A=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Gt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],ht=[68,69,70],ot=[1,120],Mt={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(w,k,L,b,M,h,Et){var d=h.length-1;switch(M){case 3:return b.apply(h[d]),h[d];case 4:case 9:this.$=[];break;case 5:case 10:h[d-1].push(h[d]),this.$=h[d-1];break;case 6:case 7:case 11:case 12:this.$=h[d];break;case 8:case 13:this.$=[];break;case 15:h[d].type="createParticipant",this.$=h[d];break;case 16:h[d-1].unshift({type:"boxStart",boxData:b.parseBoxData(h[d-2])}),h[d-1].push({type:"boxEnd",boxText:h[d-2]}),this.$=h[d-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(h[d-2]),sequenceIndexStep:Number(h[d-1]),sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(h[d-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:b.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:h[d-1]};break;case 23:this.$={type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:h[d-1]};break;case 29:b.setDiagramTitle(h[d].substring(6)),this.$=h[d].substring(6);break;case 30:b.setDiagramTitle(h[d].substring(7)),this.$=h[d].substring(7);break;case 31:this.$=h[d].trim(),b.setAccTitle(this.$);break;case 32:case 33:this.$=h[d].trim(),b.setAccDescription(this.$);break;case 34:h[d-1].unshift({type:"loopStart",loopText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.LOOP_START}),h[d-1].push({type:"loopEnd",loopText:h[d-2],signalType:b.LINETYPE.LOOP_END}),this.$=h[d-1];break;case 35:h[d-1].unshift({type:"rectStart",color:b.parseMessage(h[d-2]),signalType:b.LINETYPE.RECT_START}),h[d-1].push({type:"rectEnd",color:b.parseMessage(h[d-2]),signalType:b.LINETYPE.RECT_END}),this.$=h[d-1];break;case 36:h[d-1].unshift({type:"optStart",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.OPT_START}),h[d-1].push({type:"optEnd",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.OPT_END}),this.$=h[d-1];break;case 37:h[d-1].unshift({type:"altStart",altText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.ALT_START}),h[d-1].push({type:"altEnd",signalType:b.LINETYPE.ALT_END}),this.$=h[d-1];break;case 38:h[d-1].unshift({type:"parStart",parText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.PAR_START}),h[d-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=h[d-1];break;case 39:h[d-1].unshift({type:"parStart",parText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.PAR_OVER_START}),h[d-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=h[d-1];break;case 40:h[d-1].unshift({type:"criticalStart",criticalText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.CRITICAL_START}),h[d-1].push({type:"criticalEnd",signalType:b.LINETYPE.CRITICAL_END}),this.$=h[d-1];break;case 41:h[d-1].unshift({type:"breakStart",breakText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.BREAK_START}),h[d-1].push({type:"breakEnd",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.BREAK_END}),this.$=h[d-1];break;case 43:this.$=h[d-3].concat([{type:"option",optionText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.CRITICAL_OPTION},h[d]]);break;case 45:this.$=h[d-3].concat([{type:"and",parText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.PAR_AND},h[d]]);break;case 47:this.$=h[d-3].concat([{type:"else",altText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.ALT_ELSE},h[d]]);break;case 48:h[d-3].draw="participant",h[d-3].type="addParticipant",h[d-3].description=b.parseMessage(h[d-1]),this.$=h[d-3];break;case 49:h[d-1].draw="participant",h[d-1].type="addParticipant",this.$=h[d-1];break;case 50:h[d-3].draw="actor",h[d-3].type="addParticipant",h[d-3].description=b.parseMessage(h[d-1]),this.$=h[d-3];break;case 51:h[d-1].draw="actor",h[d-1].type="addParticipant",this.$=h[d-1];break;case 52:h[d-1].type="destroyParticipant",this.$=h[d-1];break;case 53:this.$=[h[d-1],{type:"addNote",placement:h[d-2],actor:h[d-1].actor,text:h[d]}];break;case 54:h[d-2]=[].concat(h[d-1],h[d-1]).slice(0,2),h[d-2][0]=h[d-2][0].actor,h[d-2][1]=h[d-2][1].actor,this.$=[h[d-1],{type:"addNote",placement:b.PLACEMENT.OVER,actor:h[d-2].slice(0,2),text:h[d]}];break;case 55:this.$=[h[d-1],{type:"addLinks",actor:h[d-1].actor,text:h[d]}];break;case 56:this.$=[h[d-1],{type:"addALink",actor:h[d-1].actor,text:h[d]}];break;case 57:this.$=[h[d-1],{type:"addProperties",actor:h[d-1].actor,text:h[d]}];break;case 58:this.$=[h[d-1],{type:"addDetails",actor:h[d-1].actor,text:h[d]}];break;case 61:this.$=[h[d-2],h[d]];break;case 62:this.$=h[d];break;case 63:this.$=b.PLACEMENT.LEFTOF;break;case 64:this.$=b.PLACEMENT.RIGHTOF;break;case 65:this.$=[h[d-4],h[d-1],{type:"addMessage",from:h[d-4].actor,to:h[d-1].actor,signalType:h[d-3],msg:h[d],activate:!0},{type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:h[d-1]}];break;case 66:this.$=[h[d-4],h[d-1],{type:"addMessage",from:h[d-4].actor,to:h[d-1].actor,signalType:h[d-3],msg:h[d]},{type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:h[d-4]}];break;case 67:this.$=[h[d-3],h[d-1],{type:"addMessage",from:h[d-3].actor,to:h[d-1].actor,signalType:h[d-2],msg:h[d]}];break;case 68:this.$={type:"addParticipant",actor:h[d]};break;case 69:this.$=b.LINETYPE.SOLID_OPEN;break;case 70:this.$=b.LINETYPE.DOTTED_OPEN;break;case 71:this.$=b.LINETYPE.SOLID;break;case 72:this.$=b.LINETYPE.DOTTED;break;case 73:this.$=b.LINETYPE.SOLID_CROSS;break;case 74:this.$=b.LINETYPE.DOTTED_CROSS;break;case 75:this.$=b.LINETYPE.SOLID_POINT;break;case 76:this.$=b.LINETYPE.DOTTED_POINT;break;case 77:this.$=b.parseMessage(h[d].trim().substring(1));break}},table:[{3:1,4:e,5:c,6:s},{1:[3]},{3:5,4:e,5:c,6:s},{3:6,4:e,5:c,6:s},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:o,8:8,9:10,12:12,13:l,14:p,17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},t(y,[2,5]),{9:47,12:12,13:l,14:p,17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},t(y,[2,7]),t(y,[2,8]),t(y,[2,14]),{12:48,50:H,52:U,53:F},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:N},{22:55,70:N},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(y,[2,29]),t(y,[2,30]),{32:[1,61]},{34:[1,62]},t(y,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:N},{22:72,70:N},{22:73,70:N},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:N},{22:88,70:N},{22:89,70:N},{22:90,70:N},t([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),t(y,[2,6]),t(y,[2,15]),t(P,[2,9],{10:91}),t(y,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},t(y,[2,21]),{5:[1,95]},{5:[1,96]},t(y,[2,24]),t(y,[2,25]),t(y,[2,26]),t(y,[2,27]),t(y,[2,28]),t(y,[2,31]),t(y,[2,32]),t(j,i,{7:97}),t(j,i,{7:98}),t(j,i,{7:99}),t(rt,i,{40:100,7:101}),t(A,i,{42:102,7:103}),t(A,i,{7:103,42:104}),t(Gt,i,{45:105,7:106}),t(j,i,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:N},t(ht,[2,69]),t(ht,[2,70]),t(ht,[2,71]),t(ht,[2,72]),t(ht,[2,73]),t(ht,[2,74]),t(ht,[2,75]),t(ht,[2,76]),{22:116,70:N},{22:118,58:117,70:N},{70:[2,63]},{70:[2,64]},{56:119,79:ot},{56:121,79:ot},{56:122,79:ot},{56:123,79:ot},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:H,52:U,53:F},{5:[1,129]},t(y,[2,19]),t(y,[2,20]),t(y,[2,22]),t(y,[2,23]),{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,130],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,131],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,132],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,133]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,46],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,49:[1,134],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,135]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,44],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,48:[1,136],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,137]},{16:[1,138]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,42],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,47:[1,139],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,140],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{15:[1,141]},t(y,[2,49]),{15:[1,142]},t(y,[2,51]),t(y,[2,52]),{22:143,70:N},{22:144,70:N},{56:145,79:ot},{56:146,79:ot},{56:147,79:ot},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(y,[2,16]),t(P,[2,10]),{12:149,50:H,52:U,53:F},t(P,[2,12]),t(P,[2,13]),t(y,[2,18]),t(y,[2,34]),t(y,[2,35]),t(y,[2,36]),t(y,[2,37]),{15:[1,150]},t(y,[2,38]),{15:[1,151]},t(y,[2,39]),t(y,[2,40]),{15:[1,152]},t(y,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:ot},{56:156,79:ot},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:N},t(P,[2,11]),t(rt,i,{7:101,40:158}),t(A,i,{7:103,42:159}),t(Gt,i,{7:106,45:160}),t(y,[2,48]),t(y,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(w,k){if(k.recoverable)this.trace(w);else{var L=new Error(w);throw L.hash=k,L}},parse:function(w){var k=this,L=[0],b=[],M=[null],h=[],Et=this.table,d="",_t=0,Xt=0,Te=2,Jt=1,be=h.slice.call(arguments,1),Y=Object.create(this.lexer),pt={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(pt.yy[Ct]=this.yy[Ct]);Y.setInput(w,pt.yy),pt.yy.lexer=Y,pt.yy.parser=this,typeof Y.yylloc>"u"&&(Y.yylloc={});var Dt=Y.yylloc;h.push(Dt);var Ee=Y.options&&Y.options.ranges;typeof pt.yy.parseError=="function"?this.parseError=pt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function me(){var lt;return lt=b.pop()||Y.lex()||Jt,typeof lt!="number"&&(lt instanceof Array&&(b=lt,lt=b.pop()),lt=k.symbols_[lt]||lt),lt}for(var G,ut,et,Vt,yt={},kt,ct,Zt,Pt;;){if(ut=L[L.length-1],this.defaultActions[ut]?et=this.defaultActions[ut]:((G===null||typeof G>"u")&&(G=me()),et=Et[ut]&&Et[ut][G]),typeof et>"u"||!et.length||!et[0]){var Ot="";Pt=[];for(kt in Et[ut])this.terminals_[kt]&&kt>Te&&Pt.push("'"+this.terminals_[kt]+"'");Y.showPosition?Ot="Parse error on line "+(_t+1)+`: +import{g as we,y as ve,x as _e,c as st,s as $t,b as ke,a as Pe,A as Le,l as X,d as At,j as v,e as Ie,h as Lt,i as Ae,z as B,b0 as nt,b1 as wt,m as te,r as ee,a$ as Bt,aN as se,b2 as Ne}from"./mermaid.core-D8sVPjx9.js";import{d as Se,a as Me,g as Nt,b as zt,c as Re,e as Ce}from"./svgDrawCommon-5e1cfd1d-DOlHDRVT.js";import"./app-B7rxM88G.js";var Yt=function(){var t=function(dt,w,k,L){for(k=k||{},L=dt.length;L--;k[dt[L]]=w);return k},e=[1,2],c=[1,3],s=[1,4],i=[2,4],a=[1,9],o=[1,11],l=[1,13],p=[1,14],r=[1,16],x=[1,17],T=[1,18],u=[1,24],g=[1,25],m=[1,26],_=[1,27],I=[1,28],V=[1,29],S=[1,30],O=[1,31],R=[1,32],q=[1,33],z=[1,34],J=[1,35],$=[1,36],H=[1,37],U=[1,38],F=[1,39],W=[1,41],Z=[1,42],K=[1,43],Q=[1,44],tt=[1,45],N=[1,46],y=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],P=[4,5,16,50,52,53],j=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],rt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],A=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],Gt=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],ht=[68,69,70],ot=[1,120],Mt={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,DOTTED_ARROW:74,SOLID_CROSS:75,DOTTED_CROSS:76,SOLID_POINT:77,DOTTED_POINT:78,TXT:79,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"DOTTED_ARROW",75:"SOLID_CROSS",76:"DOTTED_CROSS",77:"SOLID_POINT",78:"DOTTED_POINT",79:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:function(w,k,L,b,M,h,Et){var d=h.length-1;switch(M){case 3:return b.apply(h[d]),h[d];case 4:case 9:this.$=[];break;case 5:case 10:h[d-1].push(h[d]),this.$=h[d-1];break;case 6:case 7:case 11:case 12:this.$=h[d];break;case 8:case 13:this.$=[];break;case 15:h[d].type="createParticipant",this.$=h[d];break;case 16:h[d-1].unshift({type:"boxStart",boxData:b.parseBoxData(h[d-2])}),h[d-1].push({type:"boxEnd",boxText:h[d-2]}),this.$=h[d-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(h[d-2]),sequenceIndexStep:Number(h[d-1]),sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(h[d-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:b.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:b.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:h[d-1]};break;case 23:this.$={type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:h[d-1]};break;case 29:b.setDiagramTitle(h[d].substring(6)),this.$=h[d].substring(6);break;case 30:b.setDiagramTitle(h[d].substring(7)),this.$=h[d].substring(7);break;case 31:this.$=h[d].trim(),b.setAccTitle(this.$);break;case 32:case 33:this.$=h[d].trim(),b.setAccDescription(this.$);break;case 34:h[d-1].unshift({type:"loopStart",loopText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.LOOP_START}),h[d-1].push({type:"loopEnd",loopText:h[d-2],signalType:b.LINETYPE.LOOP_END}),this.$=h[d-1];break;case 35:h[d-1].unshift({type:"rectStart",color:b.parseMessage(h[d-2]),signalType:b.LINETYPE.RECT_START}),h[d-1].push({type:"rectEnd",color:b.parseMessage(h[d-2]),signalType:b.LINETYPE.RECT_END}),this.$=h[d-1];break;case 36:h[d-1].unshift({type:"optStart",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.OPT_START}),h[d-1].push({type:"optEnd",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.OPT_END}),this.$=h[d-1];break;case 37:h[d-1].unshift({type:"altStart",altText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.ALT_START}),h[d-1].push({type:"altEnd",signalType:b.LINETYPE.ALT_END}),this.$=h[d-1];break;case 38:h[d-1].unshift({type:"parStart",parText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.PAR_START}),h[d-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=h[d-1];break;case 39:h[d-1].unshift({type:"parStart",parText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.PAR_OVER_START}),h[d-1].push({type:"parEnd",signalType:b.LINETYPE.PAR_END}),this.$=h[d-1];break;case 40:h[d-1].unshift({type:"criticalStart",criticalText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.CRITICAL_START}),h[d-1].push({type:"criticalEnd",signalType:b.LINETYPE.CRITICAL_END}),this.$=h[d-1];break;case 41:h[d-1].unshift({type:"breakStart",breakText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.BREAK_START}),h[d-1].push({type:"breakEnd",optText:b.parseMessage(h[d-2]),signalType:b.LINETYPE.BREAK_END}),this.$=h[d-1];break;case 43:this.$=h[d-3].concat([{type:"option",optionText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.CRITICAL_OPTION},h[d]]);break;case 45:this.$=h[d-3].concat([{type:"and",parText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.PAR_AND},h[d]]);break;case 47:this.$=h[d-3].concat([{type:"else",altText:b.parseMessage(h[d-1]),signalType:b.LINETYPE.ALT_ELSE},h[d]]);break;case 48:h[d-3].draw="participant",h[d-3].type="addParticipant",h[d-3].description=b.parseMessage(h[d-1]),this.$=h[d-3];break;case 49:h[d-1].draw="participant",h[d-1].type="addParticipant",this.$=h[d-1];break;case 50:h[d-3].draw="actor",h[d-3].type="addParticipant",h[d-3].description=b.parseMessage(h[d-1]),this.$=h[d-3];break;case 51:h[d-1].draw="actor",h[d-1].type="addParticipant",this.$=h[d-1];break;case 52:h[d-1].type="destroyParticipant",this.$=h[d-1];break;case 53:this.$=[h[d-1],{type:"addNote",placement:h[d-2],actor:h[d-1].actor,text:h[d]}];break;case 54:h[d-2]=[].concat(h[d-1],h[d-1]).slice(0,2),h[d-2][0]=h[d-2][0].actor,h[d-2][1]=h[d-2][1].actor,this.$=[h[d-1],{type:"addNote",placement:b.PLACEMENT.OVER,actor:h[d-2].slice(0,2),text:h[d]}];break;case 55:this.$=[h[d-1],{type:"addLinks",actor:h[d-1].actor,text:h[d]}];break;case 56:this.$=[h[d-1],{type:"addALink",actor:h[d-1].actor,text:h[d]}];break;case 57:this.$=[h[d-1],{type:"addProperties",actor:h[d-1].actor,text:h[d]}];break;case 58:this.$=[h[d-1],{type:"addDetails",actor:h[d-1].actor,text:h[d]}];break;case 61:this.$=[h[d-2],h[d]];break;case 62:this.$=h[d];break;case 63:this.$=b.PLACEMENT.LEFTOF;break;case 64:this.$=b.PLACEMENT.RIGHTOF;break;case 65:this.$=[h[d-4],h[d-1],{type:"addMessage",from:h[d-4].actor,to:h[d-1].actor,signalType:h[d-3],msg:h[d],activate:!0},{type:"activeStart",signalType:b.LINETYPE.ACTIVE_START,actor:h[d-1]}];break;case 66:this.$=[h[d-4],h[d-1],{type:"addMessage",from:h[d-4].actor,to:h[d-1].actor,signalType:h[d-3],msg:h[d]},{type:"activeEnd",signalType:b.LINETYPE.ACTIVE_END,actor:h[d-4]}];break;case 67:this.$=[h[d-3],h[d-1],{type:"addMessage",from:h[d-3].actor,to:h[d-1].actor,signalType:h[d-2],msg:h[d]}];break;case 68:this.$={type:"addParticipant",actor:h[d]};break;case 69:this.$=b.LINETYPE.SOLID_OPEN;break;case 70:this.$=b.LINETYPE.DOTTED_OPEN;break;case 71:this.$=b.LINETYPE.SOLID;break;case 72:this.$=b.LINETYPE.DOTTED;break;case 73:this.$=b.LINETYPE.SOLID_CROSS;break;case 74:this.$=b.LINETYPE.DOTTED_CROSS;break;case 75:this.$=b.LINETYPE.SOLID_POINT;break;case 76:this.$=b.LINETYPE.DOTTED_POINT;break;case 77:this.$=b.parseMessage(h[d].trim().substring(1));break}},table:[{3:1,4:e,5:c,6:s},{1:[3]},{3:5,4:e,5:c,6:s},{3:6,4:e,5:c,6:s},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:a,5:o,8:8,9:10,12:12,13:l,14:p,17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},t(y,[2,5]),{9:47,12:12,13:l,14:p,17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},t(y,[2,7]),t(y,[2,8]),t(y,[2,14]),{12:48,50:H,52:U,53:F},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:N},{22:55,70:N},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(y,[2,29]),t(y,[2,30]),{32:[1,61]},{34:[1,62]},t(y,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:N},{22:72,70:N},{22:73,70:N},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82]},{55:83,57:[1,84],65:[1,85],66:[1,86]},{22:87,70:N},{22:88,70:N},{22:89,70:N},{22:90,70:N},t([5,51,64,71,72,73,74,75,76,77,78,79],[2,68]),t(y,[2,6]),t(y,[2,15]),t(P,[2,9],{10:91}),t(y,[2,17]),{5:[1,93],19:[1,92]},{5:[1,94]},t(y,[2,21]),{5:[1,95]},{5:[1,96]},t(y,[2,24]),t(y,[2,25]),t(y,[2,26]),t(y,[2,27]),t(y,[2,28]),t(y,[2,31]),t(y,[2,32]),t(j,i,{7:97}),t(j,i,{7:98}),t(j,i,{7:99}),t(rt,i,{40:100,7:101}),t(A,i,{42:102,7:103}),t(A,i,{7:103,42:104}),t(Gt,i,{45:105,7:106}),t(j,i,{7:107}),{5:[1,109],51:[1,108]},{5:[1,111],51:[1,110]},{5:[1,112]},{22:115,68:[1,113],69:[1,114],70:N},t(ht,[2,69]),t(ht,[2,70]),t(ht,[2,71]),t(ht,[2,72]),t(ht,[2,73]),t(ht,[2,74]),t(ht,[2,75]),t(ht,[2,76]),{22:116,70:N},{22:118,58:117,70:N},{70:[2,63]},{70:[2,64]},{56:119,79:ot},{56:121,79:ot},{56:122,79:ot},{56:123,79:ot},{4:[1,126],5:[1,128],11:125,12:127,16:[1,124],50:H,52:U,53:F},{5:[1,129]},t(y,[2,19]),t(y,[2,20]),t(y,[2,22]),t(y,[2,23]),{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,130],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,131],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,132],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,133]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,46],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,49:[1,134],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,135]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,44],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,48:[1,136],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{16:[1,137]},{16:[1,138]},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[2,42],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,47:[1,139],50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{4:a,5:o,8:8,9:10,12:12,13:l,14:p,16:[1,140],17:15,18:r,21:x,22:40,23:T,24:19,25:20,26:21,27:22,28:23,29:u,30:g,31:m,33:_,35:I,36:V,37:S,38:O,39:R,41:q,43:z,44:J,46:$,50:H,52:U,53:F,54:W,59:Z,60:K,61:Q,62:tt,70:N},{15:[1,141]},t(y,[2,49]),{15:[1,142]},t(y,[2,51]),t(y,[2,52]),{22:143,70:N},{22:144,70:N},{56:145,79:ot},{56:146,79:ot},{56:147,79:ot},{64:[1,148],79:[2,62]},{5:[2,55]},{5:[2,77]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(y,[2,16]),t(P,[2,10]),{12:149,50:H,52:U,53:F},t(P,[2,12]),t(P,[2,13]),t(y,[2,18]),t(y,[2,34]),t(y,[2,35]),t(y,[2,36]),t(y,[2,37]),{15:[1,150]},t(y,[2,38]),{15:[1,151]},t(y,[2,39]),t(y,[2,40]),{15:[1,152]},t(y,[2,41]),{5:[1,153]},{5:[1,154]},{56:155,79:ot},{56:156,79:ot},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:157,70:N},t(P,[2,11]),t(rt,i,{7:101,40:158}),t(A,i,{7:103,42:159}),t(Gt,i,{7:106,45:160}),t(y,[2,48]),t(y,[2,50]),{5:[2,65]},{5:[2,66]},{79:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],85:[2,63],86:[2,64],119:[2,55],120:[2,77],121:[2,56],122:[2,57],123:[2,58],145:[2,67],146:[2,53],147:[2,54],155:[2,65],156:[2,66],157:[2,61],158:[2,47],159:[2,45],160:[2,43]},parseError:function(w,k){if(k.recoverable)this.trace(w);else{var L=new Error(w);throw L.hash=k,L}},parse:function(w){var k=this,L=[0],b=[],M=[null],h=[],Et=this.table,d="",_t=0,Xt=0,Te=2,Jt=1,be=h.slice.call(arguments,1),Y=Object.create(this.lexer),pt={yy:{}};for(var Ct in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ct)&&(pt.yy[Ct]=this.yy[Ct]);Y.setInput(w,pt.yy),pt.yy.lexer=Y,pt.yy.parser=this,typeof Y.yylloc>"u"&&(Y.yylloc={});var Dt=Y.yylloc;h.push(Dt);var Ee=Y.options&&Y.options.ranges;typeof pt.yy.parseError=="function"?this.parseError=pt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function me(){var lt;return lt=b.pop()||Y.lex()||Jt,typeof lt!="number"&&(lt instanceof Array&&(b=lt,lt=b.pop()),lt=k.symbols_[lt]||lt),lt}for(var G,ut,et,Vt,yt={},kt,ct,Zt,Pt;;){if(ut=L[L.length-1],this.defaultActions[ut]?et=this.defaultActions[ut]:((G===null||typeof G>"u")&&(G=me()),et=Et[ut]&&Et[ut][G]),typeof et>"u"||!et.length||!et[0]){var Ot="";Pt=[];for(kt in Et[ut])this.terminals_[kt]&&kt>Te&&Pt.push("'"+this.terminals_[kt]+"'");Y.showPosition?Ot="Parse error on line "+(_t+1)+`: `+Y.showPosition()+` Expecting `+Pt.join(", ")+", got '"+(this.terminals_[G]||G)+"'":Ot="Parse error on line "+(_t+1)+": Unexpected "+(G==Jt?"end of input":"'"+(this.terminals_[G]||G)+"'"),this.parseError(Ot,{text:Y.match,token:this.terminals_[G]||G,line:Y.yylineno,loc:Dt,expected:Pt})}if(et[0]instanceof Array&&et.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ut+", token: "+G);switch(et[0]){case 1:L.push(G),M.push(Y.yytext),h.push(Y.yylloc),L.push(et[1]),G=null,Xt=Y.yyleng,d=Y.yytext,_t=Y.yylineno,Dt=Y.yylloc;break;case 2:if(ct=this.productions_[et[1]][1],yt.$=M[M.length-ct],yt._$={first_line:h[h.length-(ct||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(ct||1)].first_column,last_column:h[h.length-1].last_column},Ee&&(yt._$.range=[h[h.length-(ct||1)].range[0],h[h.length-1].range[1]]),Vt=this.performAction.apply(yt,[d,Xt,_t,pt.yy,et[1],M,h].concat(be)),typeof Vt<"u")return Vt;ct&&(L=L.slice(0,-1*ct*2),M=M.slice(0,-1*ct),h=h.slice(0,-1*ct)),L.push(this.productions_[et[1]][0]),M.push(yt.$),h.push(yt._$),Zt=Et[L[L.length-2]][L[L.length-1]],L.push(Zt);break;case 3:return!0}}return!0}},ye=function(){var dt={EOF:1,parseError:function(k,L){if(this.yy.parser)this.yy.parser.parseError(k,L);else throw new Error(k)},setInput:function(w,k){return this.yy=k||this.yy||{},this._input=w,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var w=this._input[0];this.yytext+=w,this.yyleng++,this.offset++,this.match+=w,this.matched+=w;var k=w.match(/(?:\r\n?|\n).*/g);return k?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),w},unput:function(w){var k=w.length,L=w.split(/(?:\r\n?|\n)/g);this._input=w+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-k),this.offset-=k;var b=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),L.length-1&&(this.yylineno-=L.length-1);var M=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:L?(L.length===b.length?this.yylloc.first_column:0)+b[b.length-L.length].length-L[0].length:this.yylloc.first_column-k},this.options.ranges&&(this.yylloc.range=[M[0],M[0]+this.yyleng-k]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(w){this.unput(this.match.slice(w))},pastInput:function(){var w=this.matched.substr(0,this.matched.length-this.match.length);return(w.length>20?"...":"")+w.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var w=this.match;return w.length<20&&(w+=this._input.substr(0,20-w.length)),(w.substr(0,20)+(w.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var w=this.pastInput(),k=new Array(w.length+1).join("-");return w+this.upcomingInput()+` diff --git a/assets/state-and-deps.html-VkjM2UB5.js b/assets/state-and-deps.html-D334n9p0.js similarity index 99% rename from assets/state-and-deps.html-VkjM2UB5.js rename to assets/state-and-deps.html-D334n9p0.js index 47c6b37..46c3eb0 100644 --- a/assets/state-and-deps.html-VkjM2UB5.js +++ b/assets/state-and-deps.html-D334n9p0.js @@ -1,4 +1,4 @@ -import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as p,o as k,c as d,e as o,w as a,b as n,d as s,a as l}from"./app-BQ_RvZRm.js";const m={},b=l('

State and Dependencies

State

The TaskiqState is a global variable where you can keep the variables you want to use later. For example, you want to open a database connection pool at a broker's startup.

This can be achieved by adding event handlers.

You can use one of these events:

  • WORKER_STARTUP
  • CLIENT_STARTUP
  • WORKER_SHUTDOWN
  • CLIENT_SHUTDOWN

Worker events are called when you start listening to the broker messages using taskiq. Client events are called when you call the startup method of your broker from your code.

This is an example of code using event handlers:

',8),v=n("div",{class:"language-python line-numbers-mode","data-ext":"py","data-title":"py"},[n("pre",{class:"language-python"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(` asyncio +import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as p,o as k,c as d,e as o,w as a,b as n,d as s,a as l}from"./app-B7rxM88G.js";const m={},b=l('

State and Dependencies

State

The TaskiqState is a global variable where you can keep the variables you want to use later. For example, you want to open a database connection pool at a broker's startup.

This can be achieved by adding event handlers.

You can use one of these events:

  • WORKER_STARTUP
  • CLIENT_STARTUP
  • WORKER_SHUTDOWN
  • CLIENT_SHUTDOWN

Worker events are called when you start listening to the broker messages using taskiq. Client events are called when you call the startup method of your broker from your code.

This is an example of code using event handlers:

',8),v=n("div",{class:"language-python line-numbers-mode","data-ext":"py","data-title":"py"},[n("pre",{class:"language-python"},[n("code",null,[n("span",{class:"token keyword"},"import"),s(` asyncio `),n("span",{class:"token keyword"},"from"),s(" typing "),n("span",{class:"token keyword"},"import"),s(" Annotated"),n("span",{class:"token punctuation"},","),s(` Optional `),n("span",{class:"token keyword"},"from"),s(" redis"),n("span",{class:"token punctuation"},"."),s("asyncio "),n("span",{class:"token keyword"},"import"),s(" ConnectionPool"),n("span",{class:"token punctuation"},","),s(" Redis "),n("span",{class:"token comment"},"# type: ignore"),s(` @@ -392,4 +392,4 @@ broker `),n("span",{class:"token operator"},"="),s(" AioPikaBroker"),n("span",{c `),n("span",{class:"token comment"},"# Here we commit if everything is fine."),s(` `),n("span",{class:"token keyword"},"await"),s(" trans"),n("span",{class:"token punctuation"},"."),s("commit"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},")"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),pn=l(`

If you don't want to propagate exceptions in dependencies, you can add --no-propagate-errors option to worker command.

taskiq worker my_file:broker --no-propagate-errors
-

In this case, no exception will ever going to be propagated to any dependency.

Generics

Taskiq supports generic dependencies. You can create a generic class that is generic over another class and takskiq will be able to resolve generics based on type annotations.

Default dependencies

By default taskiq has only two dependencies:

  • Context from taskiq.context.Context
  • TaskiqState from taskiq.state.TaskiqState

Adding first-level dependencies

You can expand default list of available dependencies for you application. Taskiq have an ability to add new first-level dependencies using brokers.

The AsyncBroker interface has a function called add_dependency_context and you can add more default dependencies to the taskiq. This may be useful for libraries if you want to add new dependencies to users.

`,11);function un(rn,kn){const c=p("Tabs"),u=p("ExternalLinkIcon"),i=p("Mermaid");return k(),d("div",null,[b,o(c,{id:"43",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[v]),tab1:a(({value:e,isActive:t})=>[y]),_:1}),w,h,f,_,g,n("p",null,[s("We use the "),n("a",T,[s("taskiq-dependencies"),o(u)]),s(" package to provide autocompetion. You can easily integrate it in your own project.")]),A,o(c,{id:"84",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[q]),tab1:a(({value:e,isActive:t})=>[x]),_:1}),D,o(c,{id:"95",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[S]),tab1:a(({value:e,isActive:t})=>[N]),_:1}),R,C,E,G,I,o(c,{id:"118",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[B]),tab1:a(({value:e,isActive:t})=>[O]),_:1}),H,o(c,{id:"132",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[P]),tab1:a(({value:e,isActive:t})=>[W]),_:1}),F,o(i,{id:"mermaid-143",code:"eJxLL0osyFAIceFSAALH6OT83Nz8vPiU1IJYsIhTNJBpCGE7g9hGELZLdG5lfElicTaE66igq2un4ITEdoZoB7MhhjtD2QC8vBpx"}),U,o(i,{id:"mermaid-147",code:"eJxLL0osyFAIceFSAALH6OT83Nz8vPiU1IJYsIhTNJBpCGG7ROdWxpckFmdDuM4gKSMIu7g0CWJQeWZJRn5piUJyYnJGKlgKbK4hhsGpeSkQKxV0de0UnCBsQzDHGWIzmA1xlzOUDQCEcyvm"}),L,Y,K,o(c,{id:"157",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[J]),tab1:a(({value:e,isActive:t})=>[M]),_:1}),z,V,Z,j,o(c,{id:"177",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[Q]),tab1:a(({value:e,isActive:t})=>[X]),_:1}),$,nn,o(c,{id:"191",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[sn]),tab1:a(({value:e,isActive:t})=>[an]),_:1}),en,tn,on,o(c,{id:"208",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[cn]),tab1:a(({value:e,isActive:t})=>[ln]),_:1}),pn])}const bn=r(m,[["render",un],["__file","state-and-deps.html.vue"]]),vn=JSON.parse(`{"path":"/guide/state-and-deps.html","title":"State and Dependencies","lang":"en-US","frontmatter":{"order":7,"description":"State and Dependencies State The TaskiqState is a global variable where you can keep the variables you want to use later. For example, you want to open a database connection poo...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/state-and-deps.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"State and Dependencies"}],["meta",{"property":"og:description","content":"State and Dependencies State The TaskiqState is a global variable where you can keep the variables you want to use later. For example, you want to open a database connection poo..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"State and Dependencies\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"State","slug":"state","link":"#state","children":[]},{"level":2,"title":"Dependencies","slug":"dependencies","link":"#dependencies","children":[{"level":3,"title":"How dependencies are useful","slug":"how-dependencies-are-useful","link":"#how-dependencies-are-useful","children":[]},{"level":3,"title":"How do dependencies work","slug":"how-do-dependencies-work","link":"#how-do-dependencies-work","children":[]},{"level":3,"title":"Class as a dependency","slug":"class-as-a-dependency","link":"#class-as-a-dependency","children":[]},{"level":3,"title":"Generator dependencies","slug":"generator-dependencies","link":"#generator-dependencies","children":[]}]},{"level":2,"title":"Generics","slug":"generics","link":"#generics","children":[{"level":3,"title":"Default dependencies","slug":"default-dependencies","link":"#default-dependencies","children":[]},{"level":3,"title":"Adding first-level dependencies","slug":"adding-first-level-dependencies","link":"#adding-first-level-dependencies","children":[]}]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/state-and-deps.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

State

\\n

The TaskiqState is a global variable where you can keep the variables you want to use later.\\nFor example, you want to open a database connection pool at a broker's startup.

\\n

This can be achieved by adding event handlers.

\\n

You can use one of these events:

"}`);export{bn as comp,vn as data}; +

In this case, no exception will ever going to be propagated to any dependency.

Generics

Taskiq supports generic dependencies. You can create a generic class that is generic over another class and takskiq will be able to resolve generics based on type annotations.

Default dependencies

By default taskiq has only two dependencies:

  • Context from taskiq.context.Context
  • TaskiqState from taskiq.state.TaskiqState

Adding first-level dependencies

You can expand default list of available dependencies for you application. Taskiq have an ability to add new first-level dependencies using brokers.

The AsyncBroker interface has a function called add_dependency_context and you can add more default dependencies to the taskiq. This may be useful for libraries if you want to add new dependencies to users.

`,11);function un(rn,kn){const c=p("Tabs"),u=p("ExternalLinkIcon"),i=p("Mermaid");return k(),d("div",null,[b,o(c,{id:"43",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[v]),tab1:a(({value:e,isActive:t})=>[y]),_:1}),w,h,f,_,g,n("p",null,[s("We use the "),n("a",T,[s("taskiq-dependencies"),o(u)]),s(" package to provide autocompetion. You can easily integrate it in your own project.")]),A,o(c,{id:"84",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[q]),tab1:a(({value:e,isActive:t})=>[x]),_:1}),D,o(c,{id:"95",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[S]),tab1:a(({value:e,isActive:t})=>[N]),_:1}),R,C,E,G,I,o(c,{id:"118",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[B]),tab1:a(({value:e,isActive:t})=>[O]),_:1}),H,o(c,{id:"132",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[P]),tab1:a(({value:e,isActive:t})=>[W]),_:1}),F,o(i,{id:"mermaid-143",code:"eJxLL0osyFAIceFSAALH6OT83Nz8vPiU1IJYsIhTNJBpCGE7g9hGELZLdG5lfElicTaE66igq2un4ITEdoZoB7MhhjtD2QC8vBpx"}),U,o(i,{id:"mermaid-147",code:"eJxLL0osyFAIceFSAALH6OT83Nz8vPiU1IJYsIhTNJBpCGG7ROdWxpckFmdDuM4gKSMIu7g0CWJQeWZJRn5piUJyYnJGKlgKbK4hhsGpeSkQKxV0de0UnCBsQzDHGWIzmA1xlzOUDQCEcyvm"}),L,Y,K,o(c,{id:"157",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[J]),tab1:a(({value:e,isActive:t})=>[M]),_:1}),z,V,Z,j,o(c,{id:"177",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[Q]),tab1:a(({value:e,isActive:t})=>[X]),_:1}),$,nn,o(c,{id:"191",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[sn]),tab1:a(({value:e,isActive:t})=>[an]),_:1}),en,tn,on,o(c,{id:"208",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[cn]),tab1:a(({value:e,isActive:t})=>[ln]),_:1}),pn])}const bn=r(m,[["render",un],["__file","state-and-deps.html.vue"]]),vn=JSON.parse(`{"path":"/guide/state-and-deps.html","title":"State and Dependencies","lang":"en-US","frontmatter":{"order":7,"description":"State and Dependencies State The TaskiqState is a global variable where you can keep the variables you want to use later. For example, you want to open a database connection poo...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/state-and-deps.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"State and Dependencies"}],["meta",{"property":"og:description","content":"State and Dependencies State The TaskiqState is a global variable where you can keep the variables you want to use later. For example, you want to open a database connection poo..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"State and Dependencies\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"State","slug":"state","link":"#state","children":[]},{"level":2,"title":"Dependencies","slug":"dependencies","link":"#dependencies","children":[{"level":3,"title":"How dependencies are useful","slug":"how-dependencies-are-useful","link":"#how-dependencies-are-useful","children":[]},{"level":3,"title":"How do dependencies work","slug":"how-do-dependencies-work","link":"#how-do-dependencies-work","children":[]},{"level":3,"title":"Class as a dependency","slug":"class-as-a-dependency","link":"#class-as-a-dependency","children":[]},{"level":3,"title":"Generator dependencies","slug":"generator-dependencies","link":"#generator-dependencies","children":[]}]},{"level":2,"title":"Generics","slug":"generics","link":"#generics","children":[{"level":3,"title":"Default dependencies","slug":"default-dependencies","link":"#default-dependencies","children":[]},{"level":3,"title":"Adding first-level dependencies","slug":"adding-first-level-dependencies","link":"#adding-first-level-dependencies","children":[]}]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/state-and-deps.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

State

\\n

The TaskiqState is a global variable where you can keep the variables you want to use later.\\nFor example, you want to open a database connection pool at a broker's startup.

\\n

This can be achieved by adding event handlers.

\\n

You can use one of these events:

"}`);export{bn as comp,vn as data}; diff --git a/assets/stateDiagram-5dee940d-Ct9I0Jb9.js b/assets/stateDiagram-5dee940d-DyuMIJ4M.js similarity index 97% rename from assets/stateDiagram-5dee940d-Ct9I0Jb9.js rename to assets/stateDiagram-5dee940d-DyuMIJ4M.js index 6805954..8c8ef7c 100644 --- a/assets/stateDiagram-5dee940d-Ct9I0Jb9.js +++ b/assets/stateDiagram-5dee940d-DyuMIJ4M.js @@ -1 +1 @@ -import{p as P,d as N,s as W}from"./styles-0784dbeb-CjO33eRK.js";import{c as t,h as H,l as b,i as R,j as T,ao as v,z as U}from"./mermaid.core-Cio1iadR.js";import{G as C}from"./graph-k1ojK0f-.js";import{l as F}from"./layout-CbxIxNpL.js";import{l as $}from"./line-DOPC82El.js";import"./app-BQ_RvZRm.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const O=e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),X=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),J=(e,i)=>{const o=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=o.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),o},Y=(e,i)=>{const o=function(l,m,w){const E=l.append("tspan").attr("x",2*t().state.padding).text(m);w||E.attr("dy",t().state.textHeight)},s=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=s.height,p=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,r=!0;i.descriptions.forEach(function(l){a||(o(p,l,r),r=!1),a=!1});const y=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),d=Math.max(x.width,s.width);return y.attr("x2",d+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",d+2*t().state.padding).attr("height",x.height+g+2*t().state.padding).attr("rx",t().state.radius),e},I=(e,i,o)=>{const c=t().state.padding,s=2*t().state.padding,g=e.node().getBBox(),p=g.width,a=g.x,r=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=r.node().getBBox().width+s;let d=Math.max(x,p);d===p&&(d=d+s);let l;const m=e.node().getBBox();i.doc,l=a-c,x>p&&(l=(p-d)/2+c),Math.abs(a-m.x)p&&(l=a-(x-p)/2);const w=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",l).attr("y",w).attr("class",o?"alt-composit":"composit").attr("width",d).attr("height",m.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),r.attr("x",l+c),x<=p&&r.attr("x",a+(d-s)/2-x/2+c),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",m.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},_=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),q=(e,i)=>{let o=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let s=o;o=c,c=s}return e.append("rect").style("stroke","black").style("fill","black").attr("width",o).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},Z=(e,i,o,c)=>{let s=0;const g=c.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let p=e.replace(/\r\n/g,"
");p=p.replace(/\n/g,"
");const a=p.split(T.lineBreakRegex);let r=1.25*t().state.noteMargin;for(const y of a){const x=y.trim();if(x.length>0){const d=g.append("tspan");if(d.text(x),r===0){const l=d.node().getBBox();r+=l.height}s+=r,d.attr("x",i+t().state.noteMargin),d.attr("y",o+s+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:s}},j=(e,i)=>{i.attr("class","state-note");const o=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:s,textHeight:g}=Z(e,0,0,c);return o.attr("height",g+2*t().state.noteMargin),o.attr("width",s+t().state.noteMargin*2),o},L=function(e,i){const o=i.id,c={id:o,label:i.id,width:0,height:0},s=e.append("g").attr("id",o).attr("class","stateGroup");i.type==="start"&&O(s),i.type==="end"&&_(s),(i.type==="fork"||i.type==="join")&&q(s,i),i.type==="note"&&j(i.note.text,s),i.type==="divider"&&X(s),i.type==="default"&&i.descriptions.length===0&&J(s,i),i.type==="default"&&i.descriptions.length>0&&Y(s,i);const g=s.node().getBBox();return c.width=g.width+2*t().state.padding,c.height=g.height+2*t().state.padding,c};let G=0;const K=function(e,i,o){const c=function(r){switch(r){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}};i.points=i.points.filter(r=>!Number.isNaN(r.y));const s=i.points,g=$().x(function(r){return r.x}).y(function(r){return r.y}).curve(v),p=e.append("path").attr("d",g(s)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),o.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:y,y:x}=U.calcLabelPosition(i.points),d=T.getRows(o.title);let l=0;const m=[];let w=0,E=0;for(let u=0;u<=d.length;u++){const h=r.append("text").attr("text-anchor","middle").text(d[u]).attr("x",y).attr("y",x+l),f=h.node().getBBox();w=Math.max(w,f.width),E=Math.min(E,f.x),b.info(f.x,y,x+l),l===0&&(l=h.node().getBBox().height,b.info("Title height",l,x)),m.push(h)}let k=l*d.length;if(d.length>1){const u=(d.length-1)*l*.5;m.forEach((h,f)=>h.attr("y",x+f*l-u)),k=l*d.length}const n=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",y-w/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",w+t().state.padding).attr("height",k+t().state.padding),b.info(n)}G++};let B;const z={},Q=function(){},V=function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},D=function(e,i,o,c){B=t().state;const s=t().securityLevel;let g;s==="sandbox"&&(g=H("#i"+i));const p=s==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=s==="sandbox"?g.nodes()[0].contentDocument:document;b.debug("Rendering diagram "+e);const r=p.select(`[id='${i}']`);V(r);const y=c.db.getRootDoc();A(y,r,void 0,!1,p,a,c);const x=B.padding,d=r.node().getBBox(),l=d.width+x*2,m=d.height+x*2,w=l*1.75;R(r,m,w,B.useMaxWidth),r.attr("viewBox",`${d.x-B.padding} ${d.y-B.padding} `+l+" "+m)},tt=e=>e?e.length*B.fontSizeFactor:1,A=(e,i,o,c,s,g,p)=>{const a=new C({compound:!0,multigraph:!0});let r,y=!0;for(r=0;r{const f=h.parentElement;let S=0,M=0;f&&(f.parentElement&&(S=f.parentElement.getBBox().width),M=parseInt(f.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",S-M-8)})):b.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let E=w.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(b.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),K(i,a.edge(n),a.edge(n).relation))}),E=w.getBBox();const k={id:o||"root",label:o||"root",width:0,height:0};return k.width=E.width+2*B.padding,k.height=E.height+2*B.padding,b.debug("Doc rendered",k,a),k},et={setConf:Q,draw:D},lt={parser:P,db:N,renderer:et,styles:W,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,N.clear()}};export{lt as diagram}; +import{p as P,d as N,s as W}from"./styles-0784dbeb-CcB-RSXW.js";import{c as t,h as H,l as b,i as R,j as T,ao as v,z as U}from"./mermaid.core-D8sVPjx9.js";import{G as C}from"./graph-BKQChTdx.js";import{l as F}from"./layout-Bwrh1hP1.js";import{l as $}from"./line-Dh5t0evl.js";import"./app-B7rxM88G.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const O=e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),X=e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),J=(e,i)=>{const o=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=o.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),o},Y=(e,i)=>{const o=function(l,m,w){const E=l.append("tspan").attr("x",2*t().state.padding).text(m);w||E.attr("dy",t().state.textHeight)},s=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),g=s.height,p=e.append("text").attr("x",t().state.padding).attr("y",g+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,r=!0;i.descriptions.forEach(function(l){a||(o(p,l,r),r=!1),a=!1});const y=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+g+t().state.dividerMargin/2).attr("y2",t().state.padding+g+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),d=Math.max(x.width,s.width);return y.attr("x2",d+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",d+2*t().state.padding).attr("height",x.height+g+2*t().state.padding).attr("rx",t().state.radius),e},I=(e,i,o)=>{const c=t().state.padding,s=2*t().state.padding,g=e.node().getBBox(),p=g.width,a=g.x,r=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=r.node().getBBox().width+s;let d=Math.max(x,p);d===p&&(d=d+s);let l;const m=e.node().getBBox();i.doc,l=a-c,x>p&&(l=(p-d)/2+c),Math.abs(a-m.x)p&&(l=a-(x-p)/2);const w=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",l).attr("y",w).attr("class",o?"alt-composit":"composit").attr("width",d).attr("height",m.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),r.attr("x",l+c),x<=p&&r.attr("x",a+(d-s)/2-x/2+c),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",l).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",d).attr("height",m.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},_=e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),q=(e,i)=>{let o=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let s=o;o=c,c=s}return e.append("rect").style("stroke","black").style("fill","black").attr("width",o).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},Z=(e,i,o,c)=>{let s=0;const g=c.append("text");g.style("text-anchor","start"),g.attr("class","noteText");let p=e.replace(/\r\n/g,"
");p=p.replace(/\n/g,"
");const a=p.split(T.lineBreakRegex);let r=1.25*t().state.noteMargin;for(const y of a){const x=y.trim();if(x.length>0){const d=g.append("tspan");if(d.text(x),r===0){const l=d.node().getBBox();r+=l.height}s+=r,d.attr("x",i+t().state.noteMargin),d.attr("y",o+s+1.25*t().state.noteMargin)}}return{textWidth:g.node().getBBox().width,textHeight:s}},j=(e,i)=>{i.attr("class","state-note");const o=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:s,textHeight:g}=Z(e,0,0,c);return o.attr("height",g+2*t().state.noteMargin),o.attr("width",s+t().state.noteMargin*2),o},L=function(e,i){const o=i.id,c={id:o,label:i.id,width:0,height:0},s=e.append("g").attr("id",o).attr("class","stateGroup");i.type==="start"&&O(s),i.type==="end"&&_(s),(i.type==="fork"||i.type==="join")&&q(s,i),i.type==="note"&&j(i.note.text,s),i.type==="divider"&&X(s),i.type==="default"&&i.descriptions.length===0&&J(s,i),i.type==="default"&&i.descriptions.length>0&&Y(s,i);const g=s.node().getBBox();return c.width=g.width+2*t().state.padding,c.height=g.height+2*t().state.padding,c};let G=0;const K=function(e,i,o){const c=function(r){switch(r){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}};i.points=i.points.filter(r=>!Number.isNaN(r.y));const s=i.points,g=$().x(function(r){return r.x}).y(function(r){return r.y}).curve(v),p=e.append("path").attr("d",g(s)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),o.title!==void 0){const r=e.append("g").attr("class","stateLabel"),{x:y,y:x}=U.calcLabelPosition(i.points),d=T.getRows(o.title);let l=0;const m=[];let w=0,E=0;for(let u=0;u<=d.length;u++){const h=r.append("text").attr("text-anchor","middle").text(d[u]).attr("x",y).attr("y",x+l),f=h.node().getBBox();w=Math.max(w,f.width),E=Math.min(E,f.x),b.info(f.x,y,x+l),l===0&&(l=h.node().getBBox().height,b.info("Title height",l,x)),m.push(h)}let k=l*d.length;if(d.length>1){const u=(d.length-1)*l*.5;m.forEach((h,f)=>h.attr("y",x+f*l-u)),k=l*d.length}const n=r.node().getBBox();r.insert("rect",":first-child").attr("class","box").attr("x",y-w/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",w+t().state.padding).attr("height",k+t().state.padding),b.info(n)}G++};let B;const z={},Q=function(){},V=function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},D=function(e,i,o,c){B=t().state;const s=t().securityLevel;let g;s==="sandbox"&&(g=H("#i"+i));const p=s==="sandbox"?H(g.nodes()[0].contentDocument.body):H("body"),a=s==="sandbox"?g.nodes()[0].contentDocument:document;b.debug("Rendering diagram "+e);const r=p.select(`[id='${i}']`);V(r);const y=c.db.getRootDoc();A(y,r,void 0,!1,p,a,c);const x=B.padding,d=r.node().getBBox(),l=d.width+x*2,m=d.height+x*2,w=l*1.75;R(r,m,w,B.useMaxWidth),r.attr("viewBox",`${d.x-B.padding} ${d.y-B.padding} `+l+" "+m)},tt=e=>e?e.length*B.fontSizeFactor:1,A=(e,i,o,c,s,g,p)=>{const a=new C({compound:!0,multigraph:!0});let r,y=!0;for(r=0;r{const f=h.parentElement;let S=0,M=0;f&&(f.parentElement&&(S=f.parentElement.getBBox().width),M=parseInt(f.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",S-M-8)})):b.debug("No Node "+n+": "+JSON.stringify(a.node(n)))});let E=w.getBBox();a.edges().forEach(function(n){n!==void 0&&a.edge(n)!==void 0&&(b.debug("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(a.edge(n))),K(i,a.edge(n),a.edge(n).relation))}),E=w.getBBox();const k={id:o||"root",label:o||"root",width:0,height:0};return k.width=E.width+2*B.padding,k.height=E.height+2*B.padding,b.debug("Doc rendered",k,a),k},et={setConf:Q,draw:D},lt={parser:P,db:N,renderer:et,styles:W,init:e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute,N.clear()}};export{lt as diagram}; diff --git a/assets/stateDiagram-v2-1992cada-CYZqJEoI.js b/assets/stateDiagram-v2-1992cada-DCEDun8l.js similarity index 90% rename from assets/stateDiagram-v2-1992cada-CYZqJEoI.js rename to assets/stateDiagram-v2-1992cada-DCEDun8l.js index 1208de7..edaa828 100644 --- a/assets/stateDiagram-v2-1992cada-CYZqJEoI.js +++ b/assets/stateDiagram-v2-1992cada-DCEDun8l.js @@ -1 +1 @@ -import{p as J,d as B,s as Q,D as H,a as X,S as Z,b as F,c as I}from"./styles-0784dbeb-CjO33eRK.js";import{G as tt}from"./graph-k1ojK0f-.js";import{l as E,c as g,h as x,z as et,i as ot,j as w}from"./mermaid.core-Cio1iadR.js";import{r as st}from"./index-01f381cb-DBfo_-ML.js";import"./layout-CbxIxNpL.js";import"./app-BQ_RvZRm.js";import"./clone-B4YCsPuJ.js";import"./edges-066a5561-31kAkIJ0.js";import"./createText-ca0c5216-BYApgeQh.js";import"./line-DOPC82El.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const h="rect",C="rectWithTitle",nt="start",it="end",ct="divider",rt="roundedWithTitle",lt="note",at="noteGroup",_="statediagram",dt="state",Et=`${_}-${dt}`,U="transition",St="note",Tt="note-edge",pt=`${U} ${Tt}`,_t=`${_}-${St}`,ut="cluster",Dt=`${_}-${ut}`,bt="cluster-alt",ft=`${_}-${bt}`,V="parent",Y="note",At="state",N="----",ht=`${N}${Y}`,M=`${N}${V}`,m="fill:none",z="fill: #333",W="c",j="text",q="normal";let y={},d=0;const yt=function(t){const n=Object.keys(t);for(const e of n)t[e]},gt=function(t,n){return n.db.extract(n.db.getRootDocV2()),n.db.getClasses()};function $t(t){return t==null?"":t.classes?t.classes.join(" "):""}function R(t="",n=0,e="",i=N){const c=e!==null&&e.length>0?`${i}${e}`:"";return`${At}-${t}${c}-${n}`}const A=(t,n,e,i,c,r)=>{const o=e.id,u=$t(i[o]);if(o!=="root"){let T=h;e.start===!0&&(T=nt),e.start===!1&&(T=it),e.type!==H&&(T=e.type),y[o]||(y[o]={id:o,shape:T,description:w.sanitizeText(o,g()),classes:`${u} ${Et}`});const s=y[o];e.description&&(Array.isArray(s.description)?(s.shape=C,s.description.push(e.description)):s.description.length>0?(s.shape=C,s.description===o?s.description=[e.description]:s.description=[s.description,e.description]):(s.shape=h,s.description=e.description),s.description=w.sanitizeTextOrArray(s.description,g())),s.description.length===1&&s.shape===C&&(s.shape=h),!s.type&&e.doc&&(E.info("Setting cluster for ",o,G(e)),s.type="group",s.dir=G(e),s.shape=e.type===X?ct:rt,s.classes=s.classes+" "+Dt+" "+(r?ft:""));const p={labelStyle:"",shape:s.shape,labelText:s.description,classes:s.classes,style:"",id:o,dir:s.dir,domId:R(o,d),type:s.type,padding:15};if(p.centerLabel=!0,e.note){const l={labelStyle:"",shape:lt,labelText:e.note.text,classes:_t,style:"",id:o+ht+"-"+d,domId:R(o,d,Y),type:s.type,padding:15},a={labelStyle:"",shape:at,labelText:e.note.text,classes:s.classes,style:"",id:o+M,domId:R(o,d,V),type:"group",padding:0};d++;const D=o+M;t.setNode(D,a),t.setNode(l.id,l),t.setNode(o,p),t.setParent(o,D),t.setParent(l.id,D);let S=o,b=l.id;e.note.position==="left of"&&(S=l.id,b=o),t.setEdge(S,b,{arrowhead:"none",arrowType:"",style:m,labelStyle:"",classes:pt,arrowheadStyle:z,labelpos:W,labelType:j,thickness:q})}else t.setNode(o,p)}n&&n.id!=="root"&&(E.trace("Setting node ",o," to be child of its parent ",n.id),t.setParent(o,n.id)),e.doc&&(E.trace("Adding nodes children "),xt(t,e,e.doc,i,c,!r))},xt=(t,n,e,i,c,r)=>{E.trace("items",e),e.forEach(o=>{switch(o.stmt){case F:A(t,n,o,i,c,r);break;case H:A(t,n,o,i,c,r);break;case Z:{A(t,n,o.state1,i,c,r),A(t,n,o.state2,i,c,r);const u={id:"edge"+d,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:m,labelStyle:"",label:w.sanitizeText(o.description,g()),arrowheadStyle:z,labelpos:W,labelType:j,thickness:q,classes:U};t.setEdge(o.state1.id,o.state2.id,u,d),d++}break}})},G=(t,n=I)=>{let e=n;if(t.doc)for(let i=0;i{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,B.clear()}};export{Vt as diagram}; +import{p as J,d as B,s as Q,D as H,a as X,S as Z,b as F,c as I}from"./styles-0784dbeb-CcB-RSXW.js";import{G as tt}from"./graph-BKQChTdx.js";import{l as E,c as g,h as x,z as et,i as ot,j as w}from"./mermaid.core-D8sVPjx9.js";import{r as st}from"./index-01f381cb-CtMJaTFR.js";import"./layout-Bwrh1hP1.js";import"./app-B7rxM88G.js";import"./clone-SNQTcLae.js";import"./edges-066a5561-Cesv2_yT.js";import"./createText-ca0c5216-zqCXB1ps.js";import"./line-Dh5t0evl.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";const h="rect",C="rectWithTitle",nt="start",it="end",ct="divider",rt="roundedWithTitle",lt="note",at="noteGroup",_="statediagram",dt="state",Et=`${_}-${dt}`,U="transition",St="note",Tt="note-edge",pt=`${U} ${Tt}`,_t=`${_}-${St}`,ut="cluster",Dt=`${_}-${ut}`,bt="cluster-alt",ft=`${_}-${bt}`,V="parent",Y="note",At="state",N="----",ht=`${N}${Y}`,M=`${N}${V}`,m="fill:none",z="fill: #333",W="c",j="text",q="normal";let y={},d=0;const yt=function(t){const n=Object.keys(t);for(const e of n)t[e]},gt=function(t,n){return n.db.extract(n.db.getRootDocV2()),n.db.getClasses()};function $t(t){return t==null?"":t.classes?t.classes.join(" "):""}function R(t="",n=0,e="",i=N){const c=e!==null&&e.length>0?`${i}${e}`:"";return`${At}-${t}${c}-${n}`}const A=(t,n,e,i,c,r)=>{const o=e.id,u=$t(i[o]);if(o!=="root"){let T=h;e.start===!0&&(T=nt),e.start===!1&&(T=it),e.type!==H&&(T=e.type),y[o]||(y[o]={id:o,shape:T,description:w.sanitizeText(o,g()),classes:`${u} ${Et}`});const s=y[o];e.description&&(Array.isArray(s.description)?(s.shape=C,s.description.push(e.description)):s.description.length>0?(s.shape=C,s.description===o?s.description=[e.description]:s.description=[s.description,e.description]):(s.shape=h,s.description=e.description),s.description=w.sanitizeTextOrArray(s.description,g())),s.description.length===1&&s.shape===C&&(s.shape=h),!s.type&&e.doc&&(E.info("Setting cluster for ",o,G(e)),s.type="group",s.dir=G(e),s.shape=e.type===X?ct:rt,s.classes=s.classes+" "+Dt+" "+(r?ft:""));const p={labelStyle:"",shape:s.shape,labelText:s.description,classes:s.classes,style:"",id:o,dir:s.dir,domId:R(o,d),type:s.type,padding:15};if(p.centerLabel=!0,e.note){const l={labelStyle:"",shape:lt,labelText:e.note.text,classes:_t,style:"",id:o+ht+"-"+d,domId:R(o,d,Y),type:s.type,padding:15},a={labelStyle:"",shape:at,labelText:e.note.text,classes:s.classes,style:"",id:o+M,domId:R(o,d,V),type:"group",padding:0};d++;const D=o+M;t.setNode(D,a),t.setNode(l.id,l),t.setNode(o,p),t.setParent(o,D),t.setParent(l.id,D);let S=o,b=l.id;e.note.position==="left of"&&(S=l.id,b=o),t.setEdge(S,b,{arrowhead:"none",arrowType:"",style:m,labelStyle:"",classes:pt,arrowheadStyle:z,labelpos:W,labelType:j,thickness:q})}else t.setNode(o,p)}n&&n.id!=="root"&&(E.trace("Setting node ",o," to be child of its parent ",n.id),t.setParent(o,n.id)),e.doc&&(E.trace("Adding nodes children "),xt(t,e,e.doc,i,c,!r))},xt=(t,n,e,i,c,r)=>{E.trace("items",e),e.forEach(o=>{switch(o.stmt){case F:A(t,n,o,i,c,r);break;case H:A(t,n,o,i,c,r);break;case Z:{A(t,n,o.state1,i,c,r),A(t,n,o.state2,i,c,r);const u={id:"edge"+d,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:m,labelStyle:"",label:w.sanitizeText(o.description,g()),arrowheadStyle:z,labelpos:W,labelType:j,thickness:q,classes:U};t.setEdge(o.state1.id,o.state2.id,u,d),d++}break}})},G=(t,n=I)=>{let e=n;if(t.doc)for(let i=0;i{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,B.clear()}};export{Vt as diagram}; diff --git a/assets/styles-0784dbeb-CjO33eRK.js b/assets/styles-0784dbeb-CcB-RSXW.js similarity index 99% rename from assets/styles-0784dbeb-CjO33eRK.js rename to assets/styles-0784dbeb-CcB-RSXW.js index cf129ec..677649c 100644 --- a/assets/styles-0784dbeb-CjO33eRK.js +++ b/assets/styles-0784dbeb-CcB-RSXW.js @@ -1,4 +1,4 @@ -import{c as Y,g as Ut,s as zt,a as Mt,b as Ht,x as Xt,y as Kt,l as D,j as ot,A as Wt,b3 as Jt}from"./mermaid.core-Cio1iadR.js";var gt=function(){var t=function(C,r,n,i){for(n=n||{},i=C.length;i--;n[C[i]]=r);return n},s=[1,2],a=[1,3],h=[1,4],f=[2,4],d=[1,9],y=[1,11],k=[1,15],u=[1,16],E=[1,17],T=[1,18],R=[1,30],G=[1,19],j=[1,20],U=[1,21],z=[1,22],M=[1,23],H=[1,25],X=[1,26],K=[1,27],W=[1,28],J=[1,29],q=[1,32],Q=[1,33],Z=[1,34],tt=[1,35],w=[1,31],c=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],et=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Dt=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",13:"DESCR",14:"-->",15:"HIDE_EMPTY",16:"scale",17:"WIDTH",18:"COMPOSIT_STATE",19:"STRUCT_START",20:"STRUCT_STOP",21:"STATE_DESCR",22:"AS",23:"ID",24:"FORK",25:"JOIN",26:"CHOICE",27:"CONCURRENT",28:"note",30:"NOTE_TEXT",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"classDef",38:"CLASSDEF_ID",39:"CLASSDEF_STYLEOPTS",40:"DEFAULT",41:"class",42:"CLASSENTITY_IDS",43:"STYLECLASS",44:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(r,n,i,o,p,e,$){var l=e.length-1;switch(p){case 3:return o.setRootDoc(e[l]),e[l];case 4:this.$=[];break;case 5:e[l]!="nl"&&(e[l-1].push(e[l]),this.$=e[l-1]);break;case 6:case 7:this.$=e[l];break;case 8:this.$="nl";break;case 11:this.$=e[l];break;case 12:const B=e[l-1];B.description=o.trimColon(e[l]),this.$=B;break;case 13:this.$={stmt:"relation",state1:e[l-2],state2:e[l]};break;case 14:const ft=o.trimColon(e[l]);this.$={stmt:"relation",state1:e[l-3],state2:e[l-1],description:ft};break;case 18:this.$={stmt:"state",id:e[l-3],type:"default",description:"",doc:e[l-1]};break;case 19:var A=e[l],O=e[l-2].trim();if(e[l].match(":")){var st=e[l].split(":");A=st[0],O=[O,st[1]]}this.$={stmt:"state",id:A,type:"default",description:O};break;case 20:this.$={stmt:"state",id:e[l-3],type:"default",description:e[l-5],doc:e[l-1]};break;case 21:this.$={stmt:"state",id:e[l],type:"fork"};break;case 22:this.$={stmt:"state",id:e[l],type:"join"};break;case 23:this.$={stmt:"state",id:e[l],type:"choice"};break;case 24:this.$={stmt:"state",id:o.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:e[l-1].trim(),note:{position:e[l-2].trim(),text:e[l].trim()}};break;case 28:this.$=e[l].trim(),o.setAccTitle(this.$);break;case 29:case 30:this.$=e[l].trim(),o.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:e[l-1].trim(),classes:e[l].trim()};break;case 33:this.$={stmt:"applyClass",id:e[l-1].trim(),styleClass:e[l].trim()};break;case 34:o.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:o.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:o.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:o.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:e[l].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break}},table:[{3:1,4:s,5:a,6:h},{1:[3]},{3:5,4:s,5:a,6:h},{3:6,4:s,5:a,6:h},t([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],f,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,5]),{9:36,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,7]),t(c,[2,8]),t(c,[2,9]),t(c,[2,10]),t(c,[2,11],{13:[1,37],14:[1,38]}),t(c,[2,15]),{17:[1,39]},t(c,[2,17],{19:[1,40]}),{22:[1,41]},t(c,[2,21]),t(c,[2,22]),t(c,[2,23]),t(c,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},t(c,[2,27]),{33:[1,46]},{35:[1,47]},t(c,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},t(et,[2,40],{51:[1,51]}),t(et,[2,41],{51:[1,52]}),t(c,[2,34]),t(c,[2,35]),t(c,[2,36]),t(c,[2,37]),t(c,[2,6]),t(c,[2,12]),{12:53,23:R,50:w},t(c,[2,16]),t(Dt,f,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},t(c,[2,28]),t(c,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},t(c,[2,13],{13:[1,63]}),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,64],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},t(c,[2,31]),t(c,[2,32]),t(c,[2,33]),t(et,[2,42]),t(et,[2,43]),t(c,[2,14]),t(c,[2,18]),t(Dt,f,{7:68}),t(c,[2,25]),t(c,[2,26]),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,69],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(r,n){if(n.recoverable)this.trace(r);else{var i=new Error(r);throw i.hash=n,i}},parse:function(r){var n=this,i=[0],o=[],p=[null],e=[],$=this.table,l="",A=0,O=0,st=2,B=1,ft=e.slice.call(arguments,1),S=Object.create(this.lexer),v={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(v.yy[dt]=this.yy[dt]);S.setInput(r,v.yy),v.yy.lexer=S,v.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var yt=S.yylloc;e.push(yt);var Gt=S.options&&S.options.ranges;typeof v.yy.parseError=="function"?this.parseError=v.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function jt(){var x;return x=o.pop()||S.lex()||B,typeof x!="number"&&(x instanceof Array&&(o=x,x=o.pop()),x=n.symbols_[x]||x),x}for(var _,L,m,pt,N={},it,b,Ct,rt;;){if(L=i[i.length-1],this.defaultActions[L]?m=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=jt()),m=$[L]&&$[L][_]),typeof m>"u"||!m.length||!m[0]){var St="";rt=[];for(it in $[L])this.terminals_[it]&&it>st&&rt.push("'"+this.terminals_[it]+"'");S.showPosition?St="Parse error on line "+(A+1)+`: +import{c as Y,g as Ut,s as zt,a as Mt,b as Ht,x as Xt,y as Kt,l as D,j as ot,A as Wt,b3 as Jt}from"./mermaid.core-D8sVPjx9.js";var gt=function(){var t=function(C,r,n,i){for(n=n||{},i=C.length;i--;n[C[i]]=r);return n},s=[1,2],a=[1,3],h=[1,4],f=[2,4],d=[1,9],y=[1,11],k=[1,15],u=[1,16],E=[1,17],T=[1,18],R=[1,30],G=[1,19],j=[1,20],U=[1,21],z=[1,22],M=[1,23],H=[1,25],X=[1,26],K=[1,27],W=[1,28],J=[1,29],q=[1,32],Q=[1,33],Z=[1,34],tt=[1,35],w=[1,31],c=[1,4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],et=[1,4,5,13,14,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],Dt=[4,5,15,16,18,20,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],ht={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,cssClassStatement:11,idStatement:12,DESCR:13,"-->":14,HIDE_EMPTY:15,scale:16,WIDTH:17,COMPOSIT_STATE:18,STRUCT_START:19,STRUCT_STOP:20,STATE_DESCR:21,AS:22,ID:23,FORK:24,JOIN:25,CHOICE:26,CONCURRENT:27,note:28,notePosition:29,NOTE_TEXT:30,direction:31,acc_title:32,acc_title_value:33,acc_descr:34,acc_descr_value:35,acc_descr_multiline_value:36,classDef:37,CLASSDEF_ID:38,CLASSDEF_STYLEOPTS:39,DEFAULT:40,class:41,CLASSENTITY_IDS:42,STYLECLASS:43,direction_tb:44,direction_bt:45,direction_rl:46,direction_lr:47,eol:48,";":49,EDGE_STATE:50,STYLE_SEPARATOR:51,left_of:52,right_of:53,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",13:"DESCR",14:"-->",15:"HIDE_EMPTY",16:"scale",17:"WIDTH",18:"COMPOSIT_STATE",19:"STRUCT_START",20:"STRUCT_STOP",21:"STATE_DESCR",22:"AS",23:"ID",24:"FORK",25:"JOIN",26:"CHOICE",27:"CONCURRENT",28:"note",30:"NOTE_TEXT",32:"acc_title",33:"acc_title_value",34:"acc_descr",35:"acc_descr_value",36:"acc_descr_multiline_value",37:"classDef",38:"CLASSDEF_ID",39:"CLASSDEF_STYLEOPTS",40:"DEFAULT",41:"class",42:"CLASSENTITY_IDS",43:"STYLECLASS",44:"direction_tb",45:"direction_bt",46:"direction_rl",47:"direction_lr",49:";",50:"EDGE_STATE",51:"STYLE_SEPARATOR",52:"left_of",53:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[31,1],[31,1],[31,1],[31,1],[48,1],[48,1],[12,1],[12,1],[12,3],[12,3],[29,1],[29,1]],performAction:function(r,n,i,o,p,e,$){var l=e.length-1;switch(p){case 3:return o.setRootDoc(e[l]),e[l];case 4:this.$=[];break;case 5:e[l]!="nl"&&(e[l-1].push(e[l]),this.$=e[l-1]);break;case 6:case 7:this.$=e[l];break;case 8:this.$="nl";break;case 11:this.$=e[l];break;case 12:const B=e[l-1];B.description=o.trimColon(e[l]),this.$=B;break;case 13:this.$={stmt:"relation",state1:e[l-2],state2:e[l]};break;case 14:const ft=o.trimColon(e[l]);this.$={stmt:"relation",state1:e[l-3],state2:e[l-1],description:ft};break;case 18:this.$={stmt:"state",id:e[l-3],type:"default",description:"",doc:e[l-1]};break;case 19:var A=e[l],O=e[l-2].trim();if(e[l].match(":")){var st=e[l].split(":");A=st[0],O=[O,st[1]]}this.$={stmt:"state",id:A,type:"default",description:O};break;case 20:this.$={stmt:"state",id:e[l-3],type:"default",description:e[l-5],doc:e[l-1]};break;case 21:this.$={stmt:"state",id:e[l],type:"fork"};break;case 22:this.$={stmt:"state",id:e[l],type:"join"};break;case 23:this.$={stmt:"state",id:e[l],type:"choice"};break;case 24:this.$={stmt:"state",id:o.getDividerId(),type:"divider"};break;case 25:this.$={stmt:"state",id:e[l-1].trim(),note:{position:e[l-2].trim(),text:e[l].trim()}};break;case 28:this.$=e[l].trim(),o.setAccTitle(this.$);break;case 29:case 30:this.$=e[l].trim(),o.setAccDescription(this.$);break;case 31:case 32:this.$={stmt:"classDef",id:e[l-1].trim(),classes:e[l].trim()};break;case 33:this.$={stmt:"applyClass",id:e[l-1].trim(),styleClass:e[l].trim()};break;case 34:o.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 35:o.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 36:o.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 37:o.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 40:case 41:this.$={stmt:"state",id:e[l].trim(),type:"default",description:""};break;case 42:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break;case 43:this.$={stmt:"state",id:e[l-2].trim(),classes:[e[l].trim()],type:"default",description:""};break}},table:[{3:1,4:s,5:a,6:h},{1:[3]},{3:5,4:s,5:a,6:h},{3:6,4:s,5:a,6:h},t([1,4,5,15,16,18,21,23,24,25,26,27,28,32,34,36,37,41,44,45,46,47,50],f,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,5]),{9:36,10:12,11:13,12:14,15:k,16:u,18:E,21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,7]),t(c,[2,8]),t(c,[2,9]),t(c,[2,10]),t(c,[2,11],{13:[1,37],14:[1,38]}),t(c,[2,15]),{17:[1,39]},t(c,[2,17],{19:[1,40]}),{22:[1,41]},t(c,[2,21]),t(c,[2,22]),t(c,[2,23]),t(c,[2,24]),{29:42,30:[1,43],52:[1,44],53:[1,45]},t(c,[2,27]),{33:[1,46]},{35:[1,47]},t(c,[2,30]),{38:[1,48],40:[1,49]},{42:[1,50]},t(et,[2,40],{51:[1,51]}),t(et,[2,41],{51:[1,52]}),t(c,[2,34]),t(c,[2,35]),t(c,[2,36]),t(c,[2,37]),t(c,[2,6]),t(c,[2,12]),{12:53,23:R,50:w},t(c,[2,16]),t(Dt,f,{7:54}),{23:[1,55]},{23:[1,56]},{22:[1,57]},{23:[2,44]},{23:[2,45]},t(c,[2,28]),t(c,[2,29]),{39:[1,58]},{39:[1,59]},{43:[1,60]},{23:[1,61]},{23:[1,62]},t(c,[2,13],{13:[1,63]}),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,64],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,19],{19:[1,65]}),{30:[1,66]},{23:[1,67]},t(c,[2,31]),t(c,[2,32]),t(c,[2,33]),t(et,[2,42]),t(et,[2,43]),t(c,[2,14]),t(c,[2,18]),t(Dt,f,{7:68}),t(c,[2,25]),t(c,[2,26]),{4:d,5:y,8:8,9:10,10:12,11:13,12:14,15:k,16:u,18:E,20:[1,69],21:T,23:R,24:G,25:j,26:U,27:z,28:M,31:24,32:H,34:X,36:K,37:W,41:J,44:q,45:Q,46:Z,47:tt,50:w},t(c,[2,20])],defaultActions:{5:[2,1],6:[2,2],44:[2,44],45:[2,45]},parseError:function(r,n){if(n.recoverable)this.trace(r);else{var i=new Error(r);throw i.hash=n,i}},parse:function(r){var n=this,i=[0],o=[],p=[null],e=[],$=this.table,l="",A=0,O=0,st=2,B=1,ft=e.slice.call(arguments,1),S=Object.create(this.lexer),v={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(v.yy[dt]=this.yy[dt]);S.setInput(r,v.yy),v.yy.lexer=S,v.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var yt=S.yylloc;e.push(yt);var Gt=S.options&&S.options.ranges;typeof v.yy.parseError=="function"?this.parseError=v.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function jt(){var x;return x=o.pop()||S.lex()||B,typeof x!="number"&&(x instanceof Array&&(o=x,x=o.pop()),x=n.symbols_[x]||x),x}for(var _,L,m,pt,N={},it,b,Ct,rt;;){if(L=i[i.length-1],this.defaultActions[L]?m=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=jt()),m=$[L]&&$[L][_]),typeof m>"u"||!m.length||!m[0]){var St="";rt=[];for(it in $[L])this.terminals_[it]&&it>st&&rt.push("'"+this.terminals_[it]+"'");S.showPosition?St="Parse error on line "+(A+1)+`: `+S.showPosition()+` Expecting `+rt.join(", ")+", got '"+(this.terminals_[_]||_)+"'":St="Parse error on line "+(A+1)+": Unexpected "+(_==B?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(St,{text:S.match,token:this.terminals_[_]||_,line:S.yylineno,loc:yt,expected:rt})}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+_);switch(m[0]){case 1:i.push(_),p.push(S.yytext),e.push(S.yylloc),i.push(m[1]),_=null,O=S.yyleng,l=S.yytext,A=S.yylineno,yt=S.yylloc;break;case 2:if(b=this.productions_[m[1]][1],N.$=p[p.length-b],N._$={first_line:e[e.length-(b||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(b||1)].first_column,last_column:e[e.length-1].last_column},Gt&&(N._$.range=[e[e.length-(b||1)].range[0],e[e.length-1].range[1]]),pt=this.performAction.apply(N,[l,O,A,v.yy,m[1],p,e].concat(ft)),typeof pt<"u")return pt;b&&(i=i.slice(0,-1*b*2),p=p.slice(0,-1*b),e=e.slice(0,-1*b)),i.push(this.productions_[m[1]][0]),p.push(N.$),e.push(N._$),Ct=$[i[i.length-2]][i[i.length-1]],i.push(Ct);break;case 3:return!0}}return!0}},Yt=function(){var C={EOF:1,parseError:function(n,i){if(this.yy.parser)this.yy.parser.parseError(n,i);else throw new Error(n)},setInput:function(r,n){return this.yy=n||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var n=r.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var n=r.length,i=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var p=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===o.length?this.yylloc.first_column:0)+o[o.length-i.length].length-i[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var r=this.pastInput(),n=new Array(r.length+1).join("-");return r+this.upcomingInput()+` diff --git a/assets/styles-483fbfea-Dbx9RFKS.js b/assets/styles-483fbfea-BbaBfEuf.js similarity index 98% rename from assets/styles-483fbfea-Dbx9RFKS.js rename to assets/styles-483fbfea-BbaBfEuf.js index 1b78a08..b426343 100644 --- a/assets/styles-483fbfea-Dbx9RFKS.js +++ b/assets/styles-483fbfea-BbaBfEuf.js @@ -1,4 +1,4 @@ -import{G as R}from"./graph-k1ojK0f-.js";import{ab as z,ac as F,ad as j,ae as U,a9 as H,p as A,l as g,q as K,c as S,j as G,r as q,t as E,o as L,h as C,z as W,u as X,af as J}from"./mermaid.core-Cio1iadR.js";import{r as Q}from"./index-01f381cb-DBfo_-ML.js";import{c as Y}from"./channel-It_pefhc.js";function Z(e){return typeof e=="string"?new z([document.querySelectorAll(e)],[document.documentElement]):new z([j(e)],F)}function pe(e,l){return!!e.children(l).length}function be(e){return N(e.v)+":"+N(e.w)+":"+N(e.name)}var O=/:/g;function N(e){return e?String(e).replace(O,"\\:"):""}function ee(e,l){l&&e.attr("style",l)}function fe(e,l,c){l&&e.attr("class",l).attr("class",c+" "+e.attr("class"))}function ue(e,l){var c=l.graph();if(U(c)){var a=c.transition;if(H(a))return a(e)}return e}function te(e,l){var c=e.append("foreignObject").attr("width","100000"),a=c.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var i=l.label;switch(typeof i){case"function":a.insert(i);break;case"object":a.insert(function(){return i});break;default:a.html(i)}ee(a,l.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var d=a.node().getBoundingClientRect();return c.attr("width",d.width).attr("height",d.height),c}const P={},re=function(e){const l=Object.keys(e);for(const c of l)P[c]=e[c]},V=async function(e,l,c,a,i,d){const u=a.select(`[id="${c}"]`),n=Object.keys(e);for(const p of n){const r=e[p];let y="default";r.classes.length>0&&(y=r.classes.join(" ")),y=y+" flowchart-label";const w=A(r.styles);let t=r.text!==void 0?r.text:r.id,s;if(g.info("vertex",r,r.labelType),r.labelType==="markdown")g.info("vertex",r,r.labelType);else if(K(S().flowchart.htmlLabels))s=te(u,{label:t}).node(),s.parentNode.removeChild(s);else{const k=i.createElementNS("http://www.w3.org/2000/svg","text");k.setAttribute("style",w.labelStyle.replace("color:","fill:"));const _=t.split(G.lineBreakRegex);for(const $ of _){const v=i.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","1"),v.textContent=$,k.appendChild(v)}s=k}let b=0,o="";switch(r.type){case"round":b=5,o="rect";break;case"square":o="rect";break;case"diamond":o="question";break;case"hexagon":o="hexagon";break;case"odd":o="rect_left_inv_arrow";break;case"lean_right":o="lean_right";break;case"lean_left":o="lean_left";break;case"trapezoid":o="trapezoid";break;case"inv_trapezoid":o="inv_trapezoid";break;case"odd_right":o="rect_left_inv_arrow";break;case"circle":o="circle";break;case"ellipse":o="ellipse";break;case"stadium":o="stadium";break;case"subroutine":o="subroutine";break;case"cylinder":o="cylinder";break;case"group":o="rect";break;case"doublecircle":o="doublecircle";break;default:o="rect"}const T=await q(t,S());l.setNode(r.id,{labelStyle:w.labelStyle,shape:o,labelText:T,labelType:r.labelType,rx:b,ry:b,class:y,style:w.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:d.db.getTooltip(r.id)||"",domId:d.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:r.type==="group"?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:S().flowchart.padding}),g.info("setNode",{labelStyle:w.labelStyle,labelType:r.labelType,shape:o,labelText:T,rx:b,ry:b,class:y,style:w.style,id:r.id,domId:d.db.lookUpDomId(r.id),width:r.type==="group"?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:S().flowchart.padding})}},M=async function(e,l,c){g.info("abc78 edges = ",e);let a=0,i={},d,u;if(e.defaultStyle!==void 0){const n=A(e.defaultStyle);d=n.style,u=n.labelStyle}for(const n of e){a++;const p="L-"+n.start+"-"+n.end;i[p]===void 0?(i[p]=0,g.info("abc78 new entry",p,i[p])):(i[p]++,g.info("abc78 new entry",p,i[p]));let r=p+"-"+i[p];g.info("abc78 new link id to be used is",p,r,i[p]);const y="LS-"+n.start,w="LE-"+n.end,t={style:"",labelStyle:""};switch(t.minlen=n.length||1,n.type==="arrow_open"?t.arrowhead="none":t.arrowhead="normal",t.arrowTypeStart="arrow_open",t.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":t.arrowTypeStart="arrow_cross";case"arrow_cross":t.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":t.arrowTypeStart="arrow_point";case"arrow_point":t.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":t.arrowTypeStart="arrow_circle";case"arrow_circle":t.arrowTypeEnd="arrow_circle";break}let s="",b="";switch(n.stroke){case"normal":s="fill:none;",d!==void 0&&(s=d),u!==void 0&&(b=u),t.thickness="normal",t.pattern="solid";break;case"dotted":t.thickness="normal",t.pattern="dotted",t.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":t.thickness="thick",t.pattern="solid",t.style="stroke-width: 3.5px;fill:none;";break;case"invisible":t.thickness="invisible",t.pattern="solid",t.style="stroke-width: 0;fill:none;";break}if(n.style!==void 0){const o=A(n.style);s=o.style,b=o.labelStyle}t.style=t.style+=s,t.labelStyle=t.labelStyle+=b,n.interpolate!==void 0?t.curve=E(n.interpolate,L):e.defaultInterpolate!==void 0?t.curve=E(e.defaultInterpolate,L):t.curve=E(P.curve,L),n.text===void 0?n.style!==void 0&&(t.arrowheadStyle="fill: #333"):(t.arrowheadStyle="fill: #333",t.labelpos="c"),t.labelType=n.labelType,t.label=await q(n.text.replace(G.lineBreakRegex,` +import{G as R}from"./graph-BKQChTdx.js";import{ab as z,ac as F,ad as j,ae as U,a9 as H,p as A,l as g,q as K,c as S,j as G,r as q,t as E,o as L,h as C,z as W,u as X,af as J}from"./mermaid.core-D8sVPjx9.js";import{r as Q}from"./index-01f381cb-CtMJaTFR.js";import{c as Y}from"./channel-tiY1AyWJ.js";function Z(e){return typeof e=="string"?new z([document.querySelectorAll(e)],[document.documentElement]):new z([j(e)],F)}function pe(e,l){return!!e.children(l).length}function be(e){return N(e.v)+":"+N(e.w)+":"+N(e.name)}var O=/:/g;function N(e){return e?String(e).replace(O,"\\:"):""}function ee(e,l){l&&e.attr("style",l)}function fe(e,l,c){l&&e.attr("class",l).attr("class",c+" "+e.attr("class"))}function ue(e,l){var c=l.graph();if(U(c)){var a=c.transition;if(H(a))return a(e)}return e}function te(e,l){var c=e.append("foreignObject").attr("width","100000"),a=c.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var i=l.label;switch(typeof i){case"function":a.insert(i);break;case"object":a.insert(function(){return i});break;default:a.html(i)}ee(a,l.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var d=a.node().getBoundingClientRect();return c.attr("width",d.width).attr("height",d.height),c}const P={},re=function(e){const l=Object.keys(e);for(const c of l)P[c]=e[c]},V=async function(e,l,c,a,i,d){const u=a.select(`[id="${c}"]`),n=Object.keys(e);for(const p of n){const r=e[p];let y="default";r.classes.length>0&&(y=r.classes.join(" ")),y=y+" flowchart-label";const w=A(r.styles);let t=r.text!==void 0?r.text:r.id,s;if(g.info("vertex",r,r.labelType),r.labelType==="markdown")g.info("vertex",r,r.labelType);else if(K(S().flowchart.htmlLabels))s=te(u,{label:t}).node(),s.parentNode.removeChild(s);else{const k=i.createElementNS("http://www.w3.org/2000/svg","text");k.setAttribute("style",w.labelStyle.replace("color:","fill:"));const _=t.split(G.lineBreakRegex);for(const $ of _){const v=i.createElementNS("http://www.w3.org/2000/svg","tspan");v.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),v.setAttribute("dy","1em"),v.setAttribute("x","1"),v.textContent=$,k.appendChild(v)}s=k}let b=0,o="";switch(r.type){case"round":b=5,o="rect";break;case"square":o="rect";break;case"diamond":o="question";break;case"hexagon":o="hexagon";break;case"odd":o="rect_left_inv_arrow";break;case"lean_right":o="lean_right";break;case"lean_left":o="lean_left";break;case"trapezoid":o="trapezoid";break;case"inv_trapezoid":o="inv_trapezoid";break;case"odd_right":o="rect_left_inv_arrow";break;case"circle":o="circle";break;case"ellipse":o="ellipse";break;case"stadium":o="stadium";break;case"subroutine":o="subroutine";break;case"cylinder":o="cylinder";break;case"group":o="rect";break;case"doublecircle":o="doublecircle";break;default:o="rect"}const T=await q(t,S());l.setNode(r.id,{labelStyle:w.labelStyle,shape:o,labelText:T,labelType:r.labelType,rx:b,ry:b,class:y,style:w.style,id:r.id,link:r.link,linkTarget:r.linkTarget,tooltip:d.db.getTooltip(r.id)||"",domId:d.db.lookUpDomId(r.id),haveCallback:r.haveCallback,width:r.type==="group"?500:void 0,dir:r.dir,type:r.type,props:r.props,padding:S().flowchart.padding}),g.info("setNode",{labelStyle:w.labelStyle,labelType:r.labelType,shape:o,labelText:T,rx:b,ry:b,class:y,style:w.style,id:r.id,domId:d.db.lookUpDomId(r.id),width:r.type==="group"?500:void 0,type:r.type,dir:r.dir,props:r.props,padding:S().flowchart.padding})}},M=async function(e,l,c){g.info("abc78 edges = ",e);let a=0,i={},d,u;if(e.defaultStyle!==void 0){const n=A(e.defaultStyle);d=n.style,u=n.labelStyle}for(const n of e){a++;const p="L-"+n.start+"-"+n.end;i[p]===void 0?(i[p]=0,g.info("abc78 new entry",p,i[p])):(i[p]++,g.info("abc78 new entry",p,i[p]));let r=p+"-"+i[p];g.info("abc78 new link id to be used is",p,r,i[p]);const y="LS-"+n.start,w="LE-"+n.end,t={style:"",labelStyle:""};switch(t.minlen=n.length||1,n.type==="arrow_open"?t.arrowhead="none":t.arrowhead="normal",t.arrowTypeStart="arrow_open",t.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":t.arrowTypeStart="arrow_cross";case"arrow_cross":t.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":t.arrowTypeStart="arrow_point";case"arrow_point":t.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":t.arrowTypeStart="arrow_circle";case"arrow_circle":t.arrowTypeEnd="arrow_circle";break}let s="",b="";switch(n.stroke){case"normal":s="fill:none;",d!==void 0&&(s=d),u!==void 0&&(b=u),t.thickness="normal",t.pattern="solid";break;case"dotted":t.thickness="normal",t.pattern="dotted",t.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":t.thickness="thick",t.pattern="solid",t.style="stroke-width: 3.5px;fill:none;";break;case"invisible":t.thickness="invisible",t.pattern="solid",t.style="stroke-width: 0;fill:none;";break}if(n.style!==void 0){const o=A(n.style);s=o.style,b=o.labelStyle}t.style=t.style+=s,t.labelStyle=t.labelStyle+=b,n.interpolate!==void 0?t.curve=E(n.interpolate,L):e.defaultInterpolate!==void 0?t.curve=E(e.defaultInterpolate,L):t.curve=E(P.curve,L),n.text===void 0?n.style!==void 0&&(t.arrowheadStyle="fill: #333"):(t.arrowheadStyle="fill: #333",t.labelpos="c"),t.labelType=n.labelType,t.label=await q(n.text.replace(G.lineBreakRegex,` `),S()),n.style===void 0&&(t.style=t.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),t.labelStyle=t.labelStyle.replace("color:","fill:"),t.id=r,t.classes="flowchart-link "+y+" "+w,l.setEdge(n.start,n.end,t,a)}},le=function(e,l){return l.db.getClasses()},ae=async function(e,l,c,a){g.info("Drawing flowchart");let i=a.db.getDirection();i===void 0&&(i="TD");const{securityLevel:d,flowchart:u}=S(),n=u.nodeSpacing||50,p=u.rankSpacing||50;let r;d==="sandbox"&&(r=C("#i"+l));const y=d==="sandbox"?C(r.nodes()[0].contentDocument.body):C("body"),w=d==="sandbox"?r.nodes()[0].contentDocument:document,t=new R({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:n,ranksep:p,marginx:0,marginy:0}).setDefaultEdgeLabel(function(){return{}});let s;const b=a.db.getSubGraphs();g.info("Subgraphs - ",b);for(let f=b.length-1;f>=0;f--)s=b[f],g.info("Subgraph - ",s),a.db.addVertex(s.id,{text:s.title,type:s.labelType},"group",void 0,s.classes,s.dir);const o=a.db.getVertices(),T=a.db.getEdges();g.info("Edges",T);let k=0;for(k=b.length-1;k>=0;k--){s=b[k],Z("cluster").append("text");for(let f=0;f{const c=Y,a=c(e,"r"),i=c(e,"g"),d=c(e,"b");return J(a,i,d,l)},ne=e=>`.label { font-family: ${e.fontFamily}; color: ${e.nodeTextColor||e.textColor}; diff --git a/assets/styles-b83b31c9-BnKcw3I0.js b/assets/styles-b83b31c9-DZ0N-tpj.js similarity index 99% rename from assets/styles-b83b31c9-BnKcw3I0.js rename to assets/styles-b83b31c9-DZ0N-tpj.js index d7ad17a..91413c6 100644 --- a/assets/styles-b83b31c9-BnKcw3I0.js +++ b/assets/styles-b83b31c9-DZ0N-tpj.js @@ -1,4 +1,4 @@ -import{s as ut,g as rt,a as at,b as lt,c as F,x as ct,y as ot,j as v,A as ht,l as At,z as We,h as z,d as pt,ar as Re}from"./mermaid.core-Cio1iadR.js";var Ve=function(){var e=function(x,u,a,h){for(a=a||{},h=x.length;h--;a[x[h]]=u);return a},i=[1,17],r=[1,18],l=[1,19],o=[1,39],A=[1,40],g=[1,25],D=[1,23],B=[1,24],_=[1,31],fe=[1,32],de=[1,33],Ee=[1,34],Ce=[1,35],me=[1,36],be=[1,26],ge=[1,27],ke=[1,28],Te=[1,29],d=[1,43],Fe=[1,30],E=[1,42],C=[1,44],m=[1,41],k=[1,45],ye=[1,9],c=[1,8,9],Y=[1,56],j=[1,57],Q=[1,58],X=[1,59],H=[1,60],De=[1,61],Be=[1,62],W=[1,8,9,39],Ge=[1,74],M=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],q=[1,8,9,12,13,19,21,37,39,42,46,59,60,61,62,63,64,65,70,72,74,80,95,97,98],J=[13,74,80,95,97,98],G=[13,64,65,74,80,95,97,98],Ue=[13,59,60,61,62,63,74,80,95,97,98],_e=[1,93],Z=[1,110],$=[1,108],ee=[1,102],te=[1,103],se=[1,104],ie=[1,105],ne=[1,106],ue=[1,107],re=[1,109],Se=[1,8,9,37,39,42],ae=[1,8,9,21],ze=[1,8,9,78],S=[1,8,9,21,73,74,78,80,81,82,83,84,85],Ne={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,styleStatement:27,cssClassStatement:28,noteStatement:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,namespaceIdentifier:36,STRUCT_START:37,classStatements:38,STRUCT_STOP:39,NAMESPACE:40,classIdentifier:41,STYLE_SEPARATOR:42,members:43,CLASS:44,ANNOTATION_START:45,ANNOTATION_END:46,MEMBER:47,SEPARATOR:48,relation:49,NOTE_FOR:50,noteText:51,NOTE:52,direction_tb:53,direction_bt:54,direction_rl:55,direction_lr:56,relationType:57,lineType:58,AGGREGATION:59,EXTENSION:60,COMPOSITION:61,DEPENDENCY:62,LOLLIPOP:63,LINE:64,DOTTED_LINE:65,CALLBACK:66,LINK:67,LINK_TARGET:68,CLICK:69,CALLBACK_NAME:70,CALLBACK_ARGS:71,HREF:72,STYLE:73,ALPHA:74,stylesOpt:75,CSSCLASS:76,style:77,COMMA:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,commentToken:86,textToken:87,graphCodeTokens:88,textNoTagsToken:89,TAGSTART:90,TAGEND:91,"==":92,"--":93,DEFAULT:94,MINUS:95,keywords:96,UNICODE_TEXT:97,BQUOTE_STR:98,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",37:"STRUCT_START",39:"STRUCT_STOP",40:"NAMESPACE",42:"STYLE_SEPARATOR",44:"CLASS",45:"ANNOTATION_START",46:"ANNOTATION_END",47:"MEMBER",48:"SEPARATOR",50:"NOTE_FOR",52:"NOTE",53:"direction_tb",54:"direction_bt",55:"direction_rl",56:"direction_lr",59:"AGGREGATION",60:"EXTENSION",61:"COMPOSITION",62:"DEPENDENCY",63:"LOLLIPOP",64:"LINE",65:"DOTTED_LINE",66:"CALLBACK",67:"LINK",68:"LINK_TARGET",69:"CLICK",70:"CALLBACK_NAME",71:"CALLBACK_ARGS",72:"HREF",73:"STYLE",74:"ALPHA",76:"CSSCLASS",78:"COMMA",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",88:"graphCodeTokens",90:"TAGSTART",91:"TAGEND",92:"==",93:"--",94:"DEFAULT",95:"MINUS",96:"keywords",97:"UNICODE_TEXT",98:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[36,2],[38,1],[38,2],[38,3],[23,1],[23,3],[23,4],[23,6],[41,2],[41,3],[25,4],[43,1],[43,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[29,3],[29,2],[30,1],[30,1],[30,1],[30,1],[49,3],[49,2],[49,2],[49,1],[57,1],[57,1],[57,1],[57,1],[57,1],[58,1],[58,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[28,3],[75,1],[75,3],[77,1],[77,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[86,1],[86,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[89,1],[89,1],[89,1],[89,1],[16,1],[16,1],[16,1],[16,1],[18,1],[51,1]],performAction:function(u,a,h,n,f,t,U){var s=t.length-1;switch(f){case 8:this.$=t[s-1];break;case 9:case 11:case 12:this.$=t[s];break;case 10:case 13:this.$=t[s-1]+t[s];break;case 14:case 15:this.$=t[s-1]+"~"+t[s]+"~";break;case 16:n.addRelation(t[s]);break;case 17:t[s-1].title=n.cleanupLabel(t[s]),n.addRelation(t[s-1]);break;case 27:this.$=t[s].trim(),n.setAccTitle(this.$);break;case 28:case 29:this.$=t[s].trim(),n.setAccDescription(this.$);break;case 30:n.addClassesToNamespace(t[s-3],t[s-1]);break;case 31:n.addClassesToNamespace(t[s-4],t[s-1]);break;case 32:this.$=t[s],n.addNamespace(t[s]);break;case 33:this.$=[t[s]];break;case 34:this.$=[t[s-1]];break;case 35:t[s].unshift(t[s-2]),this.$=t[s];break;case 37:n.setCssClass(t[s-2],t[s]);break;case 38:n.addMembers(t[s-3],t[s-1]);break;case 39:n.setCssClass(t[s-5],t[s-3]),n.addMembers(t[s-5],t[s-1]);break;case 40:this.$=t[s],n.addClass(t[s]);break;case 41:this.$=t[s-1],n.addClass(t[s-1]),n.setClassLabel(t[s-1],t[s]);break;case 42:n.addAnnotation(t[s],t[s-2]);break;case 43:this.$=[t[s]];break;case 44:t[s].push(t[s-1]),this.$=t[s];break;case 45:break;case 46:n.addMember(t[s-1],n.cleanupLabel(t[s]));break;case 47:break;case 48:break;case 49:this.$={id1:t[s-2],id2:t[s],relation:t[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:t[s-3],id2:t[s],relation:t[s-1],relationTitle1:t[s-2],relationTitle2:"none"};break;case 51:this.$={id1:t[s-3],id2:t[s],relation:t[s-2],relationTitle1:"none",relationTitle2:t[s-1]};break;case 52:this.$={id1:t[s-4],id2:t[s],relation:t[s-2],relationTitle1:t[s-3],relationTitle2:t[s-1]};break;case 53:n.addNote(t[s],t[s-1]);break;case 54:n.addNote(t[s]);break;case 55:n.setDirection("TB");break;case 56:n.setDirection("BT");break;case 57:n.setDirection("RL");break;case 58:n.setDirection("LR");break;case 59:this.$={type1:t[s-2],type2:t[s],lineType:t[s-1]};break;case 60:this.$={type1:"none",type2:t[s],lineType:t[s-1]};break;case 61:this.$={type1:t[s-1],type2:"none",lineType:t[s]};break;case 62:this.$={type1:"none",type2:"none",lineType:t[s]};break;case 63:this.$=n.relationType.AGGREGATION;break;case 64:this.$=n.relationType.EXTENSION;break;case 65:this.$=n.relationType.COMPOSITION;break;case 66:this.$=n.relationType.DEPENDENCY;break;case 67:this.$=n.relationType.LOLLIPOP;break;case 68:this.$=n.lineType.LINE;break;case 69:this.$=n.lineType.DOTTED_LINE;break;case 70:case 76:this.$=t[s-2],n.setClickEvent(t[s-1],t[s]);break;case 71:case 77:this.$=t[s-3],n.setClickEvent(t[s-2],t[s-1]),n.setTooltip(t[s-2],t[s]);break;case 72:this.$=t[s-2],n.setLink(t[s-1],t[s]);break;case 73:this.$=t[s-3],n.setLink(t[s-2],t[s-1],t[s]);break;case 74:this.$=t[s-3],n.setLink(t[s-2],t[s-1]),n.setTooltip(t[s-2],t[s]);break;case 75:this.$=t[s-4],n.setLink(t[s-3],t[s-2],t[s]),n.setTooltip(t[s-3],t[s-1]);break;case 78:this.$=t[s-3],n.setClickEvent(t[s-2],t[s-1],t[s]);break;case 79:this.$=t[s-4],n.setClickEvent(t[s-3],t[s-2],t[s-1]),n.setTooltip(t[s-3],t[s]);break;case 80:this.$=t[s-3],n.setLink(t[s-2],t[s]);break;case 81:this.$=t[s-4],n.setLink(t[s-3],t[s-1],t[s]);break;case 82:this.$=t[s-4],n.setLink(t[s-3],t[s-1]),n.setTooltip(t[s-3],t[s]);break;case 83:this.$=t[s-5],n.setLink(t[s-4],t[s-2],t[s]),n.setTooltip(t[s-4],t[s-1]);break;case 84:this.$=t[s-2],n.setCssStyle(t[s-1],t[s]);break;case 85:n.setCssClass(t[s-1],t[s]);break;case 86:this.$=[t[s]];break;case 87:t[s-2].push(t[s]),this.$=t[s-2];break;case 89:this.$=t[s-1]+t[s];break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:i,33:r,35:l,36:21,40:o,41:22,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(ye,[2,5],{8:[1,46]}),{8:[1,47]},e(c,[2,16],{21:[1,48]}),e(c,[2,18]),e(c,[2,19]),e(c,[2,20]),e(c,[2,21]),e(c,[2,22]),e(c,[2,23]),e(c,[2,24]),e(c,[2,25]),e(c,[2,26]),{32:[1,49]},{34:[1,50]},e(c,[2,29]),e(c,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:Y,60:j,61:Q,62:X,63:H,64:De,65:Be}),{37:[1,63]},e(W,[2,36],{37:[1,65],42:[1,64]}),e(c,[2,47]),e(c,[2,48]),{16:66,74:d,80:E,95:C,97:m},{16:37,17:67,18:38,74:d,80:E,95:C,97:m,98:k},{16:37,17:68,18:38,74:d,80:E,95:C,97:m,98:k},{16:37,17:69,18:38,74:d,80:E,95:C,97:m,98:k},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:d,80:E,95:C,97:m,98:k},{13:Ge,51:73},e(c,[2,55]),e(c,[2,56]),e(c,[2,57]),e(c,[2,58]),e(M,[2,11],{16:37,18:38,17:75,19:[1,76],74:d,80:E,95:C,97:m,98:k}),e(M,[2,12],{19:[1,77]}),{15:78,16:79,74:d,80:E,95:C,97:m},{16:37,17:80,18:38,74:d,80:E,95:C,97:m,98:k},e(q,[2,112]),e(q,[2,113]),e(q,[2,114]),e(q,[2,115]),e([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),e(ye,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,17:20,36:21,41:22,16:37,18:38,5:81,31:i,33:r,35:l,40:o,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k}),{5:82,10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:i,33:r,35:l,36:21,40:o,41:22,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k},e(c,[2,17]),e(c,[2,27]),e(c,[2,28]),{13:[1,84],16:37,17:83,18:38,74:d,80:E,95:C,97:m,98:k},{49:85,57:54,58:55,59:Y,60:j,61:Q,62:X,63:H,64:De,65:Be},e(c,[2,46]),{58:86,64:De,65:Be},e(J,[2,62],{57:87,59:Y,60:j,61:Q,62:X,63:H}),e(G,[2,63]),e(G,[2,64]),e(G,[2,65]),e(G,[2,66]),e(G,[2,67]),e(Ue,[2,68]),e(Ue,[2,69]),{8:[1,89],23:90,38:88,41:22,44:A},{16:91,74:d,80:E,95:C,97:m},{43:92,47:_e},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:Z,73:$,74:ee,75:99,77:100,79:101,80:te,81:se,82:ie,83:ne,84:ue,85:re},{74:[1,111]},{13:Ge,51:112},e(c,[2,54]),e(c,[2,117]),e(M,[2,13]),e(M,[2,14]),e(M,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:d,80:E,95:C,97:m},e(Se,[2,40],{11:114,12:[1,115]}),e(ye,[2,7]),{9:[1,116]},e(ae,[2,49]),{16:37,17:117,18:38,74:d,80:E,95:C,97:m,98:k},{13:[1,119],16:37,17:118,18:38,74:d,80:E,95:C,97:m,98:k},e(J,[2,61],{57:120,59:Y,60:j,61:Q,62:X,63:H}),e(J,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:A},{8:[1,123],39:[2,33]},e(W,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:_e},{16:37,17:127,18:38,74:d,80:E,95:C,97:m,98:k},e(c,[2,70],{13:[1,128]}),e(c,[2,72],{13:[1,130],68:[1,129]}),e(c,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},e(c,[2,84],{78:[1,134]}),e(ze,[2,86],{79:135,21:Z,73:$,74:ee,80:te,81:se,82:ie,83:ne,84:ue,85:re}),e(S,[2,88]),e(S,[2,90]),e(S,[2,91]),e(S,[2,92]),e(S,[2,93]),e(S,[2,94]),e(S,[2,95]),e(S,[2,96]),e(S,[2,97]),e(S,[2,98]),e(c,[2,85]),e(c,[2,53]),{37:[2,10]},e(Se,[2,41]),{13:[1,136]},{1:[2,4]},e(ae,[2,51]),e(ae,[2,50]),{16:37,17:137,18:38,74:d,80:E,95:C,97:m,98:k},e(J,[2,59]),e(c,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:A},{43:140,47:_e},e(W,[2,38]),{39:[2,44]},e(c,[2,42]),e(c,[2,71]),e(c,[2,73]),e(c,[2,74],{68:[1,141]}),e(c,[2,77]),e(c,[2,78],{13:[1,142]}),e(c,[2,80],{13:[1,144],68:[1,143]}),{21:Z,73:$,74:ee,77:145,79:101,80:te,81:se,82:ie,83:ne,84:ue,85:re},e(S,[2,89]),{14:[1,146]},e(ae,[2,52]),e(c,[2,31]),{39:[2,35]},{39:[1,147]},e(c,[2,75]),e(c,[2,79]),e(c,[2,81]),e(c,[2,82],{68:[1,148]}),e(ze,[2,87],{79:135,21:Z,73:$,74:ee,80:te,81:se,82:ie,83:ne,84:ue,85:re}),e(Se,[2,8]),e(W,[2,39]),e(c,[2,83])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],78:[2,32],113:[2,10],116:[2,4],126:[2,44],139:[2,35]},parseError:function(u,a){if(a.recoverable)this.trace(u);else{var h=new Error(u);throw h.hash=a,h}},parse:function(u){var a=this,h=[0],n=[],f=[null],t=[],U=this.table,s="",le=0,Ke=0,tt=2,Ye=1,st=t.slice.call(arguments,1),b=Object.create(this.lexer),I={yy:{}};for(var ve in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ve)&&(I.yy[ve]=this.yy[ve]);b.setInput(u,I.yy),I.yy.lexer=b,I.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var xe=b.yylloc;t.push(xe);var it=b.options&&b.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function nt(){var L;return L=n.pop()||b.lex()||Ye,typeof L!="number"&&(L instanceof Array&&(n=L,L=n.pop()),L=a.symbols_[L]||L),L}for(var T,R,y,Oe,P={},ce,N,je,oe;;){if(R=h[h.length-1],this.defaultActions[R]?y=this.defaultActions[R]:((T===null||typeof T>"u")&&(T=nt()),y=U[R]&&U[R][T]),typeof y>"u"||!y.length||!y[0]){var Ie="";oe=[];for(ce in U[R])this.terminals_[ce]&&ce>tt&&oe.push("'"+this.terminals_[ce]+"'");b.showPosition?Ie="Parse error on line "+(le+1)+`: +import{s as ut,g as rt,a as at,b as lt,c as F,x as ct,y as ot,j as v,A as ht,l as At,z as We,h as z,d as pt,ar as Re}from"./mermaid.core-D8sVPjx9.js";var Ve=function(){var e=function(x,u,a,h){for(a=a||{},h=x.length;h--;a[x[h]]=u);return a},i=[1,17],r=[1,18],l=[1,19],o=[1,39],A=[1,40],g=[1,25],D=[1,23],B=[1,24],_=[1,31],fe=[1,32],de=[1,33],Ee=[1,34],Ce=[1,35],me=[1,36],be=[1,26],ge=[1,27],ke=[1,28],Te=[1,29],d=[1,43],Fe=[1,30],E=[1,42],C=[1,44],m=[1,41],k=[1,45],ye=[1,9],c=[1,8,9],Y=[1,56],j=[1,57],Q=[1,58],X=[1,59],H=[1,60],De=[1,61],Be=[1,62],W=[1,8,9,39],Ge=[1,74],M=[1,8,9,12,13,21,37,39,42,59,60,61,62,63,64,65,70,72],q=[1,8,9,12,13,19,21,37,39,42,46,59,60,61,62,63,64,65,70,72,74,80,95,97,98],J=[13,74,80,95,97,98],G=[13,64,65,74,80,95,97,98],Ue=[13,59,60,61,62,63,74,80,95,97,98],_e=[1,93],Z=[1,110],$=[1,108],ee=[1,102],te=[1,103],se=[1,104],ie=[1,105],ne=[1,106],ue=[1,107],re=[1,109],Se=[1,8,9,37,39,42],ae=[1,8,9,21],ze=[1,8,9,78],S=[1,8,9,21,73,74,78,80,81,82,83,84,85],Ne={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,className:17,classLiteralName:18,GENERICTYPE:19,relationStatement:20,LABEL:21,namespaceStatement:22,classStatement:23,memberStatement:24,annotationStatement:25,clickStatement:26,styleStatement:27,cssClassStatement:28,noteStatement:29,direction:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,namespaceIdentifier:36,STRUCT_START:37,classStatements:38,STRUCT_STOP:39,NAMESPACE:40,classIdentifier:41,STYLE_SEPARATOR:42,members:43,CLASS:44,ANNOTATION_START:45,ANNOTATION_END:46,MEMBER:47,SEPARATOR:48,relation:49,NOTE_FOR:50,noteText:51,NOTE:52,direction_tb:53,direction_bt:54,direction_rl:55,direction_lr:56,relationType:57,lineType:58,AGGREGATION:59,EXTENSION:60,COMPOSITION:61,DEPENDENCY:62,LOLLIPOP:63,LINE:64,DOTTED_LINE:65,CALLBACK:66,LINK:67,LINK_TARGET:68,CLICK:69,CALLBACK_NAME:70,CALLBACK_ARGS:71,HREF:72,STYLE:73,ALPHA:74,stylesOpt:75,CSSCLASS:76,style:77,COMMA:78,styleComponent:79,NUM:80,COLON:81,UNIT:82,SPACE:83,BRKT:84,PCT:85,commentToken:86,textToken:87,graphCodeTokens:88,textNoTagsToken:89,TAGSTART:90,TAGEND:91,"==":92,"--":93,DEFAULT:94,MINUS:95,keywords:96,UNICODE_TEXT:97,BQUOTE_STR:98,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",19:"GENERICTYPE",21:"LABEL",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",37:"STRUCT_START",39:"STRUCT_STOP",40:"NAMESPACE",42:"STYLE_SEPARATOR",44:"CLASS",45:"ANNOTATION_START",46:"ANNOTATION_END",47:"MEMBER",48:"SEPARATOR",50:"NOTE_FOR",52:"NOTE",53:"direction_tb",54:"direction_bt",55:"direction_rl",56:"direction_lr",59:"AGGREGATION",60:"EXTENSION",61:"COMPOSITION",62:"DEPENDENCY",63:"LOLLIPOP",64:"LINE",65:"DOTTED_LINE",66:"CALLBACK",67:"LINK",68:"LINK_TARGET",69:"CLICK",70:"CALLBACK_NAME",71:"CALLBACK_ARGS",72:"HREF",73:"STYLE",74:"ALPHA",76:"CSSCLASS",78:"COMMA",80:"NUM",81:"COLON",82:"UNIT",83:"SPACE",84:"BRKT",85:"PCT",88:"graphCodeTokens",90:"TAGSTART",91:"TAGEND",92:"==",93:"--",94:"DEFAULT",95:"MINUS",96:"keywords",97:"UNICODE_TEXT",98:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,2],[17,1],[17,1],[17,2],[17,2],[17,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[22,4],[22,5],[36,2],[38,1],[38,2],[38,3],[23,1],[23,3],[23,4],[23,6],[41,2],[41,3],[25,4],[43,1],[43,2],[24,1],[24,2],[24,1],[24,1],[20,3],[20,4],[20,4],[20,5],[29,3],[29,2],[30,1],[30,1],[30,1],[30,1],[49,3],[49,2],[49,2],[49,1],[57,1],[57,1],[57,1],[57,1],[57,1],[58,1],[58,1],[26,3],[26,4],[26,3],[26,4],[26,4],[26,5],[26,3],[26,4],[26,4],[26,5],[26,4],[26,5],[26,5],[26,6],[27,3],[28,3],[75,1],[75,3],[77,1],[77,2],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[79,1],[86,1],[86,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[89,1],[89,1],[89,1],[89,1],[16,1],[16,1],[16,1],[16,1],[18,1],[51,1]],performAction:function(u,a,h,n,f,t,U){var s=t.length-1;switch(f){case 8:this.$=t[s-1];break;case 9:case 11:case 12:this.$=t[s];break;case 10:case 13:this.$=t[s-1]+t[s];break;case 14:case 15:this.$=t[s-1]+"~"+t[s]+"~";break;case 16:n.addRelation(t[s]);break;case 17:t[s-1].title=n.cleanupLabel(t[s]),n.addRelation(t[s-1]);break;case 27:this.$=t[s].trim(),n.setAccTitle(this.$);break;case 28:case 29:this.$=t[s].trim(),n.setAccDescription(this.$);break;case 30:n.addClassesToNamespace(t[s-3],t[s-1]);break;case 31:n.addClassesToNamespace(t[s-4],t[s-1]);break;case 32:this.$=t[s],n.addNamespace(t[s]);break;case 33:this.$=[t[s]];break;case 34:this.$=[t[s-1]];break;case 35:t[s].unshift(t[s-2]),this.$=t[s];break;case 37:n.setCssClass(t[s-2],t[s]);break;case 38:n.addMembers(t[s-3],t[s-1]);break;case 39:n.setCssClass(t[s-5],t[s-3]),n.addMembers(t[s-5],t[s-1]);break;case 40:this.$=t[s],n.addClass(t[s]);break;case 41:this.$=t[s-1],n.addClass(t[s-1]),n.setClassLabel(t[s-1],t[s]);break;case 42:n.addAnnotation(t[s],t[s-2]);break;case 43:this.$=[t[s]];break;case 44:t[s].push(t[s-1]),this.$=t[s];break;case 45:break;case 46:n.addMember(t[s-1],n.cleanupLabel(t[s]));break;case 47:break;case 48:break;case 49:this.$={id1:t[s-2],id2:t[s],relation:t[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:t[s-3],id2:t[s],relation:t[s-1],relationTitle1:t[s-2],relationTitle2:"none"};break;case 51:this.$={id1:t[s-3],id2:t[s],relation:t[s-2],relationTitle1:"none",relationTitle2:t[s-1]};break;case 52:this.$={id1:t[s-4],id2:t[s],relation:t[s-2],relationTitle1:t[s-3],relationTitle2:t[s-1]};break;case 53:n.addNote(t[s],t[s-1]);break;case 54:n.addNote(t[s]);break;case 55:n.setDirection("TB");break;case 56:n.setDirection("BT");break;case 57:n.setDirection("RL");break;case 58:n.setDirection("LR");break;case 59:this.$={type1:t[s-2],type2:t[s],lineType:t[s-1]};break;case 60:this.$={type1:"none",type2:t[s],lineType:t[s-1]};break;case 61:this.$={type1:t[s-1],type2:"none",lineType:t[s]};break;case 62:this.$={type1:"none",type2:"none",lineType:t[s]};break;case 63:this.$=n.relationType.AGGREGATION;break;case 64:this.$=n.relationType.EXTENSION;break;case 65:this.$=n.relationType.COMPOSITION;break;case 66:this.$=n.relationType.DEPENDENCY;break;case 67:this.$=n.relationType.LOLLIPOP;break;case 68:this.$=n.lineType.LINE;break;case 69:this.$=n.lineType.DOTTED_LINE;break;case 70:case 76:this.$=t[s-2],n.setClickEvent(t[s-1],t[s]);break;case 71:case 77:this.$=t[s-3],n.setClickEvent(t[s-2],t[s-1]),n.setTooltip(t[s-2],t[s]);break;case 72:this.$=t[s-2],n.setLink(t[s-1],t[s]);break;case 73:this.$=t[s-3],n.setLink(t[s-2],t[s-1],t[s]);break;case 74:this.$=t[s-3],n.setLink(t[s-2],t[s-1]),n.setTooltip(t[s-2],t[s]);break;case 75:this.$=t[s-4],n.setLink(t[s-3],t[s-2],t[s]),n.setTooltip(t[s-3],t[s-1]);break;case 78:this.$=t[s-3],n.setClickEvent(t[s-2],t[s-1],t[s]);break;case 79:this.$=t[s-4],n.setClickEvent(t[s-3],t[s-2],t[s-1]),n.setTooltip(t[s-3],t[s]);break;case 80:this.$=t[s-3],n.setLink(t[s-2],t[s]);break;case 81:this.$=t[s-4],n.setLink(t[s-3],t[s-1],t[s]);break;case 82:this.$=t[s-4],n.setLink(t[s-3],t[s-1]),n.setTooltip(t[s-3],t[s]);break;case 83:this.$=t[s-5],n.setLink(t[s-4],t[s-2],t[s]),n.setTooltip(t[s-4],t[s-1]);break;case 84:this.$=t[s-2],n.setCssStyle(t[s-1],t[s]);break;case 85:n.setCssClass(t[s-1],t[s]);break;case 86:this.$=[t[s]];break;case 87:t[s-2].push(t[s]),this.$=t[s-2];break;case 89:this.$=t[s-1]+t[s];break}},table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:i,33:r,35:l,36:21,40:o,41:22,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(ye,[2,5],{8:[1,46]}),{8:[1,47]},e(c,[2,16],{21:[1,48]}),e(c,[2,18]),e(c,[2,19]),e(c,[2,20]),e(c,[2,21]),e(c,[2,22]),e(c,[2,23]),e(c,[2,24]),e(c,[2,25]),e(c,[2,26]),{32:[1,49]},{34:[1,50]},e(c,[2,29]),e(c,[2,45],{49:51,57:54,58:55,13:[1,52],21:[1,53],59:Y,60:j,61:Q,62:X,63:H,64:De,65:Be}),{37:[1,63]},e(W,[2,36],{37:[1,65],42:[1,64]}),e(c,[2,47]),e(c,[2,48]),{16:66,74:d,80:E,95:C,97:m},{16:37,17:67,18:38,74:d,80:E,95:C,97:m,98:k},{16:37,17:68,18:38,74:d,80:E,95:C,97:m,98:k},{16:37,17:69,18:38,74:d,80:E,95:C,97:m,98:k},{74:[1,70]},{13:[1,71]},{16:37,17:72,18:38,74:d,80:E,95:C,97:m,98:k},{13:Ge,51:73},e(c,[2,55]),e(c,[2,56]),e(c,[2,57]),e(c,[2,58]),e(M,[2,11],{16:37,18:38,17:75,19:[1,76],74:d,80:E,95:C,97:m,98:k}),e(M,[2,12],{19:[1,77]}),{15:78,16:79,74:d,80:E,95:C,97:m},{16:37,17:80,18:38,74:d,80:E,95:C,97:m,98:k},e(q,[2,112]),e(q,[2,113]),e(q,[2,114]),e(q,[2,115]),e([1,8,9,12,13,19,21,37,39,42,59,60,61,62,63,64,65,70,72],[2,116]),e(ye,[2,6],{10:5,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,17:20,36:21,41:22,16:37,18:38,5:81,31:i,33:r,35:l,40:o,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k}),{5:82,10:5,16:37,17:20,18:38,20:7,22:8,23:9,24:10,25:11,26:12,27:13,28:14,29:15,30:16,31:i,33:r,35:l,36:21,40:o,41:22,44:A,45:g,47:D,48:B,50:_,52:fe,53:de,54:Ee,55:Ce,56:me,66:be,67:ge,69:ke,73:Te,74:d,76:Fe,80:E,95:C,97:m,98:k},e(c,[2,17]),e(c,[2,27]),e(c,[2,28]),{13:[1,84],16:37,17:83,18:38,74:d,80:E,95:C,97:m,98:k},{49:85,57:54,58:55,59:Y,60:j,61:Q,62:X,63:H,64:De,65:Be},e(c,[2,46]),{58:86,64:De,65:Be},e(J,[2,62],{57:87,59:Y,60:j,61:Q,62:X,63:H}),e(G,[2,63]),e(G,[2,64]),e(G,[2,65]),e(G,[2,66]),e(G,[2,67]),e(Ue,[2,68]),e(Ue,[2,69]),{8:[1,89],23:90,38:88,41:22,44:A},{16:91,74:d,80:E,95:C,97:m},{43:92,47:_e},{46:[1,94]},{13:[1,95]},{13:[1,96]},{70:[1,97],72:[1,98]},{21:Z,73:$,74:ee,75:99,77:100,79:101,80:te,81:se,82:ie,83:ne,84:ue,85:re},{74:[1,111]},{13:Ge,51:112},e(c,[2,54]),e(c,[2,117]),e(M,[2,13]),e(M,[2,14]),e(M,[2,15]),{37:[2,32]},{15:113,16:79,37:[2,9],74:d,80:E,95:C,97:m},e(Se,[2,40],{11:114,12:[1,115]}),e(ye,[2,7]),{9:[1,116]},e(ae,[2,49]),{16:37,17:117,18:38,74:d,80:E,95:C,97:m,98:k},{13:[1,119],16:37,17:118,18:38,74:d,80:E,95:C,97:m,98:k},e(J,[2,61],{57:120,59:Y,60:j,61:Q,62:X,63:H}),e(J,[2,60]),{39:[1,121]},{23:90,38:122,41:22,44:A},{8:[1,123],39:[2,33]},e(W,[2,37],{37:[1,124]}),{39:[1,125]},{39:[2,43],43:126,47:_e},{16:37,17:127,18:38,74:d,80:E,95:C,97:m,98:k},e(c,[2,70],{13:[1,128]}),e(c,[2,72],{13:[1,130],68:[1,129]}),e(c,[2,76],{13:[1,131],71:[1,132]}),{13:[1,133]},e(c,[2,84],{78:[1,134]}),e(ze,[2,86],{79:135,21:Z,73:$,74:ee,80:te,81:se,82:ie,83:ne,84:ue,85:re}),e(S,[2,88]),e(S,[2,90]),e(S,[2,91]),e(S,[2,92]),e(S,[2,93]),e(S,[2,94]),e(S,[2,95]),e(S,[2,96]),e(S,[2,97]),e(S,[2,98]),e(c,[2,85]),e(c,[2,53]),{37:[2,10]},e(Se,[2,41]),{13:[1,136]},{1:[2,4]},e(ae,[2,51]),e(ae,[2,50]),{16:37,17:137,18:38,74:d,80:E,95:C,97:m,98:k},e(J,[2,59]),e(c,[2,30]),{39:[1,138]},{23:90,38:139,39:[2,34],41:22,44:A},{43:140,47:_e},e(W,[2,38]),{39:[2,44]},e(c,[2,42]),e(c,[2,71]),e(c,[2,73]),e(c,[2,74],{68:[1,141]}),e(c,[2,77]),e(c,[2,78],{13:[1,142]}),e(c,[2,80],{13:[1,144],68:[1,143]}),{21:Z,73:$,74:ee,77:145,79:101,80:te,81:se,82:ie,83:ne,84:ue,85:re},e(S,[2,89]),{14:[1,146]},e(ae,[2,52]),e(c,[2,31]),{39:[2,35]},{39:[1,147]},e(c,[2,75]),e(c,[2,79]),e(c,[2,81]),e(c,[2,82],{68:[1,148]}),e(ze,[2,87],{79:135,21:Z,73:$,74:ee,80:te,81:se,82:ie,83:ne,84:ue,85:re}),e(Se,[2,8]),e(W,[2,39]),e(c,[2,83])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],78:[2,32],113:[2,10],116:[2,4],126:[2,44],139:[2,35]},parseError:function(u,a){if(a.recoverable)this.trace(u);else{var h=new Error(u);throw h.hash=a,h}},parse:function(u){var a=this,h=[0],n=[],f=[null],t=[],U=this.table,s="",le=0,Ke=0,tt=2,Ye=1,st=t.slice.call(arguments,1),b=Object.create(this.lexer),I={yy:{}};for(var ve in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ve)&&(I.yy[ve]=this.yy[ve]);b.setInput(u,I.yy),I.yy.lexer=b,I.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var xe=b.yylloc;t.push(xe);var it=b.options&&b.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function nt(){var L;return L=n.pop()||b.lex()||Ye,typeof L!="number"&&(L instanceof Array&&(n=L,L=n.pop()),L=a.symbols_[L]||L),L}for(var T,R,y,Oe,P={},ce,N,je,oe;;){if(R=h[h.length-1],this.defaultActions[R]?y=this.defaultActions[R]:((T===null||typeof T>"u")&&(T=nt()),y=U[R]&&U[R][T]),typeof y>"u"||!y.length||!y[0]){var Ie="";oe=[];for(ce in U[R])this.terminals_[ce]&&ce>tt&&oe.push("'"+this.terminals_[ce]+"'");b.showPosition?Ie="Parse error on line "+(le+1)+`: `+b.showPosition()+` Expecting `+oe.join(", ")+", got '"+(this.terminals_[T]||T)+"'":Ie="Parse error on line "+(le+1)+": Unexpected "+(T==Ye?"end of input":"'"+(this.terminals_[T]||T)+"'"),this.parseError(Ie,{text:b.match,token:this.terminals_[T]||T,line:b.yylineno,loc:xe,expected:oe})}if(y[0]instanceof Array&&y.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+T);switch(y[0]){case 1:h.push(T),f.push(b.yytext),t.push(b.yylloc),h.push(y[1]),T=null,Ke=b.yyleng,s=b.yytext,le=b.yylineno,xe=b.yylloc;break;case 2:if(N=this.productions_[y[1]][1],P.$=f[f.length-N],P._$={first_line:t[t.length-(N||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(N||1)].first_column,last_column:t[t.length-1].last_column},it&&(P._$.range=[t[t.length-(N||1)].range[0],t[t.length-1].range[1]]),Oe=this.performAction.apply(P,[s,Ke,le,I.yy,y[1],f,t].concat(st)),typeof Oe<"u")return Oe;N&&(h=h.slice(0,-1*N*2),f=f.slice(0,-1*N),t=t.slice(0,-1*N)),h.push(this.productions_[y[1]][0]),f.push(P.$),t.push(P._$),je=U[h[h.length-2]][h[h.length-1]],h.push(je);break;case 3:return!0}}return!0}},et=function(){var x={EOF:1,parseError:function(a,h){if(this.yy.parser)this.yy.parser.parseError(a,h);else throw new Error(a)},setInput:function(u,a){return this.yy=a||this.yy||{},this._input=u,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var u=this._input[0];this.yytext+=u,this.yyleng++,this.offset++,this.match+=u,this.matched+=u;var a=u.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),u},unput:function(u){var a=u.length,h=u.split(/(?:\r\n?|\n)/g);this._input=u+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),h.length-1&&(this.yylineno-=h.length-1);var f=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:h?(h.length===n.length?this.yylloc.first_column:0)+n[n.length-h.length].length-h[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(u){this.unput(this.match.slice(u))},pastInput:function(){var u=this.matched.substr(0,this.matched.length-this.match.length);return(u.length>20?"...":"")+u.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var u=this.match;return u.length<20&&(u+=this._input.substr(0,20-u.length)),(u.substr(0,20)+(u.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var u=this.pastInput(),a=new Array(u.length+1).join("-");return u+this.upcomingInput()+` diff --git a/assets/svgDrawCommon-5e1cfd1d-BdGGMEzj.js b/assets/svgDrawCommon-5e1cfd1d-DOlHDRVT.js similarity index 95% rename from assets/svgDrawCommon-5e1cfd1d-BdGGMEzj.js rename to assets/svgDrawCommon-5e1cfd1d-DOlHDRVT.js index a65db7d..8c4eb44 100644 --- a/assets/svgDrawCommon-5e1cfd1d-BdGGMEzj.js +++ b/assets/svgDrawCommon-5e1cfd1d-DOlHDRVT.js @@ -1 +1 @@ -import{n as o,m as i}from"./mermaid.core-Cio1iadR.js";const l=(s,t)=>{const e=s.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx!==void 0&&e.attr("rx",t.rx),t.ry!==void 0&&e.attr("ry",t.ry),t.attrs!==void 0)for(const r in t.attrs)e.attr(r,t.attrs[r]);return t.class!==void 0&&e.attr("class",t.class),e},x=(s,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};l(s,e).lower()},d=(s,t)=>{const e=t.text.replace(o," "),r=s.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class!==void 0&&r.attr("class",t.class);const n=r.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(e),r},h=(s,t,e,r)=>{const n=s.append("image");n.attr("x",t),n.attr("y",e);const a=i.sanitizeUrl(r);n.attr("xlink:href",a)},y=(s,t,e,r)=>{const n=s.append("use");n.attr("x",t),n.attr("y",e);const a=i.sanitizeUrl(r);n.attr("xlink:href",`#${a}`)},g=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),m=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});export{x as a,m as b,y as c,l as d,h as e,d as f,g}; +import{n as o,m as i}from"./mermaid.core-D8sVPjx9.js";const l=(s,t)=>{const e=s.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx!==void 0&&e.attr("rx",t.rx),t.ry!==void 0&&e.attr("ry",t.ry),t.attrs!==void 0)for(const r in t.attrs)e.attr(r,t.attrs[r]);return t.class!==void 0&&e.attr("class",t.class),e},x=(s,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};l(s,e).lower()},d=(s,t)=>{const e=t.text.replace(o," "),r=s.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class!==void 0&&r.attr("class",t.class);const n=r.append("tspan");return n.attr("x",t.x+t.textMargin*2),n.text(e),r},h=(s,t,e,r)=>{const n=s.append("image");n.attr("x",t),n.attr("y",e);const a=i.sanitizeUrl(r);n.attr("xlink:href",a)},y=(s,t,e,r)=>{const n=s.append("use");n.attr("x",t),n.attr("y",e);const a=i.sanitizeUrl(r);n.attr("xlink:href",`#${a}`)},g=()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),m=()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0});export{x as a,m as b,y as c,l as d,h as e,d as f,g}; diff --git a/assets/taskiq-with-aiogram.html-CNQyAs84.js b/assets/taskiq-with-aiogram.html-CTg4OC-K.js similarity index 96% rename from assets/taskiq-with-aiogram.html-CNQyAs84.js rename to assets/taskiq-with-aiogram.html-CTg4OC-K.js index 531ddc8..595a884 100644 --- a/assets/taskiq-with-aiogram.html-CNQyAs84.js +++ b/assets/taskiq-with-aiogram.html-CTg4OC-K.js @@ -1,4 +1,4 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as i,c as p,b as n,d as s,e as t,a as c}from"./app-BQ_RvZRm.js";const l={},r=n("h1",{id:"taskiq-aiogram",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#taskiq-aiogram"},[n("span",null,"Taskiq + Aiogram")])],-1),u={href:"https://github.com/taskiq-python/taskiq-aiogram",target:"_blank",rel:"noopener noreferrer"},d={href:"https://docs.aiogram.dev/en/latest/",target:"_blank",rel:"noopener noreferrer"},k=c(`

This integration allows you to easily send delayed messages or run intensive functions without blocking the message handing.

This integration adds three main dependencies which you can use in your taskiq functions:

  • aiogram.Bot - the bot instance that you can use to send messages or perform other actions. If multiple bots listen to the same dispatcher, this dependency will be resolved to the latest bot passed in the taskiq_aiogram.init function.
  • aiogram.Dispatcher - current dispatcher instance.
  • List[aiogram.Bot] - list of all bots that were passed to the taskiq_aiogram.init function.

To enable the integration, please install the taskiq-aiogram library:

pip install "taskiq-aiogram"
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as i,c as p,b as n,d as s,e as t,a as c}from"./app-B7rxM88G.js";const l={},r=n("h1",{id:"taskiq-aiogram",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#taskiq-aiogram"},[n("span",null,"Taskiq + Aiogram")])],-1),u={href:"https://github.com/taskiq-python/taskiq-aiogram",target:"_blank",rel:"noopener noreferrer"},d={href:"https://docs.aiogram.dev/en/latest/",target:"_blank",rel:"noopener noreferrer"},k=c(`

This integration allows you to easily send delayed messages or run intensive functions without blocking the message handing.

This integration adds three main dependencies which you can use in your taskiq functions:

  • aiogram.Bot - the bot instance that you can use to send messages or perform other actions. If multiple bots listen to the same dispatcher, this dependency will be resolved to the latest bot passed in the taskiq_aiogram.init function.
  • aiogram.Dispatcher - current dispatcher instance.
  • List[aiogram.Bot] - list of all bots that were passed to the taskiq_aiogram.init function.

To enable the integration, please install the taskiq-aiogram library:

pip install "taskiq-aiogram"
 

After the installation is complete, add an initialization function call to your broker's main file so it becomes something like this:

import asyncio
 
 import taskiq_aiogram
@@ -72,4 +72,4 @@ bot = Bot(.basicConfig(level=logging.INFO, stream=sys.stdout)
     asyncio.run(main())
 
-

That's it. Now you can easily call tasks from your bots and access bots from within your tasks.

`,10);function m(v,g){const a=o("ExternalLinkIcon");return i(),p("div",null,[r,n("p",null,[n("a",u,[s("Taskiq-Aiogram"),t(a)]),s(" is a nice integration with one of the best telegram bot libraries - "),n("a",d,[s("aiogram"),t(a)]),s(".")]),k])}const y=e(l,[["render",m],["__file","taskiq-with-aiogram.html.vue"]]),w=JSON.parse('{"path":"/framework_integrations/taskiq-with-aiogram.html","title":"Taskiq + Aiogram","lang":"en-US","frontmatter":{"description":"Taskiq + Aiogram Taskiq-Aiogram is a nice integration with one of the best telegram bot libraries - aiogram. This integration allows you to easily send delayed messages or run i...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/framework_integrations/taskiq-with-aiogram.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Taskiq + Aiogram"}],["meta",{"property":"og:description","content":"Taskiq + Aiogram Taskiq-Aiogram is a nice integration with one of the best telegram bot libraries - aiogram. This integration allows you to easily send delayed messages or run i..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Taskiq + Aiogram\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"framework_integrations/taskiq-with-aiogram.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Taskiq-Aiogram is a nice integration with one of the best telegram bot libraries - aiogram.

\\n

This integration allows you to easily send delayed messages or run intensive functions without blocking the message handing.

"}');export{y as comp,w as data}; +

That's it. Now you can easily call tasks from your bots and access bots from within your tasks.

`,10);function m(v,g){const a=o("ExternalLinkIcon");return i(),p("div",null,[r,n("p",null,[n("a",u,[s("Taskiq-Aiogram"),t(a)]),s(" is a nice integration with one of the best telegram bot libraries - "),n("a",d,[s("aiogram"),t(a)]),s(".")]),k])}const y=e(l,[["render",m],["__file","taskiq-with-aiogram.html.vue"]]),w=JSON.parse('{"path":"/framework_integrations/taskiq-with-aiogram.html","title":"Taskiq + Aiogram","lang":"en-US","frontmatter":{"description":"Taskiq + Aiogram Taskiq-Aiogram is a nice integration with one of the best telegram bot libraries - aiogram. This integration allows you to easily send delayed messages or run i...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/framework_integrations/taskiq-with-aiogram.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Taskiq + Aiogram"}],["meta",{"property":"og:description","content":"Taskiq + Aiogram Taskiq-Aiogram is a nice integration with one of the best telegram bot libraries - aiogram. This integration allows you to easily send delayed messages or run i..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Taskiq + Aiogram\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"framework_integrations/taskiq-with-aiogram.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Taskiq-Aiogram is a nice integration with one of the best telegram bot libraries - aiogram.

\\n

This integration allows you to easily send delayed messages or run intensive functions without blocking the message handing.

"}');export{y as comp,w as data}; diff --git a/assets/taskiq-with-aiohttp.html-_Hkn4UgR.js b/assets/taskiq-with-aiohttp.html-BKUu5AbU.js similarity index 97% rename from assets/taskiq-with-aiohttp.html-_Hkn4UgR.js rename to assets/taskiq-with-aiohttp.html-BKUu5AbU.js index b9cc752..90ab89f 100644 --- a/assets/taskiq-with-aiohttp.html-_Hkn4UgR.js +++ b/assets/taskiq-with-aiohttp.html-BKUu5AbU.js @@ -1,4 +1,4 @@ -import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as d,c as u,b as n,d as e,e as a,w as t,a as p}from"./app-BQ_RvZRm.js";const k={},m=n("h1",{id:"taskiq-aiohttp",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#taskiq-aiohttp"},[n("span",null,"Taskiq + AioHTTP")])],-1),v=n("p",null,"AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better.",-1),h=n("h1",{id:"dependency-injection-for-aiohttp",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#dependency-injection-for-aiohttp"},[n("span",null,"Dependency injection for AioHTTP")])],-1),b={href:"https://pypi.org/project/aiohttp-deps/",target:"_blank",rel:"noopener noreferrer"},y=p(`

To install it, simply run:

pip install "aiohttp-deps"
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as d,c as u,b as n,d as e,e as a,w as t,a as p}from"./app-B7rxM88G.js";const k={},m=n("h1",{id:"taskiq-aiohttp",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#taskiq-aiohttp"},[n("span",null,"Taskiq + AioHTTP")])],-1),v=n("p",null,"AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better.",-1),h=n("h1",{id:"dependency-injection-for-aiohttp",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#dependency-injection-for-aiohttp"},[n("span",null,"Dependency injection for AioHTTP")])],-1),b={href:"https://pypi.org/project/aiohttp-deps/",target:"_blank",rel:"noopener noreferrer"},y=p(`

To install it, simply run:

pip install "aiohttp-deps"
 

After the installation, please add startup event to your application to initialize dependencies context.

from aiohttp import web
 import aiohttp_deps
 
@@ -75,4 +75,4 @@ taskiq_aiohttp.init.custom_dependency_context = {}
     await client.close()
-
`,3);function j(D,W){const s=l("ExternalLinkIcon"),c=l("Tabs");return d(),u("div",null,[m,v,h,n("p",null,[e("We created a library "),n("a",b,[e("aiohttp-deps"),a(s)]),e(" to add FastAPI-like dependency injection in AioHTTP.")]),y,n("p",null,[e("You can read more about dependency injection and available dependencies in the project's "),n("a",g,[e("README.md"),a(s)]),e(".")]),f,n("p",null,[e("We highly recommend using aiohttp with aiohttp-deps because it allows us to reuse the same dependencies for your handlers and tasks. First of all, you should install the "),n("a",_,[e("taskiq-aiohttp"),a(s)]),e(" library.")]),T,a(c,{id:"37",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:t(({value:i,isActive:o})=>[e("Annotated 3.10+")]),title1:t(({value:i,isActive:o})=>[e("default values")]),tab0:t(({value:i,isActive:o})=>[w]),tab1:t(({value:i,isActive:o})=>[q]),_:1}),A,x,n("p",null,[e("You can find more detailed examples in the "),n("a",P,[e("examples repo"),a(s)]),e(".")]),H])}const S=r(k,[["render",j],["__file","taskiq-with-aiohttp.html.vue"]]),N=JSON.parse('{"path":"/framework_integrations/taskiq-with-aiohttp.html","title":"Taskiq + AioHTTP","lang":"en-US","frontmatter":{"order":2,"description":"Taskiq + AioHTTP AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better. Dependency injection for ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/framework_integrations/taskiq-with-aiohttp.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Taskiq + AioHTTP"}],["meta",{"property":"og:description","content":"Taskiq + AioHTTP AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better. Dependency injection for ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Taskiq + AioHTTP\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Adding taskiq integration","slug":"adding-taskiq-integration","link":"#adding-taskiq-integration","children":[]},{"level":2,"title":"Testing","slug":"testing","link":"#testing","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"framework_integrations/taskiq-with-aiohttp.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better.

\\n

Dependency injection for AioHTTP

\\n

We created a library aiohttp-deps to add FastAPI-like dependency injection in AioHTTP.

"}');export{S as comp,N as data}; +
`,3);function j(D,W){const s=l("ExternalLinkIcon"),c=l("Tabs");return d(),u("div",null,[m,v,h,n("p",null,[e("We created a library "),n("a",b,[e("aiohttp-deps"),a(s)]),e(" to add FastAPI-like dependency injection in AioHTTP.")]),y,n("p",null,[e("You can read more about dependency injection and available dependencies in the project's "),n("a",g,[e("README.md"),a(s)]),e(".")]),f,n("p",null,[e("We highly recommend using aiohttp with aiohttp-deps because it allows us to reuse the same dependencies for your handlers and tasks. First of all, you should install the "),n("a",_,[e("taskiq-aiohttp"),a(s)]),e(" library.")]),T,a(c,{id:"37",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:t(({value:i,isActive:o})=>[e("Annotated 3.10+")]),title1:t(({value:i,isActive:o})=>[e("default values")]),tab0:t(({value:i,isActive:o})=>[w]),tab1:t(({value:i,isActive:o})=>[q]),_:1}),A,x,n("p",null,[e("You can find more detailed examples in the "),n("a",P,[e("examples repo"),a(s)]),e(".")]),H])}const S=r(k,[["render",j],["__file","taskiq-with-aiohttp.html.vue"]]),N=JSON.parse('{"path":"/framework_integrations/taskiq-with-aiohttp.html","title":"Taskiq + AioHTTP","lang":"en-US","frontmatter":{"order":2,"description":"Taskiq + AioHTTP AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better. Dependency injection for ...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/framework_integrations/taskiq-with-aiohttp.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Taskiq + AioHTTP"}],["meta",{"property":"og:description","content":"Taskiq + AioHTTP AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better. Dependency injection for ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Taskiq + AioHTTP\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Adding taskiq integration","slug":"adding-taskiq-integration","link":"#adding-taskiq-integration","children":[]},{"level":2,"title":"Testing","slug":"testing","link":"#testing","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"framework_integrations/taskiq-with-aiohttp.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better.

\\n

Dependency injection for AioHTTP

\\n

We created a library aiohttp-deps to add FastAPI-like dependency injection in AioHTTP.

"}');export{S as comp,N as data}; diff --git a/assets/taskiq-with-fastapi.html-BZZ3zjkD.js b/assets/taskiq-with-fastapi.html-Bo1avbi-.js similarity index 96% rename from assets/taskiq-with-fastapi.html-BZZ3zjkD.js rename to assets/taskiq-with-fastapi.html-Bo1avbi-.js index f4d2e2c..1eb0f19 100644 --- a/assets/taskiq-with-fastapi.html-BZZ3zjkD.js +++ b/assets/taskiq-with-fastapi.html-Bo1avbi-.js @@ -1,4 +1,4 @@ -import{_ as u}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as d,c as k,b as n,d as s,e,w as a,a as p}from"./app-BQ_RvZRm.js";const m={},v=n("h1",{id:"taskiq-fastapi",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#taskiq-fastapi"},[n("span",null,"Taskiq + FastAPI")])],-1),y=n("p",null,"FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things:",-1),h=n("ol",null,[n("li",null,"It's easy to use;"),n("li",null,"Cool dependency injection.")],-1),b={href:"https://github.com/taskiq-python/taskiq-fastapi",target:"_blank",rel:"noopener noreferrer"},f=p(`

Let's see what we got here. In this library, we provide users with only one public function called init. It takes a broker and a string path (as in uvicorn) to the fastapi application (or factory function). People should call this function in their main broker file.

from taskiq import ZeroMQBroker
+import{_ as u}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as d,c as k,b as n,d as s,e,w as a,a as p}from"./app-B7rxM88G.js";const m={},v=n("h1",{id:"taskiq-fastapi",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#taskiq-fastapi"},[n("span",null,"Taskiq + FastAPI")])],-1),y=n("p",null,"FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things:",-1),h=n("ol",null,[n("li",null,"It's easy to use;"),n("li",null,"Cool dependency injection.")],-1),b={href:"https://github.com/taskiq-python/taskiq-fastapi",target:"_blank",rel:"noopener noreferrer"},f=p(`

Let's see what we got here. In this library, we provide users with only one public function called init. It takes a broker and a string path (as in uvicorn) to the fastapi application (or factory function). People should call this function in their main broker file.

from taskiq import ZeroMQBroker
 import taskiq_fastapi
 
 broker = ZeroMQBroker()
@@ -62,4 +62,4 @@ app = FastAPI.custom_dependency_context = {}
 
-

This fixture has autouse flag, which means it would run on every test automatically.

`,5);function A(P,F){const c=i("ExternalLinkIcon"),l=i("Tabs"),r=i("RouteLink");return d(),k("div",null,[v,y,h,n("p",null,[s('In taskiq, we try to make our libraries easy to use, and We have a dependency injection too. So we have created the library "'),n("a",b,[s("taskiq-fastapi"),e(c)]),s('" to make integration with FastAPI as smooth as possible.')]),f,e(l,{id:"55",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:t,isActive:o})=>[s("Annotated 3.10+")]),title1:a(({value:t,isActive:o})=>[s("default values")]),tab0:a(({value:t,isActive:o})=>[w]),tab1:a(({value:t,isActive:o})=>[g]),_:1}),_,n("p",null,[s("And that's it. Now you can use your taskiq tasks with functions and classes that depend on FastAPI dependenices. You can find bigger examples in the "),n("a",q,[s("examples repo"),e(c)]),s(".")]),T,n("p",null,[s("Testing is no different from general testing advice from articles about "),e(r,{to:"/guide/testing-taskiq.html"},{default:a(()=>[s("testing")]),_:1}),s(". But if you use "),I,s(" in your tests, you need to provide it with a custom dependency context because it doesn't run as a worker process.")]),x])}const C=u(m,[["render",A],["__file","taskiq-with-fastapi.html.vue"]]),D=JSON.parse(`{"path":"/framework_integrations/taskiq-with-fastapi.html","title":"Taskiq + FastAPI","lang":"en-US","frontmatter":{"order":1,"description":"Taskiq + FastAPI FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things: It's easy to use; Cool dependency injection. In t...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/framework_integrations/taskiq-with-fastapi.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Taskiq + FastAPI"}],["meta",{"property":"og:description","content":"Taskiq + FastAPI FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things: It's easy to use; Cool dependency injection. In t..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Taskiq + FastAPI\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Testing","slug":"testing","link":"#testing","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"framework_integrations/taskiq-with-fastapi.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things:

\\n
    \\n
  1. It's easy to use;
  2. \\n
  3. Cool dependency injection.
  4. \\n
\\n

In taskiq, we try to make our libraries easy to use, and We have a dependency injection too. So we have created the library \\"taskiq-fastapi\\" to make integration with FastAPI as smooth as possible.

"}`);export{C as comp,D as data}; +

This fixture has autouse flag, which means it would run on every test automatically.

`,5);function A(P,F){const c=i("ExternalLinkIcon"),l=i("Tabs"),r=i("RouteLink");return d(),k("div",null,[v,y,h,n("p",null,[s('In taskiq, we try to make our libraries easy to use, and We have a dependency injection too. So we have created the library "'),n("a",b,[s("taskiq-fastapi"),e(c)]),s('" to make integration with FastAPI as smooth as possible.')]),f,e(l,{id:"55",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:t,isActive:o})=>[s("Annotated 3.10+")]),title1:a(({value:t,isActive:o})=>[s("default values")]),tab0:a(({value:t,isActive:o})=>[w]),tab1:a(({value:t,isActive:o})=>[g]),_:1}),_,n("p",null,[s("And that's it. Now you can use your taskiq tasks with functions and classes that depend on FastAPI dependenices. You can find bigger examples in the "),n("a",q,[s("examples repo"),e(c)]),s(".")]),T,n("p",null,[s("Testing is no different from general testing advice from articles about "),e(r,{to:"/guide/testing-taskiq.html"},{default:a(()=>[s("testing")]),_:1}),s(". But if you use "),I,s(" in your tests, you need to provide it with a custom dependency context because it doesn't run as a worker process.")]),x])}const C=u(m,[["render",A],["__file","taskiq-with-fastapi.html.vue"]]),D=JSON.parse(`{"path":"/framework_integrations/taskiq-with-fastapi.html","title":"Taskiq + FastAPI","lang":"en-US","frontmatter":{"order":1,"description":"Taskiq + FastAPI FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things: It's easy to use; Cool dependency injection. In t...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/framework_integrations/taskiq-with-fastapi.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Taskiq + FastAPI"}],["meta",{"property":"og:description","content":"Taskiq + FastAPI FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things: It's easy to use; Cool dependency injection. In t..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Taskiq + FastAPI\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Testing","slug":"testing","link":"#testing","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"framework_integrations/taskiq-with-fastapi.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things:

\\n
    \\n
  1. It's easy to use;
  2. \\n
  3. Cool dependency injection.
  4. \\n
\\n

In taskiq, we try to make our libraries easy to use, and We have a dependency injection too. So we have created the library \\"taskiq-fastapi\\" to make integration with FastAPI as smooth as possible.

"}`);export{C as comp,D as data}; diff --git a/assets/testing-taskiq.html-BmpQf4bQ.js b/assets/testing-taskiq.html-Ckmgkcrw.js similarity index 98% rename from assets/testing-taskiq.html-BmpQf4bQ.js rename to assets/testing-taskiq.html-Ckmgkcrw.js index db7daef..70c628f 100644 --- a/assets/testing-taskiq.html-BmpQf4bQ.js +++ b/assets/testing-taskiq.html-Ckmgkcrw.js @@ -1,4 +1,4 @@ -import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as u,c as d,e as o,w as a,b as n,d as s,a as c}from"./app-BQ_RvZRm.js";const k={},m=c('

Testing with taskiq

Every time we write programs, we want them to be correct. To achieve this, we use tests. Taskiq allows you to write tests easily as if tasks were normal functions.

Let's dive into examples.

Preparations

Environment setup

For testing you maybe don't want to use actual distributed broker. But still you want to validate your logic. Since python is an interpreted language, you can easily replace you broker with another one if the expression is correct.

We can set an environment variable, that indicates that currently we're running in testing environment.

',7),v=n("div",{class:"language-bash line-numbers-mode","data-ext":"sh","data-title":"sh"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token builtin class-name"},"export"),s(),n("span",{class:"token assign-left variable"},"ENVIRONMENT"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"pytest"'),s(` +import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as u,c as d,e as o,w as a,b as n,d as s,a as c}from"./app-B7rxM88G.js";const k={},m=c('

Testing with taskiq

Every time we write programs, we want them to be correct. To achieve this, we use tests. Taskiq allows you to write tests easily as if tasks were normal functions.

Let's dive into examples.

Preparations

Environment setup

For testing you maybe don't want to use actual distributed broker. But still you want to validate your logic. Since python is an interpreted language, you can easily replace you broker with another one if the expression is correct.

We can set an environment variable, that indicates that currently we're running in testing environment.

',7),v=n("div",{class:"language-bash line-numbers-mode","data-ext":"sh","data-title":"sh"},[n("pre",{class:"language-bash"},[n("code",null,[n("span",{class:"token builtin class-name"},"export"),s(),n("span",{class:"token assign-left variable"},"ENVIRONMENT"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"pytest"'),s(` pytest `),n("span",{class:"token parameter variable"},"-vv"),s(` `)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),y=n("div",{class:"language-powershell line-numbers-mode","data-ext":"powershell","data-title":"powershell"},[n("pre",{class:"language-powershell"},[n("code",null,[n("span",{class:"token variable"},"$env"),s(":ENVIRONMENT = "),n("span",{class:"token string"},"'pytest'"),s(` pytest `),n("span",{class:"token operator"},"-"),s(`vv @@ -102,4 +102,4 @@ broker: AsyncBroker = await task.wait_result() assert str(result.return_value).endswith("taskiq.py") -

This should pass. And that's it for now.

`,7);function E(N,I){const i=l("Tabs"),p=l("ExternalLinkIcon");return u(),d("div",null,[m,o(i,{id:"21",data:[{id:"linux|macos"},{id:"windows"}]},{title0:a(({value:e,isActive:t})=>[s("linux|macos")]),title1:a(({value:e,isActive:t})=>[s("windows")]),tab0:a(({value:e,isActive:t})=>[v]),tab1:a(({value:e,isActive:t})=>[y]),_:1}),n("p",null,[s("Or we can even tell pytest to set this environment for us, just before executing tests using "),n("a",b,[s("pytest-env"),o(p)]),s(" plugin.")]),o(i,{id:"32",data:[{id:"pytest.ini"},{id:"pyproject.toml"}]},{title0:a(({value:e,isActive:t})=>[s("pytest.ini")]),title1:a(({value:e,isActive:t})=>[s("pyproject.toml")]),tab0:a(({value:e,isActive:t})=>[h]),tab1:a(({value:e,isActive:t})=>[w]),_:1}),g,n("p",null,[s("Since taskiq is fully async, we suggest using "),n("a",f,[s("anyio"),o(p)]),s(" to run async functions in pytest. Install the "),n("a",_,[s("lib"),o(p)]),s(" and place this fixture somewhere in your root "),x,s(" file.")]),q,o(i,{id:"85",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[T]),tab1:a(({value:e,isActive:t})=>[A]),_:1}),j])}const M=r(k,[["render",E],["__file","testing-taskiq.html.vue"]]),V=JSON.parse(`{"path":"/guide/testing-taskiq.html","title":"Testing with taskiq","lang":"en-US","frontmatter":{"order":10,"description":"Testing with taskiq Every time we write programs, we want them to be correct. To achieve this, we use tests. Taskiq allows you to write tests easily as if tasks were normal func...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/testing-taskiq.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Testing with taskiq"}],["meta",{"property":"og:description","content":"Testing with taskiq Every time we write programs, we want them to be correct. To achieve this, we use tests. Taskiq allows you to write tests easily as if tasks were normal func..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-11T21:56:27.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-11T21:56:27.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Testing with taskiq\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-11T21:56:27.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Preparations","slug":"preparations","link":"#preparations","children":[{"level":3,"title":"Environment setup","slug":"environment-setup","link":"#environment-setup","children":[]},{"level":3,"title":"Async tests","slug":"async-tests","link":"#async-tests","children":[]}]},{"level":2,"title":"Testing tasks","slug":"testing-tasks","link":"#testing-tasks","children":[]},{"level":2,"title":"Dependency injection","slug":"dependency-injection","link":"#dependency-injection","children":[]}],"git":{"createdTime":1718142987000,"updatedTime":1718142987000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/testing-taskiq.md","localizedDate":"June 11, 2024","autoDesc":true,"excerpt":"\\n

Every time we write programs, we want them to be correct. To achieve this, we use tests.\\nTaskiq allows you to write tests easily as if tasks were normal functions.

\\n

Let's dive into examples.

\\n

Preparations

\\n

Environment setup

\\n

For testing you maybe don't want to use actual distributed broker. But still you want to validate your logic.\\nSince python is an interpreted language, you can easily replace you broker with another one if the expression is correct.

"}`);export{M as comp,V as data}; +

This should pass. And that's it for now.

`,7);function E(N,I){const i=l("Tabs"),p=l("ExternalLinkIcon");return u(),d("div",null,[m,o(i,{id:"21",data:[{id:"linux|macos"},{id:"windows"}]},{title0:a(({value:e,isActive:t})=>[s("linux|macos")]),title1:a(({value:e,isActive:t})=>[s("windows")]),tab0:a(({value:e,isActive:t})=>[v]),tab1:a(({value:e,isActive:t})=>[y]),_:1}),n("p",null,[s("Or we can even tell pytest to set this environment for us, just before executing tests using "),n("a",b,[s("pytest-env"),o(p)]),s(" plugin.")]),o(i,{id:"32",data:[{id:"pytest.ini"},{id:"pyproject.toml"}]},{title0:a(({value:e,isActive:t})=>[s("pytest.ini")]),title1:a(({value:e,isActive:t})=>[s("pyproject.toml")]),tab0:a(({value:e,isActive:t})=>[h]),tab1:a(({value:e,isActive:t})=>[w]),_:1}),g,n("p",null,[s("Since taskiq is fully async, we suggest using "),n("a",f,[s("anyio"),o(p)]),s(" to run async functions in pytest. Install the "),n("a",_,[s("lib"),o(p)]),s(" and place this fixture somewhere in your root "),x,s(" file.")]),q,o(i,{id:"85",data:[{id:"Annotated 3.10+"},{id:"default values"}]},{title0:a(({value:e,isActive:t})=>[s("Annotated 3.10+")]),title1:a(({value:e,isActive:t})=>[s("default values")]),tab0:a(({value:e,isActive:t})=>[T]),tab1:a(({value:e,isActive:t})=>[A]),_:1}),j])}const M=r(k,[["render",E],["__file","testing-taskiq.html.vue"]]),V=JSON.parse(`{"path":"/guide/testing-taskiq.html","title":"Testing with taskiq","lang":"en-US","frontmatter":{"order":10,"description":"Testing with taskiq Every time we write programs, we want them to be correct. To achieve this, we use tests. Taskiq allows you to write tests easily as if tasks were normal func...","head":[["meta",{"property":"og:url","content":"https://taskiq-python.github.io/guide/testing-taskiq.html"}],["meta",{"property":"og:site_name","content":"Taskiq"}],["meta",{"property":"og:title","content":"Testing with taskiq"}],["meta",{"property":"og:description","content":"Testing with taskiq Every time we write programs, we want them to be correct. To achieve this, we use tests. Taskiq allows you to write tests easily as if tasks were normal func..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-06-14T06:23:41.000Z"}],["meta",{"property":"article:modified_time","content":"2024-06-14T06:23:41.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Testing with taskiq\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-06-14T06:23:41.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Preparations","slug":"preparations","link":"#preparations","children":[{"level":3,"title":"Environment setup","slug":"environment-setup","link":"#environment-setup","children":[]},{"level":3,"title":"Async tests","slug":"async-tests","link":"#async-tests","children":[]}]},{"level":2,"title":"Testing tasks","slug":"testing-tasks","link":"#testing-tasks","children":[]},{"level":2,"title":"Dependency injection","slug":"dependency-injection","link":"#dependency-injection","children":[]}],"git":{"createdTime":1718346221000,"updatedTime":1718346221000,"contributors":[{"name":"Pavel Kirilin","email":"win10@list.ru","commits":1}]},"filePathRelative":"guide/testing-taskiq.md","localizedDate":"June 14, 2024","autoDesc":true,"excerpt":"\\n

Every time we write programs, we want them to be correct. To achieve this, we use tests.\\nTaskiq allows you to write tests easily as if tasks were normal functions.

\\n

Let's dive into examples.

\\n

Preparations

\\n

Environment setup

\\n

For testing you maybe don't want to use actual distributed broker. But still you want to validate your logic.\\nSince python is an interpreted language, you can easily replace you broker with another one if the expression is correct.

"}`);export{M as comp,V as data}; diff --git a/assets/timeline-definition-bf702344-CfSWb9uZ.js b/assets/timeline-definition-bf702344-DHauvNjP.js similarity index 99% rename from assets/timeline-definition-bf702344-CfSWb9uZ.js rename to assets/timeline-definition-bf702344-DHauvNjP.js index 1c4c170..3025873 100644 --- a/assets/timeline-definition-bf702344-CfSWb9uZ.js +++ b/assets/timeline-definition-bf702344-DHauvNjP.js @@ -1,4 +1,4 @@ -import{b4 as ft,A as gt,c as mt,l as E,h as G,u as xt,b5 as bt,b6 as _t,b7 as kt}from"./mermaid.core-Cio1iadR.js";import{a as D}from"./arc-Dfq8ddjc.js";import"./app-BQ_RvZRm.js";import"./path-CbwjOpE9.js";var K=function(){var n=function(g,i,r,c){for(r=r||{},c=g.length;c--;r[g[c]]=i);return r},t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],a=[1,10],s=[1,11],h=[1,12],l=[1,13],p=[1,16],y=[1,17],f={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:function(i,r,c,d,u,o,$){var x=o.length-1;switch(u){case 1:return o[x-1];case 2:this.$=[];break;case 3:o[x-1].push(o[x]),this.$=o[x-1];break;case 4:case 5:this.$=o[x];break;case 6:case 7:this.$=[];break;case 8:d.getCommonDb().setDiagramTitle(o[x].substr(6)),this.$=o[x].substr(6);break;case 9:this.$=o[x].trim(),d.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[x].trim(),d.getCommonDb().setAccDescription(this.$);break;case 12:d.addSection(o[x].substr(8)),this.$=o[x].substr(8);break;case 15:d.addTask(o[x],0,""),this.$=o[x];break;case 16:d.addEvent(o[x].substr(2)),this.$=o[x];break}},table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:a,14:s,16:h,17:l,18:14,19:15,20:p,21:y},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:a,14:s,16:h,17:l,18:14,19:15,20:p,21:y},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:function(i,r){if(r.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=r,c}},parse:function(i){var r=this,c=[0],d=[],u=[null],o=[],$=this.table,x="",T=0,W=0,C=2,A=1,B=o.slice.call(arguments,1),k=Object.create(this.lexer),w={yy:{}};for(var v in this.yy)Object.prototype.hasOwnProperty.call(this.yy,v)&&(w.yy[v]=this.yy[v]);k.setInput(i,w.yy),w.yy.lexer=k,w.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var I=k.yylloc;o.push(I);var P=k.options&&k.options.ranges;typeof w.yy.parseError=="function"?this.parseError=w.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function z(){var M;return M=d.pop()||k.lex()||A,typeof M!="number"&&(M instanceof Array&&(d=M,M=d.pop()),M=r.symbols_[M]||M),M}for(var _,L,S,Z,R={},O,N,Y,j;;){if(L=c[c.length-1],this.defaultActions[L]?S=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=z()),S=$[L]&&$[L][_]),typeof S>"u"||!S.length||!S[0]){var J="";j=[];for(O in $[L])this.terminals_[O]&&O>C&&j.push("'"+this.terminals_[O]+"'");k.showPosition?J="Parse error on line "+(T+1)+`: +import{b4 as ft,A as gt,c as mt,l as E,h as G,u as xt,b5 as bt,b6 as _t,b7 as kt}from"./mermaid.core-D8sVPjx9.js";import{a as D}from"./arc-DKl72la8.js";import"./app-B7rxM88G.js";import"./path-CbwjOpE9.js";var K=function(){var n=function(g,i,r,c){for(r=r||{},c=g.length;c--;r[g[c]]=i);return r},t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],a=[1,10],s=[1,11],h=[1,12],l=[1,13],p=[1,16],y=[1,17],f={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:function(i,r,c,d,u,o,$){var x=o.length-1;switch(u){case 1:return o[x-1];case 2:this.$=[];break;case 3:o[x-1].push(o[x]),this.$=o[x-1];break;case 4:case 5:this.$=o[x];break;case 6:case 7:this.$=[];break;case 8:d.getCommonDb().setDiagramTitle(o[x].substr(6)),this.$=o[x].substr(6);break;case 9:this.$=o[x].trim(),d.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[x].trim(),d.getCommonDb().setAccDescription(this.$);break;case 12:d.addSection(o[x].substr(8)),this.$=o[x].substr(8);break;case 15:d.addTask(o[x],0,""),this.$=o[x];break;case 16:d.addEvent(o[x].substr(2)),this.$=o[x];break}},table:[{3:1,4:[1,2]},{1:[3]},n(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:a,14:s,16:h,17:l,18:14,19:15,20:p,21:y},n(t,[2,7],{1:[2,1]}),n(t,[2,3]),{9:18,11:e,12:a,14:s,16:h,17:l,18:14,19:15,20:p,21:y},n(t,[2,5]),n(t,[2,6]),n(t,[2,8]),{13:[1,19]},{15:[1,20]},n(t,[2,11]),n(t,[2,12]),n(t,[2,13]),n(t,[2,14]),n(t,[2,15]),n(t,[2,16]),n(t,[2,4]),n(t,[2,9]),n(t,[2,10])],defaultActions:{},parseError:function(i,r){if(r.recoverable)this.trace(i);else{var c=new Error(i);throw c.hash=r,c}},parse:function(i){var r=this,c=[0],d=[],u=[null],o=[],$=this.table,x="",T=0,W=0,C=2,A=1,B=o.slice.call(arguments,1),k=Object.create(this.lexer),w={yy:{}};for(var v in this.yy)Object.prototype.hasOwnProperty.call(this.yy,v)&&(w.yy[v]=this.yy[v]);k.setInput(i,w.yy),w.yy.lexer=k,w.yy.parser=this,typeof k.yylloc>"u"&&(k.yylloc={});var I=k.yylloc;o.push(I);var P=k.options&&k.options.ranges;typeof w.yy.parseError=="function"?this.parseError=w.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function z(){var M;return M=d.pop()||k.lex()||A,typeof M!="number"&&(M instanceof Array&&(d=M,M=d.pop()),M=r.symbols_[M]||M),M}for(var _,L,S,Z,R={},O,N,Y,j;;){if(L=c[c.length-1],this.defaultActions[L]?S=this.defaultActions[L]:((_===null||typeof _>"u")&&(_=z()),S=$[L]&&$[L][_]),typeof S>"u"||!S.length||!S[0]){var J="";j=[];for(O in $[L])this.terminals_[O]&&O>C&&j.push("'"+this.terminals_[O]+"'");k.showPosition?J="Parse error on line "+(T+1)+`: `+k.showPosition()+` Expecting `+j.join(", ")+", got '"+(this.terminals_[_]||_)+"'":J="Parse error on line "+(T+1)+": Unexpected "+(_==A?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(J,{text:k.match,token:this.terminals_[_]||_,line:k.yylineno,loc:I,expected:j})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+L+", token: "+_);switch(S[0]){case 1:c.push(_),u.push(k.yytext),o.push(k.yylloc),c.push(S[1]),_=null,W=k.yyleng,x=k.yytext,T=k.yylineno,I=k.yylloc;break;case 2:if(N=this.productions_[S[1]][1],R.$=u[u.length-N],R._$={first_line:o[o.length-(N||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(N||1)].first_column,last_column:o[o.length-1].last_column},P&&(R._$.range=[o[o.length-(N||1)].range[0],o[o.length-1].range[1]]),Z=this.performAction.apply(R,[x,W,T,w.yy,S[1],u,o].concat(B)),typeof Z<"u")return Z;N&&(c=c.slice(0,-1*N*2),u=u.slice(0,-1*N),o=o.slice(0,-1*N)),c.push(this.productions_[S[1]][0]),u.push(R.$),o.push(R._$),Y=$[c[c.length-2]][c[c.length-1]],c.push(Y);break;case 3:return!0}}return!0}},b=function(){var g={EOF:1,parseError:function(r,c){if(this.yy.parser)this.yy.parser.parseError(r,c);else throw new Error(r)},setInput:function(i,r){return this.yy=r||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var r=i.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},unput:function(i){var r=i.length,c=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(i){this.unput(this.match.slice(i))},pastInput:function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var i=this.pastInput(),r=new Array(i.length+1).join("-");return i+this.upcomingInput()+` diff --git a/assets/xychartDiagram-f11f50a6-DXjcrauj.js b/assets/xychartDiagram-f11f50a6-BV3T3Dmy.js similarity index 99% rename from assets/xychartDiagram-f11f50a6-DXjcrauj.js rename to assets/xychartDiagram-f11f50a6-BV3T3Dmy.js index c831511..16df6af 100644 --- a/assets/xychartDiagram-f11f50a6-DXjcrauj.js +++ b/assets/xychartDiagram-f11f50a6-BV3T3Dmy.js @@ -1,4 +1,4 @@ -import{a_ as zt,a$ as ot,aM as wt,aL as Ft,s as Nt,g as Xt,x as Yt,y as St,a as Ht,b as $t,A as Ut,l as _t,aJ as qt,i as jt,d as Gt}from"./mermaid.core-Cio1iadR.js";import{a as Qt}from"./createText-ca0c5216-BYApgeQh.js";import{i as Kt}from"./init-Gi6I4Gst.js";import{o as Jt}from"./ordinal-Cboi1Yqb.js";import{l as ft}from"./linear-DyHMIkCX.js";import{l as pt}from"./line-DOPC82El.js";import"./app-BQ_RvZRm.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";function Zt(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s"u"&&(k.yylloc={});var tt=k.yylloc;a.push(tt);var Wt=k.options&&k.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var I;return I=g.pop()||k.lex()||xt,typeof I!="number"&&(I instanceof Array&&(g=I,I=g.pop()),I=l.symbols_[I]||I),I}for(var D,W,v,it,O={},q,M,dt,j;;){if(W=u[u.length-1],this.defaultActions[W]?v=this.defaultActions[W]:((D===null||typeof D>"u")&&(D=Ot()),v=F[W]&&F[W][D]),typeof v>"u"||!v.length||!v[0]){var et="";j=[];for(q in F[W])this.terminals_[q]&&q>Vt&&j.push("'"+this.terminals_[q]+"'");k.showPosition?et="Parse error on line "+(U+1)+`: +import{a_ as zt,a$ as ot,aM as wt,aL as Ft,s as Nt,g as Xt,x as Yt,y as St,a as Ht,b as $t,A as Ut,l as _t,aJ as qt,i as jt,d as Gt}from"./mermaid.core-D8sVPjx9.js";import{a as Qt}from"./createText-ca0c5216-zqCXB1ps.js";import{i as Kt}from"./init-Gi6I4Gst.js";import{o as Jt}from"./ordinal-Cboi1Yqb.js";import{l as ft}from"./linear-DPKUxXbT.js";import{l as pt}from"./line-Dh5t0evl.js";import"./app-B7rxM88G.js";import"./array-BKyUJesY.js";import"./path-CbwjOpE9.js";function Zt(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s"u"&&(k.yylloc={});var tt=k.yylloc;a.push(tt);var Wt=k.options&&k.options.ranges;typeof B.yy.parseError=="function"?this.parseError=B.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ot(){var I;return I=g.pop()||k.lex()||xt,typeof I!="number"&&(I instanceof Array&&(g=I,I=g.pop()),I=l.symbols_[I]||I),I}for(var D,W,v,it,O={},q,M,dt,j;;){if(W=u[u.length-1],this.defaultActions[W]?v=this.defaultActions[W]:((D===null||typeof D>"u")&&(D=Ot()),v=F[W]&&F[W][D]),typeof v>"u"||!v.length||!v[0]){var et="";j=[];for(q in F[W])this.terminals_[q]&&q>Vt&&j.push("'"+this.terminals_[q]+"'");k.showPosition?et="Parse error on line "+(U+1)+`: `+k.showPosition()+` Expecting `+j.join(", ")+", got '"+(this.terminals_[D]||D)+"'":et="Parse error on line "+(U+1)+": Unexpected "+(D==xt?"end of input":"'"+(this.terminals_[D]||D)+"'"),this.parseError(et,{text:k.match,token:this.terminals_[D]||D,line:k.yylineno,loc:tt,expected:j})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+D);switch(v[0]){case 1:u.push(D),b.push(k.yytext),a.push(k.yylloc),u.push(v[1]),D=null,gt=k.yyleng,x=k.yytext,U=k.yylineno,tt=k.yylloc;break;case 2:if(M=this.productions_[v[1]][1],O.$=b[b.length-M],O._$={first_line:a[a.length-(M||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(M||1)].first_column,last_column:a[a.length-1].last_column},Wt&&(O._$.range=[a[a.length-(M||1)].range[0],a[a.length-1].range[1]]),it=this.performAction.apply(O,[x,gt,U,B.yy,v[1],b,a].concat(Bt)),typeof it<"u")return it;M&&(u=u.slice(0,-1*M*2),b=b.slice(0,-1*M),a=a.slice(0,-1*M)),u.push(this.productions_[v[1]][0]),b.push(O.$),a.push(O._$),dt=F[u[u.length-2]][u[u.length-1]],u.push(dt);break;case 3:return!0}}return!0}},It=function(){var V={EOF:1,parseError:function(l,u){if(this.yy.parser)this.yy.parser.parseError(l,u);else throw new Error(l)},setInput:function(r,l){return this.yy=l||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var l=r.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},unput:function(r){var l=r.length,u=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var g=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var b=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===g.length?this.yylloc.first_column:0)+g[g.length-u.length].length-u[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[b[0],b[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true). `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(r){this.unput(this.match.slice(r))},pastInput:function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var r=this.pastInput(),l=new Array(r.length+1).join("-");return r+this.upcomingInput()+` diff --git a/available-components/brokers.html b/available-components/brokers.html index 79b8884..a8d1b0b 100644 --- a/available-components/brokers.html +++ b/available-components/brokers.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Available brokers | Taskiq + Available brokers | Taskiq - - + + -
Skip to main content

Available brokers

...

Available brokers

In this section we'll list officially supported brokers.

InMemoryBroker

This is a special broker for local development. It uses the same functions to execute tasks, but all tasks are executed locally in the current thread. By default it uses InMemoryResultBackend but this can be overridden.

ZeroMQBroker

This broker uses ZMQopen in new window to communicate between worker and client processes. It's suitable for small projects with only ONE worker process, because of the ZMQ architecture.

It publishes messages on the local port. All worker processes are reading messages from this port. If you run many worker processes, all tasks will be executed N times, where N is the total number of worker processes.

Be careful!

If you choose this type of broker, please run taskiq with -w 1 parameter, otherwise you may encounter undefined behavior.

To run this broker please install the pyzmqopen in new window lib. Or you can taskiq with zmq extra.

Only PyZMQ
pip install pyzmq
+    
Skip to main content

Available brokers

...

Available brokers

In this section we'll list officially supported brokers.

InMemoryBroker

This is a special broker for local development. It uses the same functions to execute tasks, but all tasks are executed locally in the current thread. By default it uses InMemoryResultBackend but this can be overridden.

ZeroMQBroker

This broker uses ZMQopen in new window to communicate between worker and client processes. It's suitable for small projects with only ONE worker process, because of the ZMQ architecture.

It publishes messages on the local port. All worker processes are reading messages from this port. If you run many worker processes, all tasks will be executed N times, where N is the total number of worker processes.

Be careful!

If you choose this type of broker, please run taskiq with -w 1 parameter, otherwise you may encounter undefined behavior.

To run this broker please install the pyzmqopen in new window lib. Or you can taskiq with zmq extra.

Only PyZMQ
pip install pyzmq
 

Async shared broker and shared tasks

This is also a special broker. You cannot use it directly. It's used to create shared tasks. These tasks can be imported along with user defined tasks. To define a shared task please use this broker.

from taskiq.brokers.shared_broker import async_shared_broker
 
@@ -49,6 +49,6 @@
 

Redis broker

Project link: taskiq-redisopen in new window.

pip install taskiq-redis
 

NATS broker

Project link: taskiq-natsopen in new window.

pip install taskiq-nats
 
- + diff --git a/available-components/index.html b/available-components/index.html index a5da218..2d23046 100644 --- a/available-components/index.html +++ b/available-components/index.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Available components | Taskiq + Available components | Taskiq - - + + -
Skip to main content

Available components

...

Available components

In this section, you can find a list of officially supported plugins for the taskiq.

- +
Skip to main content

Available components

...

Available components

In this section, you can find a list of officially supported plugins for the taskiq.

+ diff --git a/available-components/middlewares.html b/available-components/middlewares.html index 5628222..dc8f121 100644 --- a/available-components/middlewares.html +++ b/available-components/middlewares.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Available middlewares | Taskiq + Available middlewares | Taskiq - - + + -
Skip to main content

Available middlewares

...

Available middlewares

Middlewares allow you to execute code when specific event occurs. Taskiq has several default middlewares.

Simple retry middleware

This middleware allows you to restart functions on errors. If exception was raised during task execution, the task would be resent with same parameters.

To enable this middleware, add it to the list of middlewares for a broker.

from taskiq import ZeroMQBroker, SimpleRetryMiddleware
+    
Skip to main content

Available middlewares

...

Available middlewares

Middlewares allow you to execute code when specific event occurs. Taskiq has several default middlewares.

Simple retry middleware

This middleware allows you to restart functions on errors. If exception was raised during task execution, the task would be resent with same parameters.

To enable this middleware, add it to the list of middlewares for a broker.

from taskiq import ZeroMQBroker, SimpleRetryMiddleware
 
 broker = ZeroMQBroker().with_middlewares(
     SimpleRetryMiddleware(default_retry_count=3),
@@ -52,6 +52,6 @@
     PrometheusMiddleware(server_addr="0.0.0.0", server_port=9000),
 )
 

After that, metrics will be available at port 9000. Of course, this parameter can be configured. If you have other metrics, they'll be shown as well.

- + diff --git a/available-components/result-backends.html b/available-components/result-backends.html index 9188c04..5eb733c 100644 --- a/available-components/result-backends.html +++ b/available-components/result-backends.html @@ -28,14 +28,14 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Available result backends | Taskiq + Available result backends | Taskiq - - + + -
Skip to main content

Available result backends

...

Available result backends

Result backends are used to store execution results. This includes:

  • return value;
  • Execution time in seconds.

DummyResultBackend

This result backend doesn't do anything. It doesn't store results and cannot be used in cases, where you need actual results.

This broker will always return None for any return_value. Please be careful.

Redis result backend

This result backend is not part of the core taskiq library. You can install it as a separate package taskiq-redisopen in new window.

pip install taskiq-redis
+    
Skip to main content

Available result backends

...

Available result backends

Result backends are used to store execution results. This includes:

  • return value;
  • Execution time in seconds.

DummyResultBackend

This result backend doesn't do anything. It doesn't store results and cannot be used in cases, where you need actual results.

This broker will always return None for any return_value. Please be careful.

Redis result backend

This result backend is not part of the core taskiq library. You can install it as a separate package taskiq-redisopen in new window.

pip install taskiq-redis
 

You can read more about parameters and abilities of this broker in README.mdopen in new window.

- + diff --git a/available-components/schedule-sources.html b/available-components/schedule-sources.html index 1f08f12..ca85bc7 100644 --- a/available-components/schedule-sources.html +++ b/available-components/schedule-sources.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Available schedule sources | Taskiq + Available schedule sources | Taskiq - - + + -
Skip to main content

Available schedule sources

...

Available schedule sources

These objects are used to fetch current schedule for tasks. Currently we have only one schedule source.

RedisScheduleSource

This source is capable of adding new schedules in runtime. It uses Redis as a storage for schedules. To use this source you need to install taskiq-redis package.

from taskiq_redis import RedisScheduleSource
+    
Skip to main content

Available schedule sources

...

Available schedule sources

These objects are used to fetch current schedule for tasks. Currently we have only one schedule source.

RedisScheduleSource

This source is capable of adding new schedules in runtime. It uses Redis as a storage for schedules. To use this source you need to install taskiq-redis package.

from taskiq_redis import RedisScheduleSource
 
 from taskiq import TaskiqScheduler
 
@@ -64,6 +64,6 @@
     sources=[LabelScheduleSource(broker)],
 )
 

Cool notice!

In order to resolve all labels correctly, don't forget to import all task modules using CLI interface.

- + diff --git a/contrib.html b/contrib.html index 926065c..fd5cdb8 100644 --- a/contrib.html +++ b/contrib.html @@ -28,19 +28,19 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Contribution guide | Taskiq + Contribution guide | Taskiq - - + + -
Skip to main content

Contribution guide

...

Contribution guide

We love contributions. This guide is for all folks who want to make taskiq better together. We have several rules for contributors:

  • Please do not add malware.
  • Please make sure that your request solves the problem.

If you struggle with something or feel frustrated, you either create an issue, create a discussionsopen in new window. page or publish a draft PR and ask your question in the description.

We have lots of tests in CI. But since CI runs from first-time contributors should be approved, you better test locally. It just takes less time to prepare PR for merging.

Setting up environment

We use poetry for managing dependencies. To install it, please follow the official guide in documentationopen in new window.

After you have cloned the taskiq repo, install dependencies using this command:

poetry install
+    
Skip to main content

Contribution guide

...

Contribution guide

We love contributions. This guide is for all folks who want to make taskiq better together. We have several rules for contributors:

  • Please do not add malware.
  • Please make sure that your request solves the problem.

If you struggle with something or feel frustrated, you either create an issue, create a discussionsopen in new window. page or publish a draft PR and ask your question in the description.

We have lots of tests in CI. But since CI runs from first-time contributors should be approved, you better test locally. It just takes less time to prepare PR for merging.

Setting up environment

We use poetry for managing dependencies. To install it, please follow the official guide in documentationopen in new window.

After you have cloned the taskiq repo, install dependencies using this command:

poetry install
 

It will install all required dependencies. If you want to run pytest against different python environments, please install pyenv using instructions from its readmeopen in new window.

After pyenv is ready, you can install all python versions using this command:

pyenv install
 

Linting

We have pre-commit configured with all our settings. We highly recommend you to install it as a git hook using pre-commit install command.

But even without installation, you can run all lints manually:

pre-commit run -a
 

Testing

You can run pytest without any parameters and it will do the thing.

pytest
 

If you want to speedup testings, you can run it with -n option from pytest-xdistopen in new window to run tests in parallel.

pytest -n 2
 

Also we use tox to test against different environments. You can publish a PR to run pytest with different python versions, but if you want to do it locally, just run tox command.

tox
 

Tox assumes that you've installed python versions using pyenv with command above.

- + diff --git a/extending-taskiq/broker.html b/extending-taskiq/broker.html index 79efbca..d289ec5 100644 --- a/extending-taskiq/broker.html +++ b/extending-taskiq/broker.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Brokers | Taskiq + Brokers | Taskiq - - + + -
Skip to main content

Brokers

...

Brokers

To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class. But along with them we have helper methods. Such as shutdown and startup.

Here is a template for new brokers:

from typing import AsyncGenerator, Union
+    
Skip to main content

Brokers

...

Brokers

To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class. But along with them we have helper methods. Such as shutdown and startup.

Here is a template for new brokers:

from typing import AsyncGenerator, Union
 
 from taskiq import AckableMessage, AsyncBroker, BrokerMessage
 
@@ -78,6 +78,6 @@
          reject=message.reject
       )
 

Conventions

For brokers, we have several conventions. It's good if your broker implements them. These rules are optional, and it's ok if your broker doesn't implement them.

  1. If the message has the delay label with int or float number, this task's execution must be delayed with the same number of seconds as in the delay label.
  2. If the message has the priority label, this message must be sent with priority. Tasks with higher priorities are executed sooner.
- + diff --git a/extending-taskiq/cli.html b/extending-taskiq/cli.html index b80fa3a..3f7bc9d 100644 --- a/extending-taskiq/cli.html +++ b/extending-taskiq/cli.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - CLI | Taskiq + CLI | Taskiq - - + + -
Skip to main content

CLI

...

CLI

You can easily add new subcommands to taskiq. All default subcommands also use this mechanism, since it's easy to use.

At first you need to add a class that implements taskiq.abc.cmd.TaskiqCMD abstract class.

from argparse import ArgumentParser
+    
Skip to main content

CLI

...

CLI

You can easily add new subcommands to taskiq. All default subcommands also use this mechanism, since it's easy to use.

At first you need to add a class that implements taskiq.abc.cmd.TaskiqCMD abstract class.

from argparse import ArgumentParser
 from typing import Sequence
 
 from taskiq.abc.cmd import TaskiqCMD
@@ -76,6 +76,6 @@
 
$ taskiq demo --test aaa
 Namespace(test='aaa')
 
- + diff --git a/extending-taskiq/index.html b/extending-taskiq/index.html index b96a5cb..388a04b 100644 --- a/extending-taskiq/index.html +++ b/extending-taskiq/index.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Extending taskiq | Taskiq + Extending taskiq | Taskiq - - + + -
Skip to main content

Extending taskiq

...

Extending taskiq

Taskiq is super extendable. The core library comes with different abstract classes. You can implement these abstract classes to extend functionality.

All abstract classes can be found in taskiq.abc package.

Contents:

- +
Skip to main content

Extending taskiq

...

Extending taskiq

Taskiq is super extendable. The core library comes with different abstract classes. You can implement these abstract classes to extend functionality.

All abstract classes can be found in taskiq.abc package.

Contents:

+ diff --git a/extending-taskiq/middleware.html b/extending-taskiq/middleware.html index ca4ba54..b79592b 100644 --- a/extending-taskiq/middleware.html +++ b/extending-taskiq/middleware.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Middlewares | Taskiq + Middlewares | Taskiq - - + + -
Skip to main content

Middlewares

...

Middlewares

Middlewares are super helpful. You can inject some code before or after task's execution.

Middlewares must implement taskiq.abc.middleware.TaskiqMiddlewareopen in new window abstract class. Every method of a middleware can be either sync or async. Taskiq will execute it as you expect.

For example:

sync
from time import sleep
+    
Skip to main content

Middlewares

...

Middlewares

Middlewares are super helpful. You can inject some code before or after task's execution.

Middlewares must implement taskiq.abc.middleware.TaskiqMiddlewareopen in new window abstract class. Every method of a middleware can be either sync or async. Taskiq will execute it as you expect.

For example:

sync
from time import sleep
 from typing import Any
 
 from taskiq import TaskiqMessage, TaskiqMiddleware, TaskiqResult
@@ -83,6 +83,6 @@
         await sleep(1)
         print("Post save")
 

Also, middlewares always have reference to the current broker in self.broker field. If you want to kick a message during the execution of some middleware hooks, you may use self.broker to do so.

Taskiq-pipelinesopen in new window uses middlewares to call next tasks.

- + diff --git a/extending-taskiq/result-backend.html b/extending-taskiq/result-backend.html index 0bd2913..89e3d4a 100644 --- a/extending-taskiq/result-backend.html +++ b/extending-taskiq/result-backend.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Result backend | Taskiq + Result backend | Taskiq - - + + -
Skip to main content

Result backend

...

Result backend

Result backends are used to store information about task execution. To create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBackend class.

Here's a minimal example of a result backend:

from typing import TypeVar
+    
Skip to main content

Result backend

...

Result backend

Result backends are used to store information about task execution. To create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBackend class.

Here's a minimal example of a result backend:

from typing import TypeVar
 
 from taskiq import TaskiqResult
 from taskiq.abc.result_backend import AsyncResultBackend
@@ -97,6 +97,6 @@
         """
         return ...  # type: ignore
 

Cool tip!

It's a good practice to skip fetching logs from the storage unless with_logs=True is explicitly specified.

Important note!

with_logs param is now deprecated. It will be removed in future releases.

- + diff --git a/extending-taskiq/schedule-sources.html b/extending-taskiq/schedule-sources.html index b7789df..38fe12b 100644 --- a/extending-taskiq/schedule-sources.html +++ b/extending-taskiq/schedule-sources.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Schedule source | Taskiq + Schedule source | Taskiq - - + + -
Skip to main content

Schedule source

...

Schedule source

Schedule sources are used to get schedule for tasks. To create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract class.

Here's a minimal example of a schedule source:

from typing import List
+    
Skip to main content

Schedule source

...

Schedule source

Schedule sources are used to get schedule for tasks. To create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract class.

Here's a minimal example of a schedule source:

from typing import List
 
 from taskiq import ScheduledTask, ScheduleSource
 
@@ -89,6 +89,6 @@
         :param task: task that just have sent
         """
 

You can implement a schedule source that write schedules in the database and have delayed tasks in runtime.

- + diff --git a/framework_integrations/faststream.html b/framework_integrations/faststream.html index 8809b62..ec3ea8a 100644 --- a/framework_integrations/faststream.html +++ b/framework_integrations/faststream.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Taskiq + FastStream | Taskiq + Taskiq + FastStream | Taskiq - - + + -
Skip to main content

Taskiq + FastStream

...

Taskiq + FastStream

FastStreamopen in new window is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq is more focused on tasks for a specific project and more like celery but async, while FastStream is more focused on events and defining how different systems communicate with each other using distributed brokers.

If you want to declare communication between different projects you can use taskiq, but it might be a bit more complex than using FastStream.

Although these libraries solve different problems, they have integration between each other, so you can use FastStream as a broker for taskiq. It allows FastStream to use taskiq's scheduler along with its own features.

To use FastStream as a broker for taskiq you need to install the taskiq-faststream library:

pip install "taskiq-faststream"
+    
Skip to main content

Taskiq + FastStream

...

Taskiq + FastStream

FastStreamopen in new window is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq is more focused on tasks for a specific project and more like celery but async, while FastStream is more focused on events and defining how different systems communicate with each other using distributed brokers.

If you want to declare communication between different projects you can use taskiq, but it might be a bit more complex than using FastStream.

Although these libraries solve different problems, they have integration between each other, so you can use FastStream as a broker for taskiq. It allows FastStream to use taskiq's scheduler along with its own features.

To use FastStream as a broker for taskiq you need to install the taskiq-faststream library:

pip install "taskiq-faststream"
 

And you can use it like this:

from faststream import FastStream
 from faststream.kafka import KafkaBroker
 from taskiq_faststream import BrokerWrapper
@@ -44,6 +44,6 @@
 
 taskiq_broker = BrokerWrapper(broker)
 

You can read more about scheduling tasks for FastStream in the FastStream documentationopen in new window.

- + diff --git a/framework_integrations/index.html b/framework_integrations/index.html index 4e008e5..40a664d 100644 --- a/framework_integrations/index.html +++ b/framework_integrations/index.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Framework integrations | Taskiq + Framework integrations | Taskiq - - + + -
Skip to main content

Framework integrations

...

Framework integrations

Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework easy and fun!

Integrations with frameworks add two things:

  1. Startup and Shutdown events;
  2. Dependencies to use in your handler.
- +
Skip to main content

Framework integrations

...

Framework integrations

Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework easy and fun!

Integrations with frameworks add two things:

  1. Startup and Shutdown events;
  2. Dependencies to use in your handler.
+ diff --git a/framework_integrations/taskiq-with-aiogram.html b/framework_integrations/taskiq-with-aiogram.html index 9322d0c..14b19d9 100644 --- a/framework_integrations/taskiq-with-aiogram.html +++ b/framework_integrations/taskiq-with-aiogram.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Taskiq + Aiogram | Taskiq + Taskiq + Aiogram | Taskiq - - + + -
Skip to main content

Taskiq + Aiogram

...

Taskiq + Aiogram

Taskiq-Aiogramopen in new window is a nice integration with one of the best telegram bot libraries - aiogramopen in new window.

This integration allows you to easily send delayed messages or run intensive functions without blocking the message handing.

This integration adds three main dependencies which you can use in your taskiq functions:

  • aiogram.Bot - the bot instance that you can use to send messages or perform other actions. If multiple bots listen to the same dispatcher, this dependency will be resolved to the latest bot passed in the taskiq_aiogram.init function.
  • aiogram.Dispatcher - current dispatcher instance.
  • List[aiogram.Bot] - list of all bots that were passed to the taskiq_aiogram.init function.

To enable the integration, please install the taskiq-aiogram library:

pip install "taskiq-aiogram"
+    
Skip to main content

Taskiq + Aiogram

...

Taskiq + Aiogram

Taskiq-Aiogramopen in new window is a nice integration with one of the best telegram bot libraries - aiogramopen in new window.

This integration allows you to easily send delayed messages or run intensive functions without blocking the message handing.

This integration adds three main dependencies which you can use in your taskiq functions:

  • aiogram.Bot - the bot instance that you can use to send messages or perform other actions. If multiple bots listen to the same dispatcher, this dependency will be resolved to the latest bot passed in the taskiq_aiogram.init function.
  • aiogram.Dispatcher - current dispatcher instance.
  • List[aiogram.Bot] - list of all bots that were passed to the taskiq_aiogram.init function.

To enable the integration, please install the taskiq-aiogram library:

pip install "taskiq-aiogram"
 

After the installation is complete, add an initialization function call to your broker's main file so it becomes something like this:

import asyncio
 
 import taskiq_aiogram
@@ -109,6 +109,6 @@
     asyncio.run(main())
 
 

That's it. Now you can easily call tasks from your bots and access bots from within your tasks.

- + diff --git a/framework_integrations/taskiq-with-aiohttp.html b/framework_integrations/taskiq-with-aiohttp.html index 4e0fdcb..037a39b 100644 --- a/framework_integrations/taskiq-with-aiohttp.html +++ b/framework_integrations/taskiq-with-aiohttp.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Taskiq + AioHTTP | Taskiq + Taskiq + AioHTTP | Taskiq - - + + -
Skip to main content

Taskiq + AioHTTP

...

Taskiq + AioHTTP

AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better.

Dependency injection for AioHTTP

We created a library aiohttp-depsopen in new window to add FastAPI-like dependency injection in AioHTTP.

To install it, simply run:

pip install "aiohttp-deps"
+    
Skip to main content

Taskiq + AioHTTP

...

Taskiq + AioHTTP

AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better.

Dependency injection for AioHTTP

We created a library aiohttp-depsopen in new window to add FastAPI-like dependency injection in AioHTTP.

To install it, simply run:

pip install "aiohttp-deps"
 

After the installation, please add startup event to your application to initialize dependencies context.

from aiohttp import web
 import aiohttp_deps
 
@@ -112,6 +112,6 @@
     broker.custom_dependency_context = {}
     await client.close()
 
- + diff --git a/framework_integrations/taskiq-with-fastapi.html b/framework_integrations/taskiq-with-fastapi.html index 58f2ebf..241ea49 100644 --- a/framework_integrations/taskiq-with-fastapi.html +++ b/framework_integrations/taskiq-with-fastapi.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Taskiq + FastAPI | Taskiq + Taskiq + FastAPI | Taskiq - - + + -
Skip to main content

Taskiq + FastAPI

...

Taskiq + FastAPI

FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things:

  1. It's easy to use;
  2. Cool dependency injection.

In taskiq, we try to make our libraries easy to use, and We have a dependency injection too. So we have created the library "taskiq-fastapiopen in new window" to make integration with FastAPI as smooth as possible.

Let's see what we got here. In this library, we provide users with only one public function called init. It takes a broker and a string path (as in uvicorn) to the fastapi application (or factory function). People should call this function in their main broker file.

from taskiq import ZeroMQBroker
+    
Skip to main content

Taskiq + FastAPI

...

Taskiq + FastAPI

FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things:

  1. It's easy to use;
  2. Cool dependency injection.

In taskiq, we try to make our libraries easy to use, and We have a dependency injection too. So we have created the library "taskiq-fastapiopen in new window" to make integration with FastAPI as smooth as possible.

Let's see what we got here. In this library, we provide users with only one public function called init. It takes a broker and a string path (as in uvicorn) to the fastapi application (or factory function). People should call this function in their main broker file.

from taskiq import ZeroMQBroker
 import taskiq_fastapi
 
 broker = ZeroMQBroker()
@@ -99,6 +99,6 @@
     broker.custom_dependency_context = {}
 
 

This fixture has autouse flag, which means it would run on every test automatically.

- + diff --git a/guide/architecture-overview.html b/guide/architecture-overview.html index 7803ff0..4bd05e3 100644 --- a/guide/architecture-overview.html +++ b/guide/architecture-overview.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Architecture overview | Taskiq + Architecture overview | Taskiq - - + + -
Skip to main content

Architecture overview

...

Architecture overview

Taskiq has very simple structure. On the client side all messages are sent by kickers using brokers. On the worker side all messages received by the broker and results are stored in result backends.

On the sequence diagram it looks like this:

Cool tip!

If you use dark theme and cannot see words on diagram, try switching to light theme and back to dark.

Let's discuss every component.

Broker

Brokers are the most critical element of the taskiq. Every broker must implement the AsyncBroker abstract class from taskiq.abc.brokeropen in new window to make things work.

AsyncBroker class has two main methods to implement:

  • kick
  • listen

The kick method puts the message in the external system. For example, it may call the PUB command in Redis.

The listen is a method with an infinite loop that reads messages from the external system and creates a task for processing messages. For example, it subscribes to the Redis channel and waits for new messages.

Kicker

Kicker is an object that used to form a message for broker. This class isn't extendable. To form a message kicker uses labels, task name and arguments.

When you call the task.kiq on a task, it generates a Kicker instance and is a shortening for the task.kicker().kiq(...). You can use kicker to change broker, add labels, or even change task_id.

import asyncio
+    
Skip to main content

Architecture overview

...

Architecture overview

Taskiq has very simple structure. On the client side all messages are sent by kickers using brokers. On the worker side all messages received by the broker and results are stored in result backends.

On the sequence diagram it looks like this:

Cool tip!

If you use dark theme and cannot see words on diagram, try switching to light theme and back to dark.

Let's discuss every component.

Broker

Brokers are the most critical element of the taskiq. Every broker must implement the AsyncBroker abstract class from taskiq.abc.brokeropen in new window to make things work.

AsyncBroker class has two main methods to implement:

  • kick
  • listen

The kick method puts the message in the external system. For example, it may call the PUB command in Redis.

The listen is a method with an infinite loop that reads messages from the external system and creates a task for processing messages. For example, it subscribes to the Redis channel and waits for new messages.

Kicker

Kicker is an object that used to form a message for broker. This class isn't extendable. To form a message kicker uses labels, task name and arguments.

When you call the task.kiq on a task, it generates a Kicker instance and is a shortening for the task.kicker().kiq(...). You can use kicker to change broker, add labels, or even change task_id.

import asyncio
 
 from taskiq.brokers.inmemory_broker import InMemoryBroker
 
@@ -135,6 +135,6 @@
 async def my_task(context: Context = TaskiqDepends()):
    await context.requeue()
 

Calling requeue or reject stops task execution and either drops the message, or puts it back to the queue.

Also, with context you'll be able to get current message that was received by the broker or even instance of a broker who received a message. This may be useful for lib developers.

- + diff --git a/guide/cli.html b/guide/cli.html index 1b7a0c3..d5033a7 100644 --- a/guide/cli.html +++ b/guide/cli.html @@ -28,23 +28,23 @@ document.documentElement.setAttribute("data-theme", "dark"); } - CLI | Taskiq + CLI | Taskiq - - + + -
Skip to main content

CLI

...

CLI

Core library comes with CLI program called taskiq, which is used to run different subcommands.

By default taskiq is shipped with only two commands: worker and scheduler. You can search for more taskiq plugins using pypi. Some plugins may add new commands to taskiq.

Worker

To run worker process, you have to specify the broker you want to use and modules with defined tasks. Like this:

taskiq worker mybroker:broker_var my_project.module1 my_project.module2
+    
Skip to main content

CLI

...

CLI

Core library comes with CLI program called taskiq, which is used to run different subcommands.

By default taskiq is shipped with only two commands: worker and scheduler. You can search for more taskiq plugins using pypi. Some plugins may add new commands to taskiq.

Worker

To run worker process, you have to specify the broker you want to use and modules with defined tasks. Like this:

taskiq worker mybroker:broker_var my_project.module1 my_project.module2
 

Auto importing

Enumerating all modules with tasks is not an option sometimes. That's why taskiq can auto-discover tasks in current directory recursively.

We have two options for this:

  • --tasks-pattern or -tp. It's a glob pattern of files to import. By default it is **/tasks.py which searches for all tasks.py files. May be specified multiple times.
  • --fs-discover or -fsd. This option enables search of task files in current directory recursively, using the given pattern.

Acknowledgements

The taskiq supports three types of acknowledgements:

  • when_received - task is acknowledged when it is received by the worker.
  • when_executed - task is acknowledged right after it is executed by the worker.
  • when_saved - task is acknowledged when the result of execution is saved in the result backend.

This can be configured using --ack-type parameter. For example:

taskiq worker --ack-type when_executed mybroker:broker
 

Type casts

One of features taskiq have is automatic type casts. For example you have a type-hinted task like this:

async def task(val: int) -> int:
     return val + 1
 

If you'll call task.kiq("2") you'll get 3 as the returned value. Because we parse signatures of tasks and cast incoming parameters to target types. If type-cast fails you won't throw any error. It just leave the value as is. That functionality allows you to use pydantic models, or dataclasses as the input parameters.

To disable this pass the --no-parse option to the taskiq.

Hot reload

This is annoying to restart workers every time you modify tasks. That's why taskiq supports hot-reload. Reload is unavailable by default. To enable this feature install taskiq with reload extra.

pip
pip install "taskiq[reload]"
 

To enable this option simply pass the --reload or -r option to worker taskiq CLI.

Also this option supports .gitignore files. If you have such file in your directory, it won't reload worker when you modify ignored files. To disable this functionality pass --do-not-use-gitignore option.

Graceful reload

To perform graceful reload, send SIGHUP signal to the main worker process. This action will reload all workers with new code. It's useful for deployment that requires zero downtime, but don't use orchestration tools like Kubernetes.

taskiq worker my_module:broker
+

To enable this option simply pass the --reload or -r option to worker taskiq CLI.

Also this option supports .gitignore files. If you have such file in your directory, it won't reload worker when you modify ignored files. To disable this functionality pass --do-not-use-gitignore option.

Graceful reload (available only on Unix systems)

To perform graceful reload, send SIGHUP signal to the main worker process. This action will reload all workers with new code. It's useful for deployment that requires zero downtime, but don't use orchestration tools like Kubernetes.

taskiq worker my_module:broker
 kill -HUP <main pid>
 

Other parameters

  • --no-configure-logging - disables default logging configuration for workers.
  • --log-level is used to set a log level (default INFO).
  • --max-async-tasks - maximum number of simultaneously running async tasks.
  • --max-prefetch - number of tasks to be prefetched before execution. (Useful for systems with high message rates, but brokers should support acknowledgements).
  • --max-threadpool-threads - number of threads for sync function exection.
  • --no-propagate-errors - if this parameter is enabled, exceptions won't be thrown in generator dependencies.
  • --receiver - python path to custom receiver class.
  • --receiver_arg - custom args for receiver.
  • --ack-type - Type of acknowledgement. This parameter is used to set when to acknowledge the task. Possible values are when_received, when_executed, when_saved. Default is when_saved.
  • max-tasks-per-child - maximum number of tasks to be executed by a single worker process before restart.
  • --shutdown-timeout - maximum amount of time for graceful broker's shutdown in seconds.
  • --wait-tasks-timeout - if cannot read new messages from the broker or maximum number of tasks is reached, worker will wait for all current tasks to finish. This parameter sets the maximum amount of time to wait until shutdown.

Scheduler

Scheduler is used to schedule tasks as described in Scheduling tasks section.

To run it simply run

taskiq scheduler <path to scheduler> [optional module to import]...
 

For example

taskiq scheduler my_project.broker:scheduler my_project.module1 my_project.module2
 

Parameters

Path to scheduler is the only required argument.

  • --tasks-pattern or -tp. It's a glob pattern of files to import. By default it is **/tasks.py which searches for all tasks.py files. May be specified multiple times.
  • --fs-discover or -fsd. This option enables search of task files in current directory recursively, using the given pattern.
  • --no-configure-logging - use this parameter if your application configures custom logging.
  • --log-level is used to set a log level (default INFO).
  • --skip-first-run - skip first run of scheduler. This option skips running tasks immediately after scheduler start.
- + diff --git a/guide/dynamic-brokers.html b/guide/dynamic-brokers.html index c3c7406..396dc77 100644 --- a/guide/dynamic-brokers.html +++ b/guide/dynamic-brokers.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Dynamic Environments | Taskiq + Dynamic Environments | Taskiq - - + + -
Skip to main content

Dynamic Environments

...

This article is for people who want to:

  • Create brokers dynamically.
  • Register tasks, and run them inside their code.
  • Implement more complex logic.

Taskiq allows you to set up broker instances throughout your application and register tasks for dynamic execution. However, tasks created this way won't be found by the taskiq worker command.

To define tasks and assign them to a broker, use register_task method.

import asyncio
+    
Skip to main content

Dynamic Environments

...

This article is for people who want to:

  • Create brokers dynamically.
  • Register tasks, and run them inside their code.
  • Implement more complex logic.

Taskiq allows you to set up broker instances throughout your application and register tasks for dynamic execution. However, tasks created this way won't be found by the taskiq worker command.

To define tasks and assign them to a broker, use register_task method.

import asyncio
 
 from taskiq_redis import ListQueueBroker
 
@@ -154,6 +154,6 @@
 if __name__ == "__main__":
     asyncio.run(main())
 
- + diff --git a/guide/getting-started.html b/guide/getting-started.html index 65dc1bd..16e353c 100644 --- a/guide/getting-started.html +++ b/guide/getting-started.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Getting started | Taskiq + Getting started | Taskiq - - + + -
Skip to main content

Getting started

...

Getting started

Installation

You can install taskiq from pypi or directly from git using pip:

pypi
pip install taskiq
+    
Skip to main content

Getting started

...

Getting started

Installation

You can install taskiq from pypi or directly from git using pip:

pypi
pip install taskiq
 

After installation of the core library, you need to find the broker that fits you. You can do it using PyPIopen in new window search.

Cool tip!

We highly recommend taskiq-aio-pikaopen in new window or taskiq-natsopen in new window as the broker and taskiq-redisopen in new window as the result backend for production use.

Running tasks

Now you need to create a python module with broker declaration. It's just a plain python file with the variable of your broker. For this particular example, I'm going to use the InMemoryBroker.

Important note

The InMemoryBroker doesn't send any data over the network, and you cannot use this broker in a real-world scenario, but it's still useful for local development if you do not want to set up a taskiq worker.

# broker.py
 from taskiq import InMemoryBroker
@@ -178,6 +178,6 @@
     await asyncio.sleep(2)
 

Cool alert

We use run_in_executoropen in new window method to run sync functions. Timeouts will raise a TimeoutException, but synchronous function may not stop from execution. This is a constraint of python.

- + diff --git a/guide/index.html b/guide/index.html index 2d7d42f..adf19e6 100644 --- a/guide/index.html +++ b/guide/index.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Introduction | Taskiq + Introduction | Taskiq - - + + -
Skip to main content

Introduction

...

Introduction

What is taskiq

Taskiq is a library that helps you send and process python functions in a distributed manner. For example, you have many heavy to calculate functions you want to execute on another server. You can implement interservice communication by yourself, or you can use Taskiq to make the job done easily.

The core library doesn't have much functionality. It provides two built-in brokers, CLI, basic functionality for creating distributed tasks, and abstractions to extend the taskiq. The main idea of taskiq is to make it modular and easy to extend. We have libraries for many possible use cases, but if you lack something, you can adopt taskiq to fit your needs.

Why not use existing libraries?

We created this project because we couldn't find any project that can execute and send async functions using distributed queues like RabbitMQ.

You might have seen projects built on top of asyncio that solve a similar problem, but here's a comparison table of the taskiq and other projects.

Feature nameTaskiqArqAioTasks
Actively maintained
Multiple broker backends
Multiple result backends
Have a rich documentation
Startup & Shutdown events
Have ability to abort tasks
Custom serializers
Dependency injection
Task pipelines
Task schedules
Global middlewares

If you have a fully synchronous project, consider using celery or dramatiq instead.

- +
Skip to main content

Introduction

...

Introduction

What is taskiq

Taskiq is a library that helps you send and process python functions in a distributed manner. For example, you have many heavy to calculate functions you want to execute on another server. You can implement interservice communication by yourself, or you can use Taskiq to make the job done easily.

The core library doesn't have much functionality. It provides two built-in brokers, CLI, basic functionality for creating distributed tasks, and abstractions to extend the taskiq. The main idea of taskiq is to make it modular and easy to extend. We have libraries for many possible use cases, but if you lack something, you can adopt taskiq to fit your needs.

Why not use existing libraries?

We created this project because we couldn't find any project that can execute and send async functions using distributed queues like RabbitMQ.

You might have seen projects built on top of asyncio that solve a similar problem, but here's a comparison table of the taskiq and other projects.

Feature nameTaskiqArqAioTasks
Actively maintained
Multiple broker backends
Multiple result backends
Have a rich documentation
Startup & Shutdown events
Have ability to abort tasks
Custom serializers
Dependency injection
Task pipelines
Task schedules
Global middlewares

If you have a fully synchronous project, consider using celery or dramatiq instead.

+ diff --git a/guide/message-format.html b/guide/message-format.html index 3e018b7..a5dc24b 100644 --- a/guide/message-format.html +++ b/guide/message-format.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Taskiq message format | Taskiq + Taskiq message format | Taskiq - - + + -
Skip to main content

Taskiq message format

...

Taskiq message format

Taskiq doesn't force you to use any specific message format. We define default message format, but you can use any format you want.

The default message format is:

example
{
+    
Skip to main content

Taskiq message format

...

Taskiq message format

Taskiq doesn't force you to use any specific message format. We define default message format, but you can use any format you want.

The default message format is:

example
{
     "task_name": "my_project.module1.task",
     "args": [1, 2, 3],
     "kwargs": {"a": 1, "b": 2, "c": 3},
@@ -80,6 +80,6 @@
 

Formatters

Formatters define the format of the message. It might be useful if you'd like to send a task to a celery worker for a different project. You can do it in seriazier as well, but formatters give you correct type hints.

By default we use a formatter that dumps the message to dict and serializes it using serializer. But you can define your own formatter to send a message in any format you want. To define a new formatter, you have to subclass the TaskiqFormatter class and implement dumps and loads methods. As an example, you can take a look at the JSONFormatter from taskiq.formatters implementation.

- + diff --git a/guide/scheduling-tasks.html b/guide/scheduling-tasks.html index 2b4a16b..9ac2dc4 100644 --- a/guide/scheduling-tasks.html +++ b/guide/scheduling-tasks.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Scheduling tasks | Taskiq + Scheduling tasks | Taskiq - - + + -
Skip to main content

Scheduling tasks

...

Scheduling tasks

Sometimes you may want to execute some tasks according to some schedule. For example, you maybe want to call a function every day at 2 pm.

That's not a problem if you use taskiq. We have primitives that can help you to solve your problems.

Let's imagine we have a module, as shown below, and we want to execute the heavy_task every 5 minutes. What should we do?

from taskiq_aio_pika import AioPikaBroker
+    
Skip to main content

Scheduling tasks

...

Scheduling tasks

Sometimes you may want to execute some tasks according to some schedule. For example, you maybe want to call a function every day at 2 pm.

That's not a problem if you use taskiq. We have primitives that can help you to solve your problems.

Let's imagine we have a module, as shown below, and we want to execute the heavy_task every 5 minutes. What should we do?

from taskiq_aio_pika import AioPikaBroker
 
 broker = AioPikaBroker("amqp://guest:guest@localhost:5672/")
 
@@ -121,6 +121,6 @@
     schedule_id = context.message.labels.get("schedule_id")
     print("Schedule ID:", schedule_id)
 
- + diff --git a/guide/state-and-deps.html b/guide/state-and-deps.html index f0bc8c9..99161ee 100644 --- a/guide/state-and-deps.html +++ b/guide/state-and-deps.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - State and Dependencies | Taskiq + State and Dependencies | Taskiq - - + + -
Skip to main content

State and Dependencies

...

State and Dependencies

State

The TaskiqState is a global variable where you can keep the variables you want to use later. For example, you want to open a database connection pool at a broker's startup.

This can be achieved by adding event handlers.

You can use one of these events:

  • WORKER_STARTUP
  • CLIENT_STARTUP
  • WORKER_SHUTDOWN
  • CLIENT_SHUTDOWN

Worker events are called when you start listening to the broker messages using taskiq. Client events are called when you call the startup method of your broker from your code.

This is an example of code using event handlers:

Annotated 3.10+
import asyncio
+    
Skip to main content

State and Dependencies

...

State and Dependencies

State

The TaskiqState is a global variable where you can keep the variables you want to use later. For example, you want to open a database connection pool at a broker's startup.

This can be achieved by adding event handlers.

You can use one of these events:

  • WORKER_STARTUP
  • CLIENT_STARTUP
  • WORKER_SHUTDOWN
  • CLIENT_SHUTDOWN

Worker events are called when you start listening to the broker messages using taskiq. Client events are called when you call the startup method of your broker from your code.

This is an example of code using event handlers:

Annotated 3.10+
import asyncio
 from typing import Annotated, Optional
 
 from redis.asyncio import ConnectionPool, Redis  # type: ignore
@@ -429,6 +429,6 @@
     await trans.commit()
 

If you don't want to propagate exceptions in dependencies, you can add --no-propagate-errors option to worker command.

taskiq worker my_file:broker --no-propagate-errors
 

In this case, no exception will ever going to be propagated to any dependency.

Generics

Taskiq supports generic dependencies. You can create a generic class that is generic over another class and takskiq will be able to resolve generics based on type annotations.

Default dependencies

By default taskiq has only two dependencies:

  • Context from taskiq.context.Context
  • TaskiqState from taskiq.state.TaskiqState

Adding first-level dependencies

You can expand default list of available dependencies for you application. Taskiq have an ability to add new first-level dependencies using brokers.

The AsyncBroker interface has a function called add_dependency_context and you can add more default dependencies to the taskiq. This may be useful for libraries if you want to add new dependencies to users.

- + diff --git a/guide/testing-taskiq.html b/guide/testing-taskiq.html index 0817927..0b5591e 100644 --- a/guide/testing-taskiq.html +++ b/guide/testing-taskiq.html @@ -28,13 +28,13 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Testing with taskiq | Taskiq + Testing with taskiq | Taskiq - - + + -
Skip to main content

Testing with taskiq

...

Testing with taskiq

Every time we write programs, we want them to be correct. To achieve this, we use tests. Taskiq allows you to write tests easily as if tasks were normal functions.

Let's dive into examples.

Preparations

Environment setup

For testing you maybe don't want to use actual distributed broker. But still you want to validate your logic. Since python is an interpreted language, you can easily replace you broker with another one if the expression is correct.

We can set an environment variable, that indicates that currently we're running in testing environment.

linux|macos
export ENVIRONMENT="pytest"
+    
Skip to main content

Testing with taskiq

...

Testing with taskiq

Every time we write programs, we want them to be correct. To achieve this, we use tests. Taskiq allows you to write tests easily as if tasks were normal functions.

Let's dive into examples.

Preparations

Environment setup

For testing you maybe don't want to use actual distributed broker. But still you want to validate your logic. Since python is an interpreted language, you can easily replace you broker with another one if the expression is correct.

We can set an environment variable, that indicates that currently we're running in testing environment.

linux|macos
export ENVIRONMENT="pytest"
 pytest -vv
 
- + diff --git a/index.html b/index.html index 6642640..3205e12 100644 --- a/index.html +++ b/index.html @@ -28,14 +28,14 @@ document.documentElement.setAttribute("data-theme", "dark"); } - Task manager for asyncio | Taskiq + Task manager for asyncio | Taskiq - - + +
Skip to main content
logo

Taskiq python

Async Distributed Task Manager

Get StartedIntroduction

Production ready

Taskiq has proven that it can run in heavy production systems with high load.

Fully asynchronous

Taskiq can run both sync and async functions. You don't have to worry about it.

Easily extensible

Taskiq has a lot of replaceable components. It's super easy to implement your own broker or middleware.

Strongly typed

Taskiq provides correct autocompletion for most of its functionality.

What is taskiq in a nutshell

Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern and flexible.

It's not a drop-in replacement for any other task manager. It has a different ecosystem of libraries and a different set of features. Also, it doesn't work for synchronous projects. You won't be able to send tasks synchronously.

Installation

You can install taskiq with pip or your favorite dependency manager:

pip install taskiq
 
- + diff --git a/search-pro.worker.js b/search-pro.worker.js index 842795d..31aa4ee 100644 --- a/search-pro.worker.js +++ b/search-pro.worker.js @@ -1,2 +1,2 @@ -const V=Object.entries,et=Object.fromEntries,st="ENTRIES",L="KEYS",T="VALUES",_="";class D{set;_type;_path;constructor(t,s){const n=t._tree,o=Array.from(n.keys());this.set=t,this._type=s,this._path=o.length>0?[{node:n,keys:o}]:[]}next(){const t=this.dive();return this.backtrack(),t}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:t,keys:s}=E(this._path);if(E(s)===_)return{done:!1,value:this.result()};const n=t.get(E(s));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const t=E(this._path).keys;t.pop(),!(t.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:t})=>E(t)).filter(t=>t!==_).join("")}value(){return E(this._path).node.get(_)}result(){switch(this._type){case T:return this.value();case L:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const E=e=>e[e.length-1],nt=(e,t,s)=>{const n=new Map;if(t===void 0)return n;const o=t.length+1,u=o+s,i=new Uint8Array(u*o).fill(s+1);for(let r=0;r{const d=u*i;t:for(const c of e.keys())if(c===_){const a=o[d-1];a<=s&&n.set(r,[e.get(c),a])}else{let a=u;for(let h=0;hs)continue t}R(e.get(c),t,s,n,o,a,i,r+c)}};class C{_tree;_prefix;_size=void 0;constructor(t=new Map,s=""){this._tree=t,this._prefix=s}atPrefix(t){if(!t.startsWith(this._prefix))throw new Error("Mismatched prefix");const[s,n]=x(this._tree,t.slice(this._prefix.length));if(s===void 0){const[o,u]=O(n);for(const i of o.keys())if(i!==_&&i.startsWith(u)){const r=new Map;return r.set(i.slice(u.length),o.get(i)),new C(r,t)}}return new C(s,t)}clear(){this._size=void 0,this._tree.clear()}delete(t){return this._size=void 0,ot(this._tree,t)}entries(){return new D(this,st)}forEach(t){for(const[s,n]of this)t(s,n,this)}fuzzyGet(t,s){return nt(this._tree,t,s)}get(t){const s=k(this._tree,t);return s!==void 0?s.get(_):void 0}has(t){const s=k(this._tree,t);return s!==void 0&&s.has(_)}keys(){return new D(this,L)}set(t,s){if(typeof t!="string")throw new Error("key must be a string");return this._size=void 0,I(this._tree,t).set(_,s),this}get size(){if(this._size)return this._size;this._size=0;const t=this.entries();for(;!t.next().done;)this._size+=1;return this._size}update(t,s){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=I(this._tree,t);return n.set(_,s(n.get(_))),this}fetch(t,s){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=I(this._tree,t);let o=n.get(_);return o===void 0&&n.set(_,o=s()),o}values(){return new D(this,T)}[Symbol.iterator](){return this.entries()}static from(t){const s=new C;for(const[n,o]of t)s.set(n,o);return s}static fromObject(t){return C.from(Object.entries(t))}}const x=(e,t,s=[])=>{if(t.length===0||e==null)return[e,s];for(const n of e.keys())if(n!==_&&t.startsWith(n))return s.push([e,n]),x(e.get(n),t.slice(n.length),s);return s.push([e,t]),x(void 0,"",s)},k=(e,t)=>{if(t.length===0||e==null)return e;for(const s of e.keys())if(s!==_&&t.startsWith(s))return k(e.get(s),t.slice(s.length))},I=(e,t)=>{const s=t.length;t:for(let n=0;e&&n{const[s,n]=x(e,t);if(s!==void 0){if(s.delete(_),s.size===0)W(n);else if(s.size===1){const[o,u]=s.entries().next().value;q(n,o,u)}}},W=e=>{if(e.length===0)return;const[t,s]=O(e);if(t.delete(s),t.size===0)W(e.slice(0,-1));else if(t.size===1){const[n,o]=t.entries().next().value;n!==_&&q(e.slice(0,-1),n,o)}},q=(e,t,s)=>{if(e.length===0)return;const[n,o]=O(e);n.set(o+t,s),n.delete(o)},O=e=>e[e.length-1],ut=(e,t)=>{const s=e._idToShortId.get(t);if(s!=null)return e._storedFields.get(s)},it=/[\n\r -#%-*,-/:;?@[-\]_{}\u00A0\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u1680\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2000-\u200A\u2010-\u2029\u202F-\u2043\u2045-\u2051\u2053-\u205F\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u3000-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]+/u,M="or",$="and",rt="and_not",ct=(e,t)=>{e.includes(t)||e.push(t)},N=(e,t)=>{for(const s of t)e.includes(s)||e.push(s)},P=({score:e},{score:t})=>t-e,lt=()=>new Map,b=e=>{const t=new Map;for(const s of Object.keys(e))t.set(parseInt(s,10),e[s]);return t},G=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,ht={[M]:(e,t)=>{for(const s of t.keys()){const n=e.get(s);if(n==null)e.set(s,t.get(s));else{const{score:o,terms:u,match:i}=t.get(s);n.score=n.score+o,n.match=Object.assign(n.match,i),N(n.terms,u)}}return e},[$]:(e,t)=>{const s=new Map;for(const n of t.keys()){const o=e.get(n);if(o==null)continue;const{score:u,terms:i,match:r}=t.get(n);N(o.terms,i),s.set(n,{score:o.score+u,terms:o.terms,match:Object.assign(o.match,r)})}return s},[rt]:(e,t)=>{for(const s of t.keys())e.delete(s);return e}},dt=(e,t,s,n,o,u)=>{const{k:i,b:r,d}=u;return Math.log(1+(s-t+.5)/(t+.5))*(d+e*(i+1)/(e+i*(1-r+r*n/o)))},at=e=>(t,s,n)=>{const o=typeof e.fuzzy=="function"?e.fuzzy(t,s,n):e.fuzzy||!1,u=typeof e.prefix=="function"?e.prefix(t,s,n):e.prefix===!0;return{term:t,fuzzy:o,prefix:u}},H=(e,t,s,n)=>{for(const o of Object.keys(e._fieldIds))if(e._fieldIds[o]===s){e._options.logger("warn",`SlimSearch: document with ID ${e._documentIds.get(t)} has changed before removal: term "${n}" was not present in field "${o}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}},ft=(e,t,s,n)=>{if(!e._index.has(n)){H(e,s,t,n);return}const o=e._index.fetch(n,lt),u=o.get(t);u==null||u.get(s)==null?H(e,s,t,n):u.get(s)<=1?u.size<=1?o.delete(t):u.delete(s):u.set(s,u.get(s)-1),e._index.get(n).size===0&&e._index.delete(n)},gt={k:1.2,b:.7,d:.5},mt={idField:"id",extractField:(e,t)=>e[t],tokenize:e=>e.split(it),processTerm:e=>e.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(e,t)=>{typeof console?.[e]=="function"&&console[e](t)},autoVacuum:!0},J={combineWith:M,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:gt},pt={combineWith:$,prefix:(e,t,s)=>t===s.length-1},Ft={batchSize:1e3,batchWait:10},U={minDirtFactor:.1,minDirtCount:20},_t={...Ft,...U},K=Symbol("*"),yt=(e,t)=>{const s=new Map,n={...e._options.searchOptions,...t};for(const[o,u]of e._documentIds){const i=n.boostDocument?n.boostDocument(u,"",e._storedFields.get(o)):1;s.set(o,{score:i,terms:[],match:{}})}return s},X=(e,t=M)=>{if(e.length===0)return new Map;const s=t.toLowerCase(),n=ht[s];if(!n)throw new Error(`Invalid combination operator: ${t}`);return e.reduce(n)||new Map},S=(e,t,s,n,o,u,i,r,d=new Map)=>{if(o==null)return d;for(const c of Object.keys(u)){const a=u[c],h=e._fieldIds[c],g=o.get(h);if(g==null)continue;let m=g.size;const p=e._avgFieldLength[h];for(const l of g.keys()){if(!e._documentIds.has(l)){ft(e,h,l,s),m-=1;continue}const f=i?i(e._documentIds.get(l),s,e._storedFields.get(l)):1;if(!f)continue;const y=g.get(l),F=e._fieldLength.get(l)[h],v=dt(y,m,e._documentCount,F,p,r),z=n*a*f*v,A=d.get(l);if(A){A.score+=z,ct(A.terms,t);const w=G(A.match,s);w?w.push(c):A.match[s]=[c]}else d.set(l,{score:z,terms:[t],match:{[s]:[c]}})}}return d},At=(e,t,s)=>{const n={...e._options.searchOptions,...s},o=(n.fields||e._options.fields).reduce((l,f)=>({...l,[f]:G(n.boost,f)||1}),{}),{boostDocument:u,weights:i,maxFuzzy:r,bm25:d}=n,{fuzzy:c,prefix:a}={...J.weights,...i},h=e._index.get(t.term),g=S(e,t.term,t.term,1,h,o,u,d);let m,p;if(t.prefix&&(m=e._index.atPrefix(t.term)),t.fuzzy){const l=t.fuzzy===!0?.2:t.fuzzy,f=l<1?Math.min(r,Math.round(t.term.length*l)):l;f&&(p=e._index.fuzzyGet(t.term,f))}if(m)for(const[l,f]of m){const y=l.length-t.term.length;if(!y)continue;p?.delete(l);const F=a*l.length/(l.length+.3*y);S(e,t.term,l,F,f,o,u,d,g)}if(p)for(const l of p.keys()){const[f,y]=p.get(l);if(!y)continue;const F=c*l.length/(l.length+y);S(e,t.term,l,F,f,o,u,d,g)}return g},Y=(e,t,s={})=>{if(t===K)return yt(e,s);if(typeof t!="string"){const a={...s,...t,queries:void 0},h=t.queries.map(g=>Y(e,g,a));return X(h,a.combineWith)}const{tokenize:n,processTerm:o,searchOptions:u}=e._options,i={tokenize:n,processTerm:o,...u,...s},{tokenize:r,processTerm:d}=i,c=r(t).flatMap(a=>d(a)).filter(a=>!!a).map(at(i)).map(a=>At(e,a,i));return X(c,i.combineWith)},Q=(e,t,s={})=>{const n=Y(e,t,s),o=[];for(const[u,{score:i,terms:r,match:d}]of n){const c=r.length||1,a={id:e._documentIds.get(u),score:i*c,terms:Object.keys(d),queryTerms:r,match:d};Object.assign(a,e._storedFields.get(u)),(s.filter==null||s.filter(a))&&o.push(a)}return t===K&&s.boostDocument==null&&e._options.searchOptions.boostDocument==null||o.sort(P),o},Ct=(e,t,s={})=>{s={...e._options.autoSuggestOptions,...s};const n=new Map;for(const{score:u,terms:i}of Q(e,t,s)){const r=i.join(" "),d=n.get(r);d!=null?(d.score+=u,d.count+=1):n.set(r,{score:u,terms:i,count:1})}const o=[];for(const[u,{score:i,terms:r,count:d}]of n)o.push({suggestion:u,terms:r,score:i/d});return o.sort(P),o};class Et{_options;_index;_documentCount;_documentIds;_idToShortId;_fieldIds;_fieldLength;_avgFieldLength;_nextId;_storedFields;_dirtCount;_currentVacuum;_enqueuedVacuum;_enqueuedVacuumConditions;constructor(t){if(t?.fields==null)throw new Error('SlimSearch: option "fields" must be provided');const s=t.autoVacuum==null||t.autoVacuum===!0?_t:t.autoVacuum;this._options={...mt,...t,autoVacuum:s,searchOptions:{...J,...t.searchOptions||{}},autoSuggestOptions:{...pt,...t.autoSuggestOptions||{}}},this._index=new C,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=U,this.addFields(this._options.fields)}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}get documentCount(){return this._documentCount}get termCount(){return this._index.size}toJSON(){const t=[];for(const[s,n]of this._index){const o={};for(const[u,i]of n)o[u]=Object.fromEntries(i);t.push([s,o])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:t,serializationVersion:2}}addFields(t){for(let s=0;s{if(c!==1&&c!==2)throw new Error("SlimSearch: cannot deserialize an index created with an incompatible version");const h=new Et(a);h._documentCount=t,h._nextId=s,h._documentIds=b(n),h._idToShortId=new Map,h._fieldIds=o,h._fieldLength=b(u),h._avgFieldLength=i,h._storedFields=b(r),h._dirtCount=d||0,h._index=new C;for(const[g,m]of h._documentIds)h._idToShortId.set(m,g);for(const[g,m]of e){const p=new Map;for(const l of Object.keys(m)){let f=m[l];c===1&&(f=f.ds),p.set(parseInt(l,10),b(f))}h._index.set(g,p)}return h},B=(e,t)=>{const s=e.toLowerCase(),n=t.toLowerCase(),o=[];let u=0,i=0;const r=(c,a=!1)=>{let h="";i===0?h=c.length>20?`… ${c.slice(-20)}`:c:a?h=c.length+i>100?`${c.slice(0,100-i)}… `:c:h=c.length>20?`${c.slice(0,20)} … ${c.slice(-20)}`:c,h&&o.push(h),i+=h.length,a||(o.push(["mark",t]),i+=t.length,i>=100&&o.push(" …"))};let d=s.indexOf(n,u);if(d===-1)return null;for(;d>=0;){const c=d+n.length;if(r(e.slice(u,d)),u=c,i>100)break;d=s.indexOf(n,u)}return i<100&&r(e.slice(u),!0),o},wt=(e,t)=>t.contents.reduce((s,[,n])=>s+n,0)-e.contents.reduce((s,[,n])=>s+n,0),xt=(e,t)=>Math.max(...t.contents.map(([,s])=>s))-Math.max(...e.contents.map(([,s])=>s)),Z=(e,t,s={})=>{const n={};return Q(t,e,{boost:{h:2,t:1,c:4},prefix:!0,...s}).forEach(o=>{const{id:u,terms:i,score:r}=o,d=u.includes("@"),c=u.includes("#"),[a,h]=u.split(/[#@]/),g=Number(a),m=i.sort((l,f)=>l.length-f.length).filter((l,f)=>i.slice(f+1).every(y=>!y.includes(l))),{contents:p}=n[g]??={title:"",contents:[]};if(d)p.push([{type:"customField",id:g,index:h,display:m.map(l=>o.c.map(f=>B(f,l))).flat().filter(l=>l!==null)},r]);else{const l=m.map(f=>B(o.h,f)).filter(f=>f!==null);if(l.length&&p.push([{type:c?"heading":"title",id:g,...c&&{anchor:h},display:l},r]),"t"in o)for(const f of o.t){const y=m.map(F=>B(f,F)).filter(F=>F!==null);y.length&&p.push([{type:"text",id:g,...c&&{anchor:h},display:y},r])}}}),V(n).sort(([,o],[,u])=>"max"==="total"?wt(o,u):xt(o,u)).map(([o,{title:u,contents:i}])=>{if(!u){const r=ut(t,o);r&&(u=r.h)}return{title:u,contents:i.map(([r])=>r)}})},tt=(e,t,s={})=>{const n=Ct(t,e,{fuzzy:.2,maxFuzzy:3,...s}).map(({suggestion:o})=>o);return e.includes(" ")?n:n.filter(o=>!o.includes(" "))},bt=et(V(JSON.parse("{\"/\":{\"documentCount\":95,\"nextId\":95,\"documentIds\":{\"0\":\"0\",\"1\":\"0#what-is-taskiq-in-a-nutshell\",\"2\":\"0#installation\",\"3\":\"1\",\"4\":\"1#setting-up-environment\",\"5\":\"1#linting\",\"6\":\"1#testing\",\"7\":\"2\",\"8\":\"3\",\"9\":\"3#inmemorybroker\",\"10\":\"3#zeromqbroker\",\"11\":\"3#async-shared-broker-and-shared-tasks\",\"12\":\"3#custom-brokers\",\"13\":\"3#aiopikabroker-for-rabbitmq\",\"14\":\"3#redis-broker\",\"15\":\"3#nats-broker\",\"16\":\"4\",\"17\":\"4#simple-retry-middleware\",\"18\":\"4#prometheus-middleware\",\"19\":\"5\",\"20\":\"5#dummyresultbackend\",\"21\":\"5#redis-result-backend\",\"22\":\"6\",\"23\":\"6#redisschedulesource\",\"24\":\"6#labelschedulesource\",\"25\":\"7\",\"26\":\"7#contents\",\"27\":\"8\",\"28\":\"8#acknowledgement\",\"29\":\"8#conventions\",\"30\":\"9\",\"31\":\"10\",\"32\":\"11\",\"33\":\"12\",\"34\":\"13\",\"35\":\"14\",\"36\":\"15\",\"37\":\"16\",\"38\":\"16#adding-taskiq-integration\",\"39\":\"16#testing\",\"40\":\"17\",\"41\":\"17#testing\",\"42\":\"18\",\"43\":\"18#what-is-taskiq\",\"44\":\"18#why-not-use-existing-libraries\",\"45\":\"19\",\"46\":\"19#broker\",\"47\":\"19#kicker\",\"48\":\"19#messages\",\"49\":\"19#result-backend\",\"50\":\"19#workers\",\"51\":\"19#middlewares\",\"52\":\"19#context\",\"53\":\"20\",\"54\":\"20#worker\",\"55\":\"20#auto-importing\",\"56\":\"20#acknowledgements\",\"57\":\"20#type-casts\",\"58\":\"20#hot-reload\",\"59\":\"20#graceful-reload\",\"60\":\"20#other-parameters\",\"61\":\"20#scheduler\",\"62\":\"20#parameters\",\"63\":\"21\",\"64\":\"22\",\"65\":\"22#installation\",\"66\":\"22#running-tasks\",\"67\":\"22#distributed-run\",\"68\":\"22#timeouts\",\"69\":\"23\",\"70\":\"23#serializers\",\"71\":\"23#formatters\",\"72\":\"24\",\"73\":\"24#multiple-sources\",\"74\":\"24#working-with-timezones\",\"75\":\"24#skipping-first-run\",\"76\":\"24#dynamic-scheduling\",\"77\":\"25\",\"78\":\"25#state\",\"79\":\"25#dependencies\",\"80\":\"25#how-dependencies-are-useful\",\"81\":\"25#how-do-dependencies-work\",\"82\":\"25#class-as-a-dependency\",\"83\":\"25#generator-dependencies\",\"84\":\"25#exception-handling\",\"85\":\"25#generics\",\"86\":\"25#default-dependencies\",\"87\":\"25#adding-first-level-dependencies\",\"88\":\"26\",\"89\":\"26#preparations\",\"90\":\"26#environment-setup\",\"91\":\"26#async-tests\",\"92\":\"26#testing-tasks\",\"93\":\"26#dependency-injection\",\"94\":\"27\"},\"fieldIds\":{\"h\":0,\"t\":1,\"c\":2},\"fieldLength\":{\"0\":[4],\"1\":[6,52],\"2\":[1,12],\"3\":[2,77],\"4\":[3,48],\"5\":[1,30],\"6\":[1,55],\"7\":[2,22],\"8\":[2,10],\"9\":[1,33],\"10\":[1,73],\"11\":[5,54],\"12\":[2,31],\"13\":[4,8],\"14\":[2,7],\"15\":[2,7],\"16\":[2,16],\"17\":[3,65],\"18\":[2,55],\"19\":[3,17],\"20\":[1,31],\"21\":[3,33],\"22\":[3,17],\"23\":[1,51],\"24\":[1,99],\"25\":[2,27],\"26\":[2,7],\"27\":[1,120],\"28\":[1,66],\"29\":[1,54],\"30\":[1,117],\"31\":[1,68],\"32\":[2,121],\"33\":[2,114],\"34\":[2,37],\"35\":[3,97],\"36\":[3,188],\"37\":[3,77],\"38\":[3,137],\"39\":[1,95],\"40\":[3,183],\"41\":[1,92],\"42\":[1],\"43\":[3,79],\"44\":[6,86],\"45\":[2,54],\"46\":[1,61],\"47\":[1,84],\"48\":[1,70],\"49\":[2,55],\"50\":[1,106],\"51\":[1,130],\"52\":[1,70],\"53\":[1,37],\"54\":[1,27],\"55\":[2,58],\"56\":[1,37],\"57\":[2,72],\"58\":[2,58],\"59\":[2,46],\"60\":[2,111],\"61\":[1,30],\"62\":[1,71],\"63\":[2,193],\"64\":[2],\"65\":[1,45],\"66\":[2,177],\"67\":[2,177],\"68\":[1,52],\"69\":[3,36],\"70\":[1,92],\"71\":[1,74],\"72\":[2,158],\"73\":[2,85],\"74\":[3,73],\"75\":[3,71],\"76\":[2,180],\"77\":[3],\"78\":[1,77],\"79\":[1,50],\"80\":[4,111],\"81\":[4,84],\"82\":[4,48],\"83\":[2,36],\"84\":[2,62],\"85\":[1,26],\"86\":[2,12],\"87\":[4,44],\"88\":[3,31],\"89\":[1],\"90\":[2,59],\"91\":[2,95],\"92\":[2,78],\"93\":[2,146],\"94\":[1,3]},\"averageFieldLength\":[2.0315789473684203,68.22413011452095],\"storedFields\":{\"0\":{\"h\":\"Task manager for asyncio\"},\"1\":{\"h\":\"What is taskiq in a nutshell\",\"t\":[\"Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern and flexible.\",\"It's not a drop-in replacement for any other task manager. It has a different ecosystem of libraries and a different set of features. Also, it doesn't work for synchronous projects. You won't be able to send tasks synchronously.\"]},\"2\":{\"h\":\"Installation\",\"t\":[\"You can install taskiq with pip or your favorite dependency manager:\",\"pip install taskiq\\n\"]},\"3\":{\"h\":\"Contribution guide\",\"t\":[\"We love contributions. This guide is for all folks who want to make taskiq better together. We have several rules for contributors:\",\"Please do not add malware.\",\"Please make sure that your request solves the problem.\",\"If you struggle with something or feel frustrated, you either create an issue, create a discussions. page or publish a draft PR and ask your question in the description.\",\"We have lots of tests in CI. But since CI runs from first-time contributors should be approved, you better test locally. It just takes less time to prepare PR for merging.\"]},\"4\":{\"h\":\"Setting up environment\",\"t\":[\"We use poetry for managing dependencies. To install it, please follow the official guide in documentation.\",\"After you have cloned the taskiq repo, install dependencies using this command:\",\"poetry install \",\"It will install all required dependencies. If you want to run pytest against different python environments, please install pyenv using instructions from its readme.\",\"After pyenv is ready, you can install all python versions using this command:\",\"pyenv install \"]},\"5\":{\"h\":\"Linting\",\"t\":[\"We have pre-commit configured with all our settings. We highly recommend you to install it as a git hook using pre-commit install command.\",\"But even without installation, you can run all lints manually:\",\"pre-commit run -a \"]},\"6\":{\"h\":\"Testing\",\"t\":[\"You can run pytest without any parameters and it will do the thing.\",\"pytest \",\"If you want to speedup testings, you can run it with -n option from pytest-xdist to run tests in parallel.\",\"pytest -n 2 \",\"Also we use tox to test against different environments. You can publish a PR to run pytest with different python versions, but if you want to do it locally, just run tox command.\",\"tox \",\"Tox assumes that you've installed python versions using pyenv with command above.\"]},\"7\":{\"h\":\"Available components\",\"t\":[\"In this section, you can find a list of officially supported plugins for the taskiq.\",\"Available brokers\",\"Available middlewares\",\"Available result backends\",\"Available schedule sources\"]},\"8\":{\"h\":\"Available brokers\",\"t\":[\"In this section we'll list officially supported brokers.\"]},\"9\":{\"h\":\"InMemoryBroker\",\"t\":[\"This is a special broker for local development. It uses the same functions to execute tasks, but all tasks are executed locally in the current thread. By default it uses InMemoryResultBackend but this can be overridden.\"]},\"10\":{\"h\":\"ZeroMQBroker\",\"t\":[\"This broker uses ZMQ to communicate between worker and client processes. It's suitable for small projects with only ONE worker process, because of the ZMQ architecture.\",\"It publishes messages on the local port. All worker processes are reading messages from this port. If you run many worker processes, all tasks will be executed N times, where N is the total number of worker processes.\",\"Be careful!\",\"If you choose this type of broker, please run taskiq with -w 1 parameter, otherwise you may encounter undefined behavior.\",\"To run this broker please install the pyzmq lib. Or you can taskiq with zmq extra.\"]},\"11\":{\"h\":\"Async shared broker and shared tasks\",\"t\":[\"This is also a special broker. You cannot use it directly. It's used to create shared tasks. These tasks can be imported along with user defined tasks. To define a shared task please use this broker.\",\"from taskiq.brokers.shared_broker import async_shared_broker @async_shared_broker.task def my_task() -> bool: return True \",\"To kiq this task you have to options:\",\"Explicitly define broker using kicker for this kiq;\",\"Add default broker for all shared tasks.\"]},\"12\":{\"h\":\"Custom brokers\",\"t\":[\"These brokers are not parts of the core taskiq lib. You can install them as a separate packages.\",\"You can read more about parameters and abilities of these brokers in README.md of each repo.\"]},\"13\":{\"h\":\"AioPikaBroker (for RabbitMQ)\",\"t\":[\"Project link: taskiq-aio-pika.\",\"pip install taskiq-aio-pika \"]},\"14\":{\"h\":\"Redis broker\",\"t\":[\"Project link: taskiq-redis.\",\"pip install taskiq-redis \"]},\"15\":{\"h\":\"NATS broker\",\"t\":[\"Project link: taskiq-nats.\",\"pip install taskiq-nats \"]},\"16\":{\"h\":\"Available middlewares\",\"t\":[\"Middlewares allow you to execute code when specific event occurs. Taskiq has several default middlewares.\"]},\"17\":{\"h\":\"Simple retry middleware\",\"t\":[\"This middleware allows you to restart functions on errors. If exception was raised during task execution, the task would be resent with same parameters.\",\"To enable this middleware, add it to the list of middlewares for a broker.\",\"from taskiq import ZeroMQBroker, SimpleRetryMiddleware broker = ZeroMQBroker().with_middlewares( SimpleRetryMiddleware(default_retry_count=3), ) \",\"After that you can add a label to task that you want to restart on error.\",\" @broker.task(retry_on_error=True, max_retries=20) async def test(): raise Exception(\\\"AAAAA!\\\") \",\"retry_on_error enables retries for a task. max_retries is the maximum number of times,.\"]},\"18\":{\"h\":\"Prometheus middleware\",\"t\":[\"You can enable prometheus metrics for workers by adding PrometheusMiddleware. To do so, you need to install prometheus_client package or you can install metrics extras for taskiq.\",\"from taskiq import ZeroMQBroker, PrometheusMiddleware broker = ZeroMQBroker().with_middlewares( PrometheusMiddleware(server_addr=\\\"0.0.0.0\\\", server_port=9000), ) \",\"After that, metrics will be available at port 9000. Of course, this parameter can be configured.\\nIf you have other metrics, they'll be shown as well.\"]},\"19\":{\"h\":\"Available result backends\",\"t\":[\"Result backends are used to store execution results. This includes:\",\"return value;\",\"Execution time in seconds.\"]},\"20\":{\"h\":\"DummyResultBackend\",\"t\":[\"This result backend doesn't do anything. It doesn't store results and cannot be used in cases, where you need actual results.\",\"This broker will always return None for any return_value. Please be careful.\"]},\"21\":{\"h\":\"Redis result backend\",\"t\":[\"This result backend is not part of the core taskiq library. You can install it as a separate package taskiq-redis.\",\"pip install taskiq-redis \",\"You can read more about parameters and abilities of this broker in README.md.\"]},\"22\":{\"h\":\"Available schedule sources\",\"t\":[\"These objects are used to fetch current schedule for tasks. Currently we have only one schedule source.\"]},\"23\":{\"h\":\"RedisScheduleSource\",\"t\":[\"This source is capable of adding new schedules in runtime. It uses Redis as a storage for schedules. To use this source you need to install taskiq-redis package.\",\"from taskiq_redis import RedisScheduleSource from taskiq import TaskiqScheduler redis_source = RedisScheduleSource(\\\"redis://localhost:6379/0\\\") scheduler = TaskiqScheduler(broker, sources=[redis_source]) \",\"For more information on how to use dynamic schedule sources read Dynamic scheduling section.\"]},\"24\":{\"h\":\"LabelScheduleSource\",\"t\":[\"This source parses labels of tasks, and if it finds a schedule label, it considers this task as scheduled.\",\"The format of the schedule label is the following:\",\"@broker.task( schedule=[ { \\\"cron\\\": \\\"* * * * *\\\", # type: str, either cron or time shoule be specified. \\\"cron_offset\\\": None # type: str | timedelta | None, can be ommited. \\\"time\\\": None # type: datetime | None, either cron or time shoule be specified. \\\"args\\\": [], # type List[Any] | None, can be omitted. \\\"kwargs\\\": {}, # type: Dict[str, Any] | None, can be omitted. \\\"labels\\\": {}, # type: Dict[str, Any] | None, can be omitted. } ] ) async def my_task(): ... \",\"Parameters:\",\"cron - crontab string when to run the task.\",\"cron_offset - timezone offset for cron values. Explained here\",\"time - specific time when send the task.\",\"args - args to use, when invoking the task.\",\"kwargs - key-word arguments to use when invoking the task.\",\"labels - additional labels to use when invoking the task.\",\"To enable this source, just add it to the list of sources:\",\"from taskiq.scheduler import TaskiqScheduler from taskiq.schedule_sources import LabelScheduleSource broker = ... scheduler = TaskiqScheduler( broker=broker, sources=[LabelScheduleSource(broker)], ) \",\"Cool notice!\",\"In order to resolve all labels correctly, don't forget to import\\nall task modules using CLI interface.\"]},\"25\":{\"h\":\"Extending taskiq\",\"t\":[\"Taskiq is super extendable. The core library comes with different abstract classes. You can implement these abstract classes to extend functionality.\",\"All abstract classes can be found in taskiq.abc package.\"]},\"26\":{\"h\":\"Contents:\",\"t\":[\"Brokers\",\"Middlewares\",\"Result backends\",\"CLI\",\"Schedule sources\"]},\"27\":{\"h\":\"Brokers\",\"t\":[\"To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class. But along with them we have helper methods. Such as shutdown and startup.\",\"Here is a template for new brokers:\",\"from typing import AsyncGenerator, Union from taskiq import AckableMessage, AsyncBroker, BrokerMessage class MyBroker(AsyncBroker): def __init__(self) -> None: # Please call this super method to set default values to # many different fields. super().__init__() async def startup(self) -> None: # Here you can do some startup magic. # Like opening a connection. return await super().startup() async def shutdown(self) -> None: # Here you can perform shutdown operations. # Like closing connections. return await super().shutdown() async def kick(self, message: BrokerMessage) -> None: # Send a message.message. pass async def listen(self) -> AsyncGenerator[Union[bytes, AckableMessage], None]: while True: # Get new message. new_message: bytes = ... # type: ignore # Yield it! yield new_message \",\"The kick method takes a BrokerMessage as a parameter. The BrokerMessage class is a handy helper class for brokers. You can use information from the BrokerMessage to alter the delivery method.\",\"\\\"cool warning!\\\"\",\"As a broker developer, please send only raw bytes from the message field of a BrokerMessage if possible. Serializing it to the string may result in a problem if message bytes are not utf-8 compatible.\"]},\"28\":{\"h\":\"Acknowledgement\",\"t\":[\"The listen method should yield raw bytes of a message. But if your broker supports acking or rejecting messages, the broker should return taskiq.AckableMessage with required fields.\",\"For example:\",\" async def listen(self) -> AsyncGenerator[AckableMessage, None]: for message in self.my_channel: yield AckableMessage( data=message.bytes, # Ack is a function that takes no parameters. # So you either set here method of a message, # or you can make a closure. ack=message.ack # Can be set to None if broker doesn't support it. reject=message.reject ) \"]},\"29\":{\"h\":\"Conventions\",\"t\":[\"For brokers, we have several conventions. It's good if your broker implements them. These rules are optional, and it's ok if your broker doesn't implement them.\",\"If the message has the delay label with int or float number, this task's execution must be delayed with the same number of seconds as in the delay label.\",\"If the message has the priority label, this message must be sent with priority. Tasks with\\nhigher priorities are executed sooner.\"]},\"30\":{\"h\":\"CLI\",\"t\":[\"You can easily add new subcommands to taskiq. All default subcommands also use this mechanism, since it's easy to use.\",\"At first you need to add a class that implements taskiq.abc.cmd.TaskiqCMD abstract class.\",\"from argparse import ArgumentParser from typing import Sequence from taskiq.abc.cmd import TaskiqCMD class MyCommand(TaskiqCMD): short_help = \\\"Demo command\\\" def exec(self, args: Sequence[str]) -> None: parser = ArgumentParser() parser.add_argument( \\\"--test\\\", dest=\\\"test\\\", default=\\\"default\\\", help=\\\"My test parameter.\\\", ) parsed = parser.parse_args(args) print(parsed) \",\"In the exec method, you should parse incoming arguments. But since all CLI arguments to taskiq are shifted you can ignore the args parameter.\",\"Also, you can use your favorite tool to build CLI, like click or typer.\",\"After you have such class, you need to add entrypoint that points to that class.\",\"You can read more about entry points in python documentation. The subcommand name is the same as the name of the entry point you've created.\",\"$ taskiq demo --help usage: demo [-h] [--test TEST] optional arguments: -h, --help show this help message and exit --test TEST My test parameter. \",\"$ taskiq demo --test aaa Namespace(test='aaa') \"]},\"31\":{\"h\":\"Middlewares\",\"t\":[\"Middlewares are super helpful. You can inject some code before or after task's execution.\",\"Middlewares must implement taskiq.abc.middleware.TaskiqMiddleware abstract class. Every method of a middleware can be either sync or async. Taskiq will execute it as you expect.\",\"For example:\",\"Also, middlewares always have reference to the current broker in self.broker field. If you want to kick a message during the execution of some middleware hooks, you may use self.broker to do so.\",\"Taskiq-pipelines uses middlewares to\\ncall next tasks.\"]},\"32\":{\"h\":\"Result backend\",\"t\":[\"Result backends are used to store information about task execution. To create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBackend class.\",\"Here's a minimal example of a result backend:\",\"from typing import TypeVar from taskiq import TaskiqResult from taskiq.abc.result_backend import AsyncResultBackend _ReturnType = TypeVar(\\\"_ReturnType\\\") class MyResultBackend(AsyncResultBackend[_ReturnType]): async def startup(self) -> None: \\\"\\\"\\\"Do something when starting broker.\\\"\\\"\\\" async def shutdown(self) -> None: \\\"\\\"\\\"Do something on shutdown.\\\"\\\"\\\" async def set_result( self, task_id: str, result: TaskiqResult[_ReturnType], ) -> None: \\\"\\\"\\\" Set result in your backend. :param task_id: current task id. :param result: result of execution. \\\"\\\"\\\" async def get_result( self, task_id: str, with_logs: bool = False, ) -> TaskiqResult[_ReturnType]: \\\"\\\"\\\" Here you must retrieve result by id. Logs is a part of a result. Here we have a parameter whether you want to fetch result with logs or not, because logs can have a lot of info and sometimes it's critical to get only needed information. :param task_id: id of a task. :param with_logs: whether to fetch logs. :return: result. \\\"\\\"\\\" return ... # type: ignore async def is_result_ready( self, task_id: str, ) -> bool: \\\"\\\"\\\" Check if result exists. This function must check whether result is available in your result backend without fetching the result. :param task_id: id of a task. :return: True if result is ready. \\\"\\\"\\\" return ... # type: ignore \",\"Cool tip!\",\"It's a good practice to skip fetching logs from the storage unless with_logs=True is explicitly specified.\",\"Important note!\",\"with_logs param is now deprecated. It will be removed in future releases.\"]},\"33\":{\"h\":\"Schedule source\",\"t\":[\"Schedule sources are used to get schedule for tasks. To create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract class.\",\"Here's a minimal example of a schedule source:\",\"from typing import List from taskiq import ScheduledTask, ScheduleSource class MyScheduleSource(ScheduleSource): async def startup(self) -> None: \\\"\\\"\\\"Do something when starting broker.\\\"\\\"\\\" async def shutdown(self) -> None: \\\"\\\"\\\"Do something on shutdown.\\\"\\\"\\\" async def get_schedules(self) -> List[\\\"ScheduledTask\\\"]: # Here you must return list of scheduled tasks from your source. return [ ScheduledTask( task_name=\\\"\\\", labels={}, args=[], kwargs={}, cron=\\\"* * * * *\\\", ), ] # This method is optional. You may not implement this. # It's just a helper to people to be able to interact with your source. async def add_schedule(self, schedule: \\\"ScheduledTask\\\") -> None: print(\\\"New schedule added:\\\", schedule) # This method is completely optional, but if you want to support # schedule cancelation, you must implement it. async def delete_schedule(self, schedule_id: str) -> None: print(\\\"Deleting schedule:\\\", schedule_id) # This method is optional. You may not implement this. # It's just a helper to people to be able to interact with your source. async def pre_send(self, task: \\\"ScheduledTask\\\") -> None: \\\"\\\"\\\" Actions to execute before task will be sent to broker. This method may raise ScheduledTaskCancelledError. This cancels the task execution. :param task: task that will be sent \\\"\\\"\\\" # This method is optional. You may not implement this. # It's just a helper to people to be able to interact with your source. async def post_send(self, task: \\\"ScheduledTask\\\") -> None: \\\"\\\"\\\" Actions to execute after task was sent to broker. :param task: task that just have sent \\\"\\\"\\\" \",\"You can implement a schedule source that write schedules in the database and have delayed tasks in runtime.\"]},\"34\":{\"h\":\"Framework integrations\",\"t\":[\"Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework easy and fun!\",\"Integrations with frameworks add two things:\",\"Startup and Shutdown events;\",\"Dependencies to use in your handler.\"]},\"35\":{\"h\":\"Taskiq + FastStream\",\"t\":[\"FastStream is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq is more focused on tasks for a specific project and more like celery but async, while FastStream is more focused on events and defining how different systems communicate with each other using distributed brokers.\",\"If you want to declare communication between different projects you can use taskiq, but it might be a bit more complex than using FastStream.\",\"Although these libraries solve different problems, they have integration between each other, so you can use FastStream as a broker for taskiq. It allows FastStream to use taskiq's scheduler along with its own features.\",\"To use FastStream as a broker for taskiq you need to install the taskiq-faststream library:\",\"pip install \\\"taskiq-faststream\\\" \",\"And you can use it like this:\",\"from faststream import FastStream from faststream.kafka import KafkaBroker from taskiq_faststream import BrokerWrapper broker = KafkaBroker(\\\"localhost:9092\\\") app = FastStream(broker) taskiq_broker = BrokerWrapper(broker) \",\"You can read more about scheduling tasks for FastStream in the FastStream documentation.\"]},\"36\":{\"h\":\"Taskiq + Aiogram\",\"t\":[\"Taskiq-Aiogram is a nice integration with one of the best telegram bot libraries - aiogram.\",\"This integration allows you to easily send delayed messages or run intensive functions without blocking the message handing.\",\"This integration adds three main dependencies which you can use in your taskiq functions:\",\"aiogram.Bot - the bot instance that you can use to send messages or perform other actions. If multiple bots listen to the same dispatcher, this dependency will be resolved to the latest bot passed in the taskiq_aiogram.init function.\",\"aiogram.Dispatcher - current dispatcher instance.\",\"List[aiogram.Bot] - list of all bots that were passed to the taskiq_aiogram.init function.\",\"To enable the integration, please install the taskiq-aiogram library:\",\"pip install \\\"taskiq-aiogram\\\" \",\"After the installation is complete, add an initialization function call to your broker's main file so it becomes something like this:\",\"import asyncio import taskiq_aiogram from aiogram import Bot from taskiq import TaskiqDepends from taskiq_redis import ListQueueBroker broker = ListQueueBroker(\\\"redis://localhost\\\") # This line is going to initialize everything. taskiq_aiogram.init( broker, # This is path to the dispatcher. \\\"bot:dp\\\", # This is path to the bot instance. \\\"bot:bot\\\", # You can specify more bots here. ) @broker.task(task_name=\\\"my_task\\\") async def my_task(chat_id: int, bot: Bot = TaskiqDepends()) -> None: print(\\\"I'm a task\\\") await asyncio.sleep(4) await bot.send_message(chat_id, \\\"task completed\\\") \",\"Let's see how to use this integration.\",\"import asyncio import logging import sys from aiogram import Bot, Dispatcher, types from aiogram.filters import Command from tkq import broker, my_task dp = Dispatcher() bot = Bot(token=\\\"TOKEN\\\") # Taskiq calls this function when starting the worker. @dp.startup() async def setup_taskiq(bot: Bot, *_args, **_kwargs): # Here we check if it's a clien-side, # Because otherwise you're going to # create infinite loop of startup events. if not broker.is_worker_process: logging.info(\\\"Setting up taskiq\\\") await broker.startup() # Taskiq calls this function when shutting down the worker. @dp.shutdown() async def shutdown_taskiq(bot: Bot, *_args, **_kwargs): if not broker.is_worker_process: logging.info(\\\"Shutting down taskiq\\\") await broker.shutdown() ## Simple command to handle @dp.message(Command(\\\"task\\\")) async def message(message: types.Message): await my_task.kiq(message.chat.id) ## Main function that starts the bot. async def main(): await dp.start_polling(bot) if __name__ == \\\"__main__\\\": logging.basicConfig(level=logging.INFO, stream=sys.stdout) asyncio.run(main()) \",\"That's it. Now you can easily call tasks from your bots and access bots from within your tasks.\"]},\"37\":{\"h\":\"Taskiq + AioHTTP\",\"t\":[\"AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better.\",\"We created a library aiohttp-deps to add FastAPI-like dependency injection in AioHTTP.\",\"To install it, simply run:\",\"pip install \\\"aiohttp-deps\\\" \",\"After the installation, please add startup event to your application to initialize dependencies context.\",\"from aiohttp import web import aiohttp_deps app = web.Application() # This startup event makes all the magic happen. # It parses current handlers and create dependency graphs for them. app.on_startup.append(aiohttp_deps.init) web.run_app(app) \",\"You can read more about dependency injection and available dependencies in the project's README.md.\"]},\"38\":{\"h\":\"Adding taskiq integration\",\"t\":[\"We highly recommend using aiohttp with aiohttp-deps because it allows us to reuse the same dependencies for your handlers and tasks. First of all, you should install the taskiq-aiohttp library.\",\"pip install \\\"taskiq-aiohttp\\\" \",\"After the installation is complete, add an initialization function call to your broker's main file so it becomes something like this:\",\"import taskiq_aiohttp broker = MyBroker() # The second argument is a path to web.Application variable. # Also you can provide here a factory function that takes no # arguments and returns an application. This function can be async. taskiq_aiohttp.init(broker, \\\"my_project.main:app\\\") \",\"From this point, you'll be able to reuse the same dependencies as with aiohttp-deps. Let's take a look at this function:\",\"In this example, we depend on the current application. We can use its state in a current task or any other dependency. We can take db_pool from your application's state, which is the same pool, as the one you've created on AiohTTP's startup. But this application is only a mock of your application. It has correct types and all your variables that you filled on startup, but it doesn't handle any request. This integration adds two main dependencies:\",\"web.Application - current application.\",\"web.Request - mocked request. This request only exists to be able to use the same dependencies.\",\"You can find more detailed examples in the examples repo.\"]},\"39\":{\"h\":\"Testing\",\"t\":[\"Writing tests for AioHTTP with taskiq is as easy as writing tests for the aiohttp application. The only difference is that, if you want to use InMemoryBroker, then you need to add context for dependency injection. It's easier to call populate_context when creating a test_client fixture.\",\"import taskiq_aiohttp @pytest.fixture async def test_client( app: web.Application, ) -> AsyncGenerator[TestClient, None]: \\\"\\\"\\\" Create a test client. This function creates a TestServer and a test client for the application. Also this fixture populates context with needed variables. :param app: current application. :yield: ready to use client. \\\"\\\"\\\" loop = asyncio.get_running_loop() server = TestServer(app) client = TestClient(server, loop=loop) await client.start_server() # This is important part. # Since InMemoryBroker doesn't # run as a worker process, we have to populate # broker's context by hand. taskiq_aiohttp.populate_context( broker=broker, server=server.runner.server, app=app, loop=loop, ) yield client broker.custom_dependency_context = {} await client.close() \"]},\"40\":{\"h\":\"Taskiq + FastAPI\",\"t\":[\"FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things:\",\"It's easy to use;\",\"Cool dependency injection.\",\"In taskiq, we try to make our libraries easy to use, and We have a dependency injection too. So we have created the library \\\"taskiq-fastapi\\\" to make integration with FastAPI as smooth as possible.\",\"Let's see what we got here. In this library, we provide users with only one public function called init. It takes a broker and a string path (as in uvicorn) to the fastapi application (or factory function). People should call this function in their main broker file.\",\"from taskiq import ZeroMQBroker import taskiq_fastapi broker = ZeroMQBroker() taskiq_fastapi.init(broker, \\\"my_package.application:app\\\") \",\"There are two rules to make everything work as you expect:\",\"Add TaskiqDepends as a default value for every parameter with Request or HTTPConnection types in base dependencies. Or if you use Annotated, please annotate these types with TaskiqDepends.\",\"Use only TaskiqDepends in tasks.\",\"Cool and important note!\",\"The Request or HTTPConnection that you'll get injected in your task is not the same request or connection you have had in your handler when you were sending the task!\",\"Many fastapi dependency functions depend on fastapi.Request. We provide a mocked request to such dependencies. But taskiq cannot resolve dependencies until you explicitly specify that this parameter must be injected.\",\"As an example. If you previously had a dependency like this:\",\"from fastapi import Request from typing import Any def get_redis_pool(request: Request) -> Any: return request.app.state.redis_pool \",\"To make it resolvable in taskiq, people should mark default fastapi dependencies (such as Request and HTTPConnection) with TaskiqDepends. Like this:\",\"Also you want to call startup of your brokers somewhere.\",\"from fastapi import FastAPI from your_project.taskiq import broker app = FastAPI() @app.on_event(\\\"startup\\\") async def app_startup(): if not broker.is_worker_process: await broker.startup() @app.on_event(\\\"shutdown\\\") async def app_shutdown(): if not broker.is_worker_process: await broker.shutdown() \",\"And that's it. Now you can use your taskiq tasks with functions and classes that depend on FastAPI dependenices. You can find bigger examples in the examples repo.\"]},\"41\":{\"h\":\"Testing\",\"t\":[\"Testing is no different from general testing advice from articles about testing. But if you use InMemoryBroker in your tests, you need to provide it with a custom dependency context because it doesn't run as a worker process.\",\"Let's imagine that you have a fixture of your application. It returns a new fastapi application to use in tests.\",\" @pytest.fixture def fastapi_app() -> FastAPI: return get_app() \",\"Right after this fixture, we define another one.\",\"import taskiq_fastapi @pytest.fixture(autouse=True) def init_taskiq_deps(fastapi_app: FastAPI): # This is important part. Here we add dependency context, # this thing helps in resolving dependencies for tasks # for inmemory broker. taskiq_fastapi.populate_dependency_context(broker, fastapi_app) yield broker.custom_dependency_context = {} \",\"This fixture has autouse flag, which means it would run on every test automatically.\"]},\"42\":{\"h\":\"Introduction\"},\"43\":{\"h\":\"What is taskiq\",\"t\":[\"Taskiq is a library that helps you send and process python functions in a distributed manner. For example, you have many heavy to calculate functions you want to execute on another server. You can implement interservice communication by yourself, or you can use Taskiq to make the job done easily.\",\"The core library doesn't have much functionality. It provides two built-in brokers, CLI, basic functionality for creating distributed tasks, and abstractions to extend the taskiq. The main idea of taskiq is to make it modular and easy to extend. We have libraries for many possible use cases, but if you lack something, you can adopt taskiq to fit your needs.\"]},\"44\":{\"h\":\"Why not use existing libraries?\",\"t\":[\"We created this project because we couldn't find any project that can execute and send async functions using distributed queues like RabbitMQ.\",\"You might have seen projects built on top of asyncio that solve a similar problem, but here's a comparison table of the taskiq and other projects.\",\"Feature name\",\"Taskiq\",\"Arq\",\"AioTasks\",\"Actively maintained\",\"✅\",\"✅\",\"❌\",\"Multiple broker backends\",\"✅\",\"❌\",\"✅\",\"Multiple result backends\",\"✅\",\"❌\",\"❌\",\"Have a rich documentation\",\"✅\",\"❌\",\"❌\",\"Startup & Shutdown events\",\"✅\",\"✅\",\"❌\",\"Have ability to abort tasks\",\"❌\",\"✅\",\"❌\",\"Custom serializers\",\"✅\",\"✅\",\"❌\",\"Dependency injection\",\"✅\",\"❌\",\"❌\",\"Task pipelines\",\"✅\",\"✅\",\"❌\",\"Task schedules\",\"✅\",\"✅\",\"❌\",\"Global middlewares\",\"✅\",\"❌\",\"❌\",\"If you have a fully synchronous project, consider using celery or dramatiq instead.\"]},\"45\":{\"h\":\"Architecture overview\",\"t\":[\"Taskiq has very simple structure. On the client side all messages are sent by kickers using brokers. On the worker side all messages received by the broker and results are stored in result backends.\",\"On the sequence diagram it looks like this:\",\"Cool tip!\",\"If you use dark theme and cannot see words on diagram, try switching to light theme and back to dark.\",\"Let's discuss every component.\"]},\"46\":{\"h\":\"Broker\",\"t\":[\"Brokers are the most critical element of the taskiq. Every broker must implement the AsyncBroker abstract class from taskiq.abc.broker to make things work.\",\"AsyncBroker class has two main methods to implement:\",\"kick\",\"listen\",\"The kick method puts the message in the external system. For example, it may call the PUB command in Redis.\",\"The listen is a method with an infinite loop that reads messages from the external system and creates a task for processing messages. For example, it subscribes to the Redis channel and waits for new messages.\"]},\"47\":{\"h\":\"Kicker\",\"t\":[\"Kicker is an object that used to form a message for broker. This class isn't extendable. To form a message kicker uses labels, task name and arguments.\",\"When you call the task.kiq on a task, it generates a Kicker instance and is a shortening for the task.kicker().kiq(...). You can use kicker to change broker, add labels, or even change task_id.\",\"import asyncio from taskiq.brokers.inmemory_broker import InMemoryBroker broker = InMemoryBroker() second_broker = InMemoryBroker() @broker.task async def my_async_task() -> None: \\\"\\\"\\\"My lovely task.\\\"\\\"\\\" await asyncio.sleep(1) print(\\\"Hello\\\") async def main(): # This task was initially assigned to broker, # but this time it is going to be sent using # the second broker with additional label `delay=1`. task = await my_async_task.kicker().with_broker(second_broker).with_labels(delay=1).kiq() print(await task.get_result()) asyncio.run(main()) \"]},\"48\":{\"h\":\"Messages\",\"t\":[\"Every message has labels. You can define labels using task decorator, or you can add them using kicker.\",\"For example:\",\" @broker.task(my_label=1, label2=\\\"something\\\") async def my_async_task() -> None: \\\"\\\"\\\"My lovely task.\\\"\\\"\\\" await asyncio.sleep(1) print(\\\"Hello\\\") async def main(): await my_async_task.kiq() \",\"It's equivalent to this\",\" @broker.task async def my_async_task() -> None: \\\"\\\"\\\"My lovely task.\\\"\\\"\\\" await asyncio.sleep(1) print(\\\"Hello\\\") async def main(): await my_async_task.kicker().with_labels( my_label=1, label2=\\\"something\\\", ).kiq() \",\"Also you can assign custom task names using decorator. This is useful to be sure that task names are unique and resolved correctly. Also it may be useful to balance message routing in some brokers.\",\"for example:\",\"@broker.task(task_name=\\\"my_tasks.add_one\\\", label1=1) async def my_async_task() -> None: \\\"\\\"\\\"My lovely task.\\\"\\\"\\\" await asyncio.sleep(1) print(\\\"Hello\\\") \"]},\"49\":{\"h\":\"Result backend\",\"t\":[\"Result backend is used to store and get results of the execution. Results have type TaskiqResult from taskiq.result.\",\"Every ResultBackend must implement AsyncResultBackend from taskiq.abc.result_backend. By default, brokers use DummyResultBackend. It doesn't do anything and cannot be used in real-world scenarios. But some brokers can override it. For example InMemoryBroker by default uses InMemoryResultBackend and returns correct results.\"]},\"50\":{\"h\":\"Workers\",\"t\":[\"Taskiq has a command line interface to run workers. It's simple to get it to work.\",\"You have to provide a path to your broker. As an example, if you want to start listening to new tasks with a broker that is stored in a variable my broker in the module my_project.broker run this in your terminal:\",\"taskiq worker my_project.broker:mybroker \",\"taskiq can discover task modules to import automatically, if you add the -fsd (file system discover) option.\",\"Let's assume we have project with the following structure:\",\"test_project ├── broker.py ├── submodule │ └── tasks.py └── utils └── tasks.py \",\"You can specify all tasks modules to import manually.\",\"taskiq worker test_project.broker:broker test_project.submodule.tasks test_project.utils.tasks \",\"Or you can let taskiq find all python modules named tasks in current directory recursively.\",\"taskiq worker test_project.broker:broker -fsd \",\"If you have uvloop installed, taskiq will automatically install new policies to event loop. You can get more info about the CLI in the CLI section.\",\"Cool info\",\"By default we start two processes, if you want to change this value, please take a look at --help.\"]},\"51\":{\"h\":\"Middlewares\",\"t\":[\"Middlewares are used to modify message, or take some actions before or after task is complete.\",\"You can write your own middlewares by subclassing the taskiq.abc.middleware.TaskiqMiddleware.\",\"Every hook can be sync or async. Taskiq will execute it.\",\"For example, this is a valid middleware.\",\"import asyncio from taskiq.abc.middleware import TaskiqMiddleware from taskiq.message import TaskiqMessage class MyMiddleware(TaskiqMiddleware): async def pre_send(self, message: \\\"TaskiqMessage\\\") -> TaskiqMessage: await asyncio.sleep(1) message.labels[\\\"my_label\\\"] = \\\"my_value\\\" return message def post_send(self, message: \\\"TaskiqMessage\\\") -> None: print(f\\\"Message {message} was sent.\\\") \",\"Here are methods you can implement in the order they are executed:\",\"pre_send - executed on the client side before the message is sent. Here you can modify the message.\",\"post_send - executed right after the message was sent.\",\"pre_execute - executed on the worker side after the message was received by a worker and before its execution.\",\"on_error - executed after the task was executed if the exception was found.\",\"post_execute - executed after the message was executed.\",\"post_save - executed after the result was saved in the result backend.\",\"You can use sync or async hooks without changing anything, but adding async to the hook signature.\",\"important note\",\"If exception happens in middlewares it won't be caught. Please ensure that you have try\\\\except for all edge cases of your middleware.\",\"Middlewares can store information in message.labels for later use. For example SimpleRetryMiddleware uses labels to remember number of failed attempts.\"]},\"52\":{\"h\":\"Context\",\"t\":[\"Context is a useful class with some additional functions. You can use context to get broker that runs this task, from inside of the task.\",\"Or it has ability to control the flow of execution. Here's example of how to get the context.\",\"Also through contexts you can reject or requeue a task. It's easy as this:\",\"Calling requeue or reject stops task execution and either drops the message, or puts it back to the queue.\",\"Also, with context you'll be able to get current message that was received by the broker\\nor even instance of a broker who received a message. This may be useful for lib developers.\"]},\"53\":{\"h\":\"CLI\",\"t\":[\"Core library comes with CLI program called taskiq, which is used to run different subcommands.\",\"By default taskiq is shipped with only two commands: worker and scheduler. You can search for more taskiq plugins using pypi. Some plugins may add new commands to taskiq.\"]},\"54\":{\"h\":\"Worker\",\"t\":[\"To run worker process, you have to specify the broker you want to use and modules with defined tasks. Like this:\",\"taskiq worker mybroker:broker_var my_project.module1 my_project.module2 \"]},\"55\":{\"h\":\"Auto importing\",\"t\":[\"Enumerating all modules with tasks is not an option sometimes. That's why taskiq can auto-discover tasks in current directory recursively.\",\"We have two options for this:\",\"--tasks-pattern or -tp. It's a glob pattern of files to import. By default it is **/tasks.py which searches for all tasks.py files. May be specified multiple times.\",\"--fs-discover or -fsd. This option enables search of task files in current directory recursively, using the given pattern.\"]},\"56\":{\"h\":\"Acknowledgements\",\"t\":[\"The taskiq supports three types of acknowledgements:\",\"when_received - task is acknowledged when it is received by the worker.\",\"when_executed - task is acknowledged right after it is executed by the worker.\",\"when_saved - task is acknowledged when the result of execution is saved in the result backend.\",\"This can be configured using --ack-type parameter. For example:\",\"taskiq worker --ack-type when_executed mybroker:broker \"]},\"57\":{\"h\":\"Type casts\",\"t\":[\"One of features taskiq have is automatic type casts. For example you have a type-hinted task like this:\",\"async def task(val: int) -> int: return val + 1 \",\"If you'll call task.kiq(\\\"2\\\") you'll get 3 as the returned value. Because we parse signatures of tasks and cast incoming parameters to target types. If type-cast fails you won't throw any error. It just leave the value as is. That functionality allows you to use pydantic models, or dataclasses as the input parameters.\",\"To disable this pass the --no-parse option to the taskiq.\"]},\"58\":{\"h\":\"Hot reload\",\"t\":[\"This is annoying to restart workers every time you modify tasks. That's why taskiq supports hot-reload. Reload is unavailable by default. To enable this feature install taskiq with reload extra.\",\"To enable this option simply pass the --reload or -r option to worker taskiq CLI.\",\"Also this option supports .gitignore files. If you have such file in your directory, it won't reload worker when you modify ignored files. To disable this functionality pass --do-not-use-gitignore option.\"]},\"59\":{\"h\":\"Graceful reload\",\"t\":[\"To perform graceful reload, send SIGHUP signal to the main worker process. This action will reload all workers with new code. It's useful for deployment that requires zero downtime, but don't use orchestration tools like Kubernetes.\",\"taskiq worker my_module:broker kill -HUP
\"]},\"60\":{\"h\":\"Other parameters\",\"t\":[\"--no-configure-logging - disables default logging configuration for workers.\",\"--log-level is used to set a log level (default INFO).\",\"--max-async-tasks - maximum number of simultaneously running async tasks.\",\"--max-prefetch - number of tasks to be prefetched before execution. (Useful for systems with high message rates, but brokers should support acknowledgements).\",\"--max-threadpool-threads - number of threads for sync function exection.\",\"--no-propagate-errors - if this parameter is enabled, exceptions won't be thrown in generator dependencies.\",\"--receiver - python path to custom receiver class.\",\"--receiver_arg - custom args for receiver.\",\"--ack-type - Type of acknowledgement. This parameter is used to set when to acknowledge the task. Possible values are when_received, when_executed, when_saved. Default is when_saved.\",\"max-tasks-per-child - maximum number of tasks to be executed by a single worker process before restart.\",\"--shutdown-timeout - maximum amount of time for graceful broker's shutdown in seconds.\",\"--wait-tasks-timeout - if cannot read new messages from the broker or maximum number of tasks is reached, worker will wait for all current tasks to finish. This parameter sets the maximum amount of time to wait until shutdown.\"]},\"61\":{\"h\":\"Scheduler\",\"t\":[\"Scheduler is used to schedule tasks as described in Scheduling tasks section.\",\"To run it simply run\",\"taskiq scheduler [optional module to import]... \",\"For example\",\"taskiq scheduler my_project.broker:scheduler my_project.module1 my_project.module2 \"]},\"62\":{\"h\":\"Parameters\",\"t\":[\"Path to scheduler is the only required argument.\",\"--tasks-pattern or -tp. It's a glob pattern of files to import. By default it is **/tasks.py which searches for all tasks.py files. May be specified multiple times.\",\"--fs-discover or -fsd. This option enables search of task files in current directory recursively, using the given pattern.\",\"--no-configure-logging - use this parameter if your application configures custom logging.\",\"--log-level is used to set a log level (default INFO).\",\"--skip-first-run - skip first run of scheduler. This option skips running tasks immediately after scheduler start.\"]},\"63\":{\"h\":\"Dynamic Environments\",\"t\":[\"This article is for people who want to:\",\"Create brokers dynamically.\",\"Register tasks, and run them inside their code.\",\"Implement more complex logic.\",\"Taskiq allows you to set up broker instances throughout your application and register tasks for dynamic execution. However, tasks created this way won't be found by the taskiq worker command.\",\"To define tasks and assign them to a broker, use register_task method.\",\"import asyncio from taskiq_redis import ListQueueBroker async def main() -> None: # Here we define a broker. dyn_broker = ListQueueBroker(\\\"redis://localhost\\\") await dyn_broker.startup() # Now we register lambda as a task. dyn_task = dyn_broker.register_task( lambda x: print(\\\"A\\\", x), task_name=\\\"dyn_task\\\", ) # now we can send it. await dyn_task.kiq(x=1) await dyn_broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \",\"In this example, the task is defined using a lambda within the main function. As the lambda is not visible outside of the main function scope, the task is not executable by taskiq worker command.\",\"To overcome this issue, you can:\",\"Create a dynamic worker task within the current event loop.\",\"Implement your own broker listener with the information about all of your tasks.\",\"Here's an example of a dynamic worker task creation:\",\"import asyncio from taskiq_redis import ListQueueBroker from taskiq.api import run_receiver_task async def main() -> None: # Here we define a broker. dyn_broker = ListQueueBroker(\\\"redis://localhost\\\") await dyn_broker.startup() worker_task = asyncio.create_task(run_receiver_task(dyn_broker)) # Now we register lambda as a task. dyn_task = dyn_broker.register_task( lambda x: print(\\\"A\\\", x), task_name=\\\"dyn_task\\\", ) # Now we can send it. await dyn_task.kiq(x=1) await asyncio.sleep(2) worker_task.cancel() try: await worker_task except asyncio.CancelledError: print(\\\"Worker successfully exited.\\\") await dyn_broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \",\"In this example, a named dynamic lambda task is created and registered in a broker, similar to the previous example. The difference is the creation of a new receiver coroutine for the worker task. It will listen to the new messages and execute them. The worker task will be executed in the current event loop. After exiting the scope, the worker task will get cancelled. For illustration purposes it is cancelled explicitly.\",\"It's possible to run a scheduler in the current event loop as well:\",\"import asyncio import datetime from taskiq_redis import ListQueueBroker from taskiq import TaskiqScheduler from taskiq.api import run_receiver_task, run_scheduler_task from taskiq.schedule_sources import LabelScheduleSource async def main() -> None: # Here we define a broker. dyn_broker = ListQueueBroker(\\\"redis://localhost\\\") dyn_scheduler = TaskiqScheduler(dyn_broker, [LabelScheduleSource(dyn_broker)]) await dyn_broker.startup() # Now we register lambda as a task. dyn_task = dyn_broker.register_task( lambda x: print(\\\"A\\\", x), task_name=\\\"dyn_task\\\", # We add a schedule when to run task. schedule=[ { # Here we also can specify cron instead of time. \\\"time\\\": datetime.datetime.utcnow() + datetime.timedelta(seconds=2), \\\"args\\\": [22], }, ], ) # We create scheduler after the task declaration, # so we don't have to wait a minute before it gets to the task. # However, defining a scheduler before the task declaration is also possible. # But we have to wait till it gets to task execution for the second time. worker_task = asyncio.create_task(run_receiver_task(dyn_broker)) scheduler_task = asyncio.create_task(run_scheduler_task(dyn_scheduler)) # We still able to send the task. await dyn_task.kiq(x=1) await asyncio.sleep(10) worker_task.cancel() try: await worker_task except asyncio.CancelledError: print(\\\"Worker successfully exited.\\\") scheduler_task.cancel() try: await scheduler_task except asyncio.CancelledError: print(\\\"Scheduler successfully exited.\\\") await dyn_broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \"]},\"64\":{\"h\":\"Getting started\"},\"65\":{\"h\":\"Installation\",\"t\":[\"You can install taskiq from pypi or directly from git using pip:\",\"After installation of the core library, you need to find the broker that fits you. You can do it using PyPI search.\",\"Cool tip!\",\"We highly recommend taskiq-aio-pika or taskiq-nats as the broker and taskiq-redis as the result backend for production use.\"]},\"66\":{\"h\":\"Running tasks\",\"t\":[\"Now you need to create a python module with broker declaration. It's just a plain python file with the variable of your broker. For this particular example, I'm going to use the InMemoryBroker.\",\"Important note\",\"The InMemoryBroker doesn't send any data over the network, and you cannot use this broker in a real-world scenario, but it's still useful for local development if you do not want to set up a taskiq worker.\",\"# broker.py from taskiq import InMemoryBroker broker = InMemoryBroker() \",\"And that's it. Now let's add some tasks and the main function. You can add tasks in separate modules. You can find more information about that further. Also, we call the startup method at the beginning of the main function.\",\"# broker.py import asyncio from taskiq import InMemoryBroker broker = InMemoryBroker() @broker.task async def add_one(value: int) -> int: return value + 1 async def main() -> None: # Never forget to call startup in the beginning. await broker.startup() # Send the task to the broker. task = await add_one.kiq(1) # Wait for the result. result = await task.wait_result(timeout=2) print(f\\\"Task execution took: {result.execution_time} seconds.\\\") if not result.is_err: print(f\\\"Returned value: {result.return_value}\\\") else: print(\\\"Error found while executing task.\\\") await broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \",\"Cool warning!\",\"Calling the startup method is necessary. If you don't call it, you may get an undefined behaviour.\",\"If you run this code, you will get this in your terminal:\",\"❯ python mybroker.py Task execution took: 7.3909759521484375e-06 seconds. Returned value: 2 \",\"Ok, the code of the task execution is a little bit fancier than an ordinary function call, but it's still relatively simple to understand. To send a task to the broker, you need to call the .kiq method on the function, it returns the TaskiqTask object that can check whether the result is ready or not. Also it has methods to wait for the result to become available.\",\"You can get more information about taskiq types, CLI and internal structure in the \\\"Architecture overview\\\" section.\"]},\"67\":{\"h\":\"Distributed run\",\"t\":[\"Now let's change InMemoryBroker to some distributed broker instead. In this example we are going to use broker that works with rabbitMQ.\",\"At first we must install the taskiq-aio-pika lib.\",\"pip install taskiq-aio-pika \",\"After the installation, replace the broker we defined earlier with the broker from the taskiq-aio-pika.\",\"from taskiq_aio_pika import AioPikaBroker broker = AioPikaBroker('amqp://guest:guest@localhost:5672') \",\"Also, AioPika broker requires to call startup before using it. Add this line at the beginning of the main function.\",\"await broker.startup() \",\"That's all you need to do.\",\"Complete code\",\"# broker.py import asyncio from taskiq_aio_pika import AioPikaBroker broker = AioPikaBroker(\\\"amqp://guest:guest@localhost:5672\\\") @broker.task async def add_one(value: int) -> int: return value + 1 async def main() -> None: await broker.startup() # Send the task to the broker. task = await add_one.kiq(1) # Wait for the result. result = await task.wait_result(timeout=2) print(f\\\"Task execution took: {result.execution_time} seconds.\\\") if not result.is_err: print(f\\\"Returned value: {result.return_value}\\\") else: print(\\\"Error found while executing task.\\\") await broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \",\"Let's run the worker process. First of all, we need rabbitMQ up and running. I highly recommend you use docker.\",\"Now we need to start worker process by running taskiq cli command. You can get more info about the CLI in the CLI section.\",\"taskiq worker broker:broker \",\"After the worker is up, we can run our script as an ordinary python file and see how the worker executes tasks.\",\"$ python broker.py Task execution took: 0.0 seconds. Returned value: None \",\"But the printed result value is not correct. That happens because we didn't provide any result backend that can store results of task execution. To store results, we can use the taskiq-redis library.\",\"pip install taskiq-redis \",\"After the installation, add a new result backend to the broker.\",\"from taskiq_redis import RedisAsyncResultBackend broker = AioPikaBroker( \\\"amqp://guest:guest@localhost:5672\\\", ).with_result_backend(RedisAsyncResultBackend(\\\"redis://localhost\\\")) \",\"Now we need to start redis.\",\"Complete code\",\"# broker.py import asyncio from taskiq_aio_pika import AioPikaBroker from taskiq_redis import RedisAsyncResultBackend broker = AioPikaBroker( \\\"amqp://guest:guest@localhost:5672\\\", ).with_result_backend(RedisAsyncResultBackend(\\\"redis://localhost\\\")) @broker.task async def add_one(value: int) -> int: return value + 1 async def main() -> None: await broker.startup() # Send the task to the broker. task = await add_one.kiq(1) # Wait for the result. result = await task.wait_result(timeout=2) print(f\\\"Task execution took: {result.execution_time} seconds.\\\") if not result.is_err: print(f\\\"Returned value: {result.return_value}\\\") else: print(\\\"Error found while executing task.\\\") await broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \",\"Let's run taskiq once again. The command is the same.\",\"taskiq worker broker:broker \",\"Now, if we run this file with python, we can get the correct results with a valid execution time.\",\"$ python broker.py Task execution took: 1.0013580322265625e-05 seconds. Returned value: 2 \",\"Continue reading to get more information about taskiq internals.\"]},\"68\":{\"h\":\"Timeouts\",\"t\":[\"If you want to restrict amount of time you want to run task, just add timeout label to the task.\",\"You can do it either with decorator or when calling the task.\",\"Cool alert\",\"We use run_in_executor method to run sync functions. Timeouts will raise a TimeoutException, but\\nsynchronous function may not stop from execution. This is a constraint of python.\"]},\"69\":{\"h\":\"Taskiq message format\",\"t\":[\"Taskiq doesn't force you to use any specific message format. We define default message format, but you can use any format you want.\",\"The default message format is:\",\"But this can be easily changed by creating your own implementation of the TaskiqFormatter class or TaskiqSerializer class.\"]},\"70\":{\"h\":\"Serializers\",\"t\":[\"Serializers define the format of the message but not the structure. For example, if you want to use msgpack or ORJson to serialize your message, you should update the serializer of your broker.\",\"Be default, Taskiq uses JSON serializer. But we also have some implementations of other serializers:\",\"ORJSONSerializer - faster JSON implementation. Also, it supports datetime and UUID serialization.\",\"MSGPackSerializer - MsgPack format serializer. It might be useful to send less data over the network.\",\"CBORSerializer - CBOR format serializer. It is also has a smaller size than JSON.\",\"To define your own serializer, you have to subclass the TaskiqSerializer class and implement dumpb and loadb methods. You can take a look at the existing implementations from the taskiq.serializers module.\",\"To install taskiq with libraries for non-JSON serializers, you should install taskiq with extras.\"]},\"71\":{\"h\":\"Formatters\",\"t\":[\"Formatters define the format of the message. It might be useful if you'd like to send a task to a celery worker for a different project. You can do it in seriazier as well, but formatters give you correct type hints.\",\"By default we use a formatter that dumps the message to dict and serializes it using serializer. But you can define your own formatter to send a message in any format you want. To define a new formatter, you have to subclass the TaskiqFormatter class and implement dumps and loads methods.\\nAs an example, you can take a look at the JSONFormatter from taskiq.formatters implementation.\"]},\"72\":{\"h\":\"Scheduling tasks\",\"t\":[\"Sometimes you may want to execute some tasks according to some schedule. For example, you maybe want to call a function every day at 2 pm.\",\"That's not a problem if you use taskiq. We have primitives that can help you to solve your problems.\",\"Let's imagine we have a module, as shown below, and we want to execute the heavy_task every 5 minutes. What should we do?\",\"from taskiq_aio_pika import AioPikaBroker broker = AioPikaBroker(\\\"amqp://guest:guest@localhost:5672/\\\") @broker.task async def heavy_task(value: int) -> int: return value + 1 \",\"Of course we can implement loop like this:\",\" while True: await heavy_task.kiq(1) await asyncio.sleep(timedelta(minutes=5).total_seconds) \",\"But if you have many schedules it may be a little painful to implement. So let me introduce you the TaskiqScheduler. Let's add scheduler to our module.\",\"from taskiq_aio_pika import AioPikaBroker from taskiq.schedule_sources import LabelScheduleSource from taskiq import TaskiqScheduler broker = AioPikaBroker(\\\"amqp://guest:guest@localhost:5672/\\\") scheduler = TaskiqScheduler( broker=broker, sources=[LabelScheduleSource(broker)], ) @broker.task(schedule=[{\\\"cron\\\": \\\"*/5 * * * *\\\", \\\"args\\\": [1]}]) async def heavy_task(value: int) -> int: return value + 1 \",\"That's it.\",\"Now we need to start our scheduler with the taskiq scheduler command. Like this:\",\"taskiq scheduler module:scheduler \",\"Be careful!\",\"Please always run only one instance of the scheduler! If you run more than one scheduler at a time, please be careful since it may execute one task N times, where N is the number of running scheduler instances.\",\"This command will import the scheduler you defined and start sending tasks to your broker.\",\"Cool tip!\",\"The scheduler doesn't execute tasks. It only sends them.\",\"You can check list of available schedule sources in the Available schedule sources section.\"]},\"73\":{\"h\":\"Multiple sources\",\"t\":[\"Sometimes you may want to use multiple sources to assemble a schedule for tasks. The TaskiqScheduler can do so. But it's obvious how to merge schedules from different sources.\",\"That's why you can pass a custom merge function to resolve all possible conflicts or if you want to have more complex logic aside from sources. For example, filter out some task schedules.\",\"Currently we have only two default functions to merge tasks. You can find them in the taskiq.scheduler.merge_functions module.\",\"preserve_all - simply adds new schedules to the old ones.\",\"only_unique - adds schedule only if it was not added by previous sources.\",\"Every time we update schedule it gets task from the source and executes this function to merge them together.\"]},\"74\":{\"h\":\"Working with timezones\",\"t\":[\"Sometimes, you want to be specific in terms of time zones. We have you covered. Our ScheduledTask model has fields for that. Use these fields or not, it's up to the specific schedule source.\",\"Taskiq scheduler assumes that if time has no specific timezone, it's in UTC. Sometimes, this behavior might not be convinient for developers.\",\"For the time field of ScheduledTask we use timezone information from datetime to check if a task should run.\",\"For cron tasks, we have an additional field called cron_offset that can be used to specify an offset of the cron task. An offset can be a string like Europe/Berlin or an instance of the timedelta class.\"]},\"75\":{\"h\":\"Skipping first run\",\"t\":[\"By default, when you start the scheduler it will get all tasks from the schedule source and check whether they should have been executed in this minute. If tasks should have been executed, they will be executed.\",\"This behaviour might be not convinient for some developers. For example, if you have a task that should be executed on every minute, it will be executed once you start the scheduler, even if it was executed a few seconds ago.\",\"To avoid this behaviour, you can pass the --skip-first-run flag to the taskiq scheduler command. In this case, the scheduler will wait until the start of the next minute and then start executing tasks.\",\"taskiq scheduler module:scheduler --skip-first-run \"]},\"76\":{\"h\":\"Dynamic scheduling\",\"t\":[\"Sometimes you may want to add new schedules to the scheduler on the fly. For example, you may want to run a specific function in several minutes from now. You can easily do it with ScheduleSources that support dynamic scheduling. Currently we suggest to use the RedisScheduleSource for that purpose. List of schedulers with dynamic task addition will be extended in the future. For list of available schedule sources see Available schedule sources.\",\"Here's an example of using redis schedule source:\",\"from taskiq_redis import ListQueueBroker, RedisScheduleSource from taskiq import TaskiqScheduler # Here's the broker that is going to execute tasks broker = ListQueueBroker(\\\"redis://localhost:6379/0\\\") # Here's the source that is used to store scheduled tasks redis_source = RedisScheduleSource(\\\"redis://localhost:6379/0\\\") # And here's the scheduler that is used to query scheduled sources scheduler = TaskiqScheduler(broker, sources=[redis_source]) @broker.task async def my_task(arg1: int, arg2: str) -> None: \\\"\\\"\\\"Example task.\\\"\\\"\\\" print(\\\"Hello from my_task!\\\", arg1, arg2) # noqa: T201 \",\"Now we can use this source to add new schedules in runtime. Here's an example:\",\" await redis_source.startup() await my_task.schedule_by_time( redis_source, # It's better to use UTC time, or add tzinfo to datetime. datetime.datetime.utcnow() + datetime.timedelta(minutes=1, seconds=5), # You can pass args and kwargs here as usual 11, arg2=\\\"arg2\\\", ) \",\"Or if you want to use cron schedules instead, just use schedule_by_cron method.\",\" await my_task.schedule_by_cron( redis_source, \\\"*/5 * * * *\\\", 11, arg2=\\\"arg2\\\", ) \",\"If you want to pass additional labels, you can call these methods on the Kicker instance.\",\" schedule = ( await my_task.kicker() .with_labels(label1=\\\"value\\\") .schedule_by_time( redis_source, datetime.datetime.utcnow() + datetime.timedelta(seconds=10), 11, arg2=\\\"arg2\\\", ) ) \",\"Cool warning!\",\"The with_broker method won't do anything in this case, since we have a broker assigned to each scheduler.\",\"Each of these methods return you an instance of the CreatedSchedule class. This object has unique schedule ID and some helper methods. For example, you can use the unschedule method to remove the schedule from the source.\",\" schedule = await my_task.schedule_by_time( redis_source, datetime.datetime.utcnow() + datetime.timedelta(minutes=1, seconds=5), 11, arg2=\\\"arg2\\\", ) await schedule.unschedule() \",\"Or it can be done manually, by calling delete_schedule on schedule source providing it whith schedule_id.\",\" await redis_source.delete_schedule(schedule.schedule_id) \",\"Also, you can get schedule_id from the tasks's labels.\",\"@broker.task async def my_task(context: Context = TaskiqDepends()) -> None: schedule_id = context.message.labels.get(\\\"schedule_id\\\") print(\\\"Schedule ID:\\\", schedule_id) \"]},\"77\":{\"h\":\"State and Dependencies\"},\"78\":{\"h\":\"State\",\"t\":[\"The TaskiqState is a global variable where you can keep the variables you want to use later. For example, you want to open a database connection pool at a broker's startup.\",\"This can be achieved by adding event handlers.\",\"You can use one of these events:\",\"WORKER_STARTUP\",\"CLIENT_STARTUP\",\"WORKER_SHUTDOWN\",\"CLIENT_SHUTDOWN\",\"Worker events are called when you start listening to the broker messages using taskiq. Client events are called when you call the startup method of your broker from your code.\",\"This is an example of code using event handlers:\",\"Cool tip!\",\"If you want to add handlers programmatically, you can use the broker.add_event_handler function.\",\"As you can see in this example, this worker will initialize the Redis pool at the startup. You can access the state from the context.\"]},\"79\":{\"h\":\"Dependencies\",\"t\":[\"Using context directly is nice, but this way you won't get code-completion.\",\"That's why we suggest you try TaskiqDependencies. The implementation is very similar to FastApi's dependencies. You can use classes, functions, and generators as dependencies.\",\"We use the taskiq-dependencies package to provide autocompetion. You can easily integrate it in your own project.\"]},\"80\":{\"h\":\"How dependencies are useful\",\"t\":[\"You can use dependencies for better autocompletion and reduce the amount of code you write. Since the state is generic, we cannot guess the types of the state fields. Dependencies can be annotated with type hints and therefore provide better auto-completion.\",\"Let's assume that you've stored a Redis connection pool in the state as in the example above.\",\"@broker.on_event(TaskiqEvents.WORKER_STARTUP) async def startup(state: TaskiqState) -> None: # Here we store connection pool on startup for later use. state.redis = ConnectionPool.from_url(\\\"redis://localhost/1\\\") \",\"You can access this variable by using the current execution context directly, like this:\",\"If you hit the TAB button after the context.state. expression, your IDE won't give you any auto-completion. But we can create a dependency function to add auto-completion.\",\"Now, this dependency injection will be autocompleted. But, of course, state fields cannot be autocompleted, even in dependencies. But this way, you won't make any typos while writing tasks.\"]},\"81\":{\"h\":\"How do dependencies work\",\"t\":[\"We build a graph of dependencies on startup. If the parameter of the function has the default value of TaskiqDepends this parameter will be treated as a dependency.\",\"Dependencies can also depend on something. Also dependencies are optimized to not evaluate things many times.\",\"For example:\",\"In this code, the dependency common_dep is going to be evaluated only once and the dep1 and the dep2 are going to receive the same value. You can control this behavior by using the use_cache=False parameter to you dependency. This parameter will force the dependency to reevaluate all it's subdependencies.\",\"In this example we cannot predict the result. Since the dep2 doesn't use cache for the common_dep function.\",\"The graph for cached dependencies looks like this:\",\"The dependencies graph for my_task where dep2 doesn't use cached value for common_dep looks like this:\"]},\"82\":{\"h\":\"Class as a dependency\",\"t\":[\"You can use classes as dependencies, and they can also use other dependencies too.\",\"Let's see an example:\",\"As you can see, the dependency for my_task function is declared with TaskiqDependency(). It's because you can omit the class if it's declared in type-hint for the parameter. This feature doesn't work with dependency functions, it's only for classes.\",\"You can pass dependencies for classes in the constructor.\"]},\"83\":{\"h\":\"Generator dependencies\",\"t\":[\"Generator dependencies are used to perform startup before task execution and teardown after the task execution.\",\"In this example, we can do something at startup before the execution and at shutdown after the task is completed.\",\"If you want to do something asynchronously, convert this function to an asynchronous generator. Like this:\"]},\"84\":{\"h\":\"Exception handling\",\"t\":[\"Generator dependencies can handle exceptions that happen in tasks. This feature is handy if you want your system to be more atomic.\",\"For example, if you open a database transaction in your dependency and want to commit it only if the function you execute is completed successfully.\",\"If you don't want to propagate exceptions in dependencies, you can add --no-propagate-errors option to worker command.\",\"taskiq worker my_file:broker --no-propagate-errors \",\"In this case, no exception will ever going to be propagated to any dependency.\"]},\"85\":{\"h\":\"Generics\",\"t\":[\"Taskiq supports generic dependencies. You can create a generic class that is generic over another class and takskiq will be able to resolve generics based on type annotations.\"]},\"86\":{\"h\":\"Default dependencies\",\"t\":[\"By default taskiq has only two dependencies:\",\"Context from taskiq.context.Context\",\"TaskiqState from taskiq.state.TaskiqState\"]},\"87\":{\"h\":\"Adding first-level dependencies\",\"t\":[\"You can expand default list of available dependencies for you application. Taskiq have an ability to add new first-level dependencies using brokers.\",\"The AsyncBroker interface has a function called add_dependency_context and you can add\\nmore default dependencies to the taskiq. This may be useful for libraries if you want to\\nadd new dependencies to users.\"]},\"88\":{\"h\":\"Testing with taskiq\",\"t\":[\"Every time we write programs, we want them to be correct. To achieve this, we use tests. Taskiq allows you to write tests easily as if tasks were normal functions.\",\"Let's dive into examples.\"]},\"89\":{\"h\":\"Preparations\"},\"90\":{\"h\":\"Environment setup\",\"t\":[\"For testing you maybe don't want to use actual distributed broker. But still you want to validate your logic. Since python is an interpreted language, you can easily replace you broker with another one if the expression is correct.\",\"We can set an environment variable, that indicates that currently we're running in testing environment.\",\"Or we can even tell pytest to set this environment for us, just before executing tests using pytest-env plugin.\"]},\"91\":{\"h\":\"Async tests\",\"t\":[\"Since taskiq is fully async, we suggest using anyio to run async functions in pytest. Install the lib and place this fixture somewhere in your root conftest.py file.\",\"@pytest.fixture def anyio_backend(): return 'asyncio' \",\"After the preparations are done, we need to modify the broker's file in your project.\",\"import os from taskiq import AsyncBroker, InMemoryBroker, ZeroMQBroker env = os.environ.get(\\\"ENVIRONMENT\\\") broker: AsyncBroker = ZeroMQBroker() if env and env == \\\"pytest\\\": broker = InMemoryBroker() \",\"As you can see, we added an if statement. If the expression is true, we replace our broker with an imemory broker. The main point here is to not have an actual connection during testing. It's useful because inmemory broker has the same interface as a real broker, but it doesn't send tasks actually.\"]},\"92\":{\"h\":\"Testing tasks\",\"t\":[\"Let's define a task.\",\"from your_project.taskiq import broker @broker.task async def parse_int(val: str) -> int: return int(val) \",\"This simple task may be defined anywhere in your project. If you want to test it, just import it and call as a normal function.\",\"import pytest from your_project.tasks import parse_int @pytest.mark.anyio async def test_task(): assert await parse_int(\\\"11\\\") == 11 \",\"And that's it. Test should pass.\",\"What if you want to test a function that uses task. Let's define such function.\",\"from your_project.taskiq import broker @broker.task async def parse_int(val: str) -> int: return int(val) async def parse_and_add_one(val: str) -> int: task = await parse_int.kiq(val) result = await task.wait_result() return result.return_value + 1 \",\"And since we replaced our broker with InMemoryBroker, we can just call it. It would work as you expect and tests should pass.\",\"@pytest.mark.anyio async def test_add_one(): assert await parse_and_add_one(\\\"11\\\") == 12 \"]},\"93\":{\"h\":\"Dependency injection\",\"t\":[\"If you use dependencies in your tasks, you may think that this can become a problem. But it's not. Here's what we came up with. We added a method called add_dependency_context to the broker. It sets base dependencies for dependency resolution. You can use it for tests.\",\"Let's add a task that depends on Path. I guess this example is not meant to be used in production code bases, but it's suitable for illustration purposes.\",\"To test the task itself, it's not different to the example without dependencies, but we jsut need to pass all expected dependencies manually as function's arguments or key-word arguments.\",\"import pytest from your_project.taskiq import broker from pathlib import Path @pytest.mark.anyio async def test_modify_path(): modified = await modify_path(Path.cwd()) assert str(modified).endswith(\\\"taskiq.py\\\") \",\"But what if we want to test task execution? Well, you don't need to provide dependencies manually, you must mutate dependency_context before calling a task. We suggest to do it in fixtures.\",\"import pytest from your_project.taskiq import broker from pathlib import Path # We use autouse, so this fixture # is called automatically before all tests. @pytest.fixture(scope=\\\"function\\\", autouse=True) async def init_taskiq_dependencies(): # Here we use Path, but you can use other # pytest fixtures here. E.G. FastAPI app. broker.add_dependency_context({Path: Path.cwd()}) yield # After the test we clear all custom dependencies. broker.custom_dependency_context = {} \",\"This fixture will update dependency context for our broker before every test. Now tasks with dependencies can be used. Let's try it out.\",\"@pytest.mark.anyio async def test_modify_path(): task = await modify_path.kiq() result = await task.wait_result() assert str(result.return_value).endswith(\\\"taskiq.py\\\") \",\"This should pass. And that's it for now.\"]},\"94\":{\"h\":\"\",\"t\":[\"404 Not Found\"]}},\"dirtCount\":0,\"index\":[[\"5\",{\"1\":{\"72\":2,\"76\":1}}],[\"5672\",{\"1\":{\"67\":4,\"72\":2}}],[\"7\",{\"1\":{\"66\":1}}],[\"x=1\",{\"1\":{\"63\":3}}],[\"x\",{\"1\":{\"63\":6}}],[\"xdist\",{\"1\":{\"6\":1}}],[\"\",{\"1\":{\"11\":1,\"27\":5,\"28\":1,\"30\":1,\"32\":5,\"33\":7,\"36\":1,\"39\":1,\"40\":1,\"41\":1,\"47\":1,\"48\":3,\"51\":2,\"57\":1,\"63\":3,\"66\":2,\"67\":4,\"72\":2,\"76\":2,\"80\":1,\"92\":3}}],[\"12\",{\"1\":{\"92\":1}}],[\"11\",{\"1\":{\"76\":4,\"92\":3}}],[\"10\",{\"1\":{\"63\":1}}],[\"1\",{\"1\":{\"10\":1,\"47\":1,\"48\":3,\"51\":1,\"57\":1,\"66\":2,\"67\":5,\"72\":4,\"80\":1,\"92\":1}}],[\"zones\",{\"1\":{\"74\":1}}],[\"zero\",{\"1\":{\"59\":1}}],[\"zeromqbroker\",{\"0\":{\"10\":1},\"1\":{\"17\":2,\"18\":2,\"40\":2,\"91\":2}}],[\"zmq\",{\"1\":{\"10\":3}}],[\"22\",{\"1\":{\"63\":1}}],[\"2\",{\"1\":{\"6\":1,\"57\":1,\"63\":1,\"66\":1,\"67\":1,\"72\":1}}],[\"g\",{\"1\":{\"93\":1}}],[\"guess\",{\"1\":{\"80\":1,\"93\":1}}],[\"guest\",{\"1\":{\"67\":8,\"72\":4}}],[\"guide\",{\"0\":{\"3\":1},\"1\":{\"3\":1,\"4\":1}}],[\"graph\",{\"1\":{\"81\":3}}],[\"graphs\",{\"1\":{\"37\":1}}],[\"graceful\",{\"0\":{\"59\":1},\"1\":{\"59\":1,\"60\":1}}],[\"give\",{\"1\":{\"71\":1,\"80\":1}}],[\"given\",{\"1\":{\"55\":1,\"62\":1}}],[\"gitignore\",{\"1\":{\"58\":2}}],[\"git\",{\"1\":{\"5\":1,\"65\":1}}],[\"glob\",{\"1\":{\"55\":1,\"62\":1}}],[\"global\",{\"1\":{\"44\":1,\"78\":1}}],[\"generics\",{\"0\":{\"85\":1},\"1\":{\"85\":1}}],[\"generic\",{\"1\":{\"80\":1,\"85\":3}}],[\"generators\",{\"1\":{\"79\":1}}],[\"generator\",{\"0\":{\"83\":1},\"1\":{\"60\":1,\"83\":2,\"84\":1}}],[\"generates\",{\"1\":{\"47\":1}}],[\"general\",{\"1\":{\"41\":1}}],[\"getting\",{\"0\":{\"64\":1}}],[\"gets\",{\"1\":{\"63\":2,\"73\":1}}],[\"get\",{\"1\":{\"27\":1,\"32\":2,\"33\":2,\"39\":1,\"40\":2,\"41\":1,\"47\":1,\"49\":1,\"50\":2,\"52\":3,\"57\":1,\"63\":1,\"66\":3,\"67\":3,\"75\":1,\"76\":2,\"79\":1,\"91\":1}}],[\"gained\",{\"1\":{\"40\":1}}],[\"got\",{\"1\":{\"40\":1}}],[\"going\",{\"1\":{\"36\":2,\"47\":1,\"66\":1,\"67\":1,\"76\":1,\"81\":2,\"84\":1}}],[\"good\",{\"1\":{\"29\":1,\"32\":1}}],[\"hup\",{\"1\":{\"59\":1}}],[\"hit\",{\"1\":{\"80\":1}}],[\"hint\",{\"1\":{\"82\":1}}],[\"hints\",{\"1\":{\"71\":1,\"80\":1}}],[\"hinted\",{\"1\":{\"57\":1}}],[\"high\",{\"1\":{\"60\":1}}],[\"higher\",{\"1\":{\"29\":1}}],[\"highly\",{\"1\":{\"5\":1,\"38\":1,\"40\":1,\"65\":1,\"67\":1}}],[\"httpconnection\",{\"1\":{\"40\":3}}],[\"h\",{\"1\":{\"30\":2}}],[\"hello\",{\"1\":{\"47\":1,\"48\":3,\"76\":1}}],[\"helps\",{\"1\":{\"41\":1,\"43\":1}}],[\"helpful\",{\"1\":{\"31\":1}}],[\"help=\",{\"1\":{\"30\":1}}],[\"help\",{\"1\":{\"30\":4,\"50\":1,\"72\":1}}],[\"helper\",{\"1\":{\"27\":2,\"33\":3,\"76\":1}}],[\"heavy\",{\"1\":{\"43\":1,\"72\":4}}],[\"here\",{\"1\":{\"24\":1,\"27\":3,\"28\":1,\"32\":3,\"33\":2,\"36\":2,\"38\":1,\"40\":1,\"41\":1,\"44\":1,\"51\":2,\"52\":1,\"63\":5,\"76\":6,\"80\":1,\"91\":1,\"93\":3}}],[\"hot\",{\"0\":{\"58\":1},\"1\":{\"58\":1}}],[\"however\",{\"1\":{\"63\":2}}],[\"how\",{\"0\":{\"80\":1,\"81\":1},\"1\":{\"23\":1,\"35\":1,\"36\":1,\"52\":1,\"67\":1,\"73\":1}}],[\"hooks\",{\"1\":{\"31\":1,\"51\":1}}],[\"hook\",{\"1\":{\"5\":1,\"51\":2}}],[\"had\",{\"1\":{\"40\":2}}],[\"happens\",{\"1\":{\"51\":1,\"67\":1}}],[\"happen\",{\"1\":{\"37\":1,\"84\":1}}],[\"handling\",{\"0\":{\"84\":1}}],[\"handle\",{\"1\":{\"36\":1,\"38\":1,\"84\":1}}],[\"handlers\",{\"1\":{\"37\":1,\"38\":1,\"78\":3}}],[\"handler\",{\"1\":{\"34\":1,\"40\":1,\"78\":1}}],[\"hand\",{\"1\":{\"39\":1}}],[\"handing\",{\"1\":{\"36\":1}}],[\"handy\",{\"1\":{\"27\":1,\"84\":1}}],[\"have\",{\"1\":{\"3\":2,\"4\":1,\"5\":1,\"11\":1,\"18\":1,\"22\":1,\"27\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":3,\"33\":3,\"35\":1,\"39\":1,\"40\":3,\"41\":1,\"43\":3,\"44\":4,\"49\":1,\"50\":3,\"51\":1,\"54\":1,\"55\":1,\"57\":2,\"58\":1,\"63\":2,\"70\":2,\"71\":1,\"72\":3,\"73\":2,\"74\":2,\"75\":3,\"76\":1,\"87\":1,\"91\":1}}],[\"has\",{\"1\":{\"1\":1,\"16\":1,\"29\":2,\"38\":1,\"40\":1,\"41\":1,\"45\":1,\"46\":1,\"48\":1,\"50\":1,\"52\":1,\"66\":1,\"70\":1,\"74\":2,\"76\":1,\"81\":1,\"86\":1,\"87\":1,\"91\":1}}],[\"url\",{\"1\":{\"80\":1}}],[\"uuid\",{\"1\":{\"70\":1}}],[\"uvloop\",{\"1\":{\"50\":1}}],[\"uvicorn\",{\"1\":{\"40\":1}}],[\"utc\",{\"1\":{\"74\":1,\"76\":1}}],[\"utcnow\",{\"1\":{\"63\":1,\"76\":3}}],[\"utils\",{\"1\":{\"50\":2}}],[\"utf\",{\"1\":{\"27\":1}}],[\"unschedule\",{\"1\":{\"76\":2}}],[\"understand\",{\"1\":{\"66\":1}}],[\"undefined\",{\"1\":{\"10\":1,\"66\":1}}],[\"unavailable\",{\"1\":{\"58\":1}}],[\"unique\",{\"1\":{\"48\":1,\"73\":1,\"76\":1}}],[\"union\",{\"1\":{\"27\":2}}],[\"until\",{\"1\":{\"40\":1,\"60\":1,\"75\":1}}],[\"unless\",{\"1\":{\"32\":1}}],[\"usual\",{\"1\":{\"76\":1}}],[\"us\",{\"1\":{\"38\":1,\"90\":1}}],[\"usage\",{\"1\":{\"30\":1}}],[\"using\",{\"1\":{\"4\":3,\"5\":1,\"6\":1,\"11\":1,\"24\":1,\"35\":2,\"38\":1,\"44\":2,\"45\":1,\"47\":1,\"48\":3,\"53\":1,\"55\":1,\"56\":1,\"62\":1,\"63\":1,\"65\":2,\"67\":1,\"71\":1,\"76\":1,\"78\":2,\"79\":1,\"80\":1,\"81\":1,\"87\":1,\"90\":1,\"91\":1}}],[\"useful\",{\"0\":{\"80\":1},\"1\":{\"48\":2,\"52\":2,\"59\":1,\"60\":1,\"66\":1,\"70\":1,\"71\":1,\"87\":1,\"91\":1}}],[\"users\",{\"1\":{\"40\":1,\"87\":1}}],[\"user\",{\"1\":{\"11\":1}}],[\"used\",{\"1\":{\"11\":1,\"19\":1,\"20\":1,\"22\":1,\"32\":1,\"33\":1,\"47\":1,\"49\":2,\"51\":1,\"53\":1,\"60\":2,\"61\":1,\"62\":1,\"74\":1,\"76\":2,\"83\":1,\"93\":2}}],[\"use\",{\"0\":{\"44\":1},\"1\":{\"4\":1,\"6\":1,\"11\":2,\"23\":2,\"24\":3,\"27\":1,\"30\":3,\"31\":1,\"34\":1,\"35\":5,\"36\":3,\"38\":2,\"39\":2,\"40\":5,\"41\":2,\"43\":2,\"45\":1,\"47\":1,\"49\":1,\"51\":2,\"52\":1,\"54\":1,\"57\":1,\"58\":1,\"59\":1,\"62\":1,\"63\":1,\"65\":1,\"66\":2,\"67\":3,\"68\":1,\"69\":2,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":2,\"76\":6,\"78\":3,\"79\":2,\"80\":2,\"81\":3,\"82\":2,\"88\":1,\"90\":1,\"93\":5}}],[\"uses\",{\"1\":{\"1\":1,\"9\":2,\"10\":1,\"23\":1,\"31\":1,\"47\":1,\"49\":1,\"51\":1,\"70\":1,\"92\":1}}],[\"update\",{\"1\":{\"70\":1,\"73\":1,\"93\":1}}],[\"up\",{\"0\":{\"4\":1},\"1\":{\"36\":1,\"63\":1,\"66\":1,\"67\":2,\"74\":1,\"93\":1}}],[\"e\",{\"1\":{\"93\":1}}],[\"evaluated\",{\"1\":{\"81\":1}}],[\"evaluate\",{\"1\":{\"81\":1}}],[\"ever\",{\"1\":{\"84\":1}}],[\"everything\",{\"1\":{\"36\":1,\"40\":1}}],[\"every\",{\"1\":{\"31\":1,\"40\":1,\"41\":1,\"45\":1,\"46\":1,\"48\":1,\"49\":1,\"51\":1,\"58\":1,\"72\":2,\"73\":1,\"75\":1,\"88\":1,\"93\":1}}],[\"events\",{\"1\":{\"34\":1,\"35\":1,\"36\":1,\"44\":1,\"78\":3}}],[\"event\",{\"1\":{\"16\":1,\"37\":2,\"40\":2,\"50\":1,\"63\":3,\"78\":3,\"80\":1}}],[\"even\",{\"1\":{\"5\":1,\"37\":1,\"47\":1,\"52\":1,\"75\":1,\"80\":1,\"90\":1}}],[\"europe\",{\"1\":{\"74\":1}}],[\"else\",{\"1\":{\"66\":1,\"67\":2}}],[\"element\",{\"1\":{\"46\":1}}],[\"err\",{\"1\":{\"66\":1,\"67\":2}}],[\"error=true\",{\"1\":{\"17\":1}}],[\"error\",{\"1\":{\"17\":2,\"51\":1,\"57\":1,\"66\":1,\"67\":2}}],[\"errors\",{\"1\":{\"17\":1,\"60\":1,\"84\":2}}],[\"edge\",{\"1\":{\"51\":1}}],[\"equivalent\",{\"1\":{\"48\":1}}],[\"earlier\",{\"1\":{\"67\":1}}],[\"easier\",{\"1\":{\"39\":1}}],[\"easily\",{\"1\":{\"30\":1,\"36\":2,\"43\":1,\"69\":1,\"76\":1,\"79\":1,\"88\":1,\"90\":1}}],[\"easy\",{\"1\":{\"30\":1,\"34\":1,\"39\":1,\"40\":2,\"43\":1,\"52\":1}}],[\"each\",{\"1\":{\"12\":1,\"35\":2,\"76\":2}}],[\"except\",{\"1\":{\"51\":1,\"63\":3}}],[\"exceptions\",{\"1\":{\"60\":1,\"84\":2}}],[\"exception\",{\"0\":{\"84\":1},\"1\":{\"17\":2,\"51\":2,\"84\":1}}],[\"existing\",{\"0\":{\"44\":1},\"1\":{\"70\":1}}],[\"exists\",{\"1\":{\"32\":1,\"38\":1}}],[\"exiting\",{\"1\":{\"63\":1}}],[\"exited\",{\"1\":{\"63\":3}}],[\"exit\",{\"1\":{\"30\":1}}],[\"expand\",{\"1\":{\"87\":1}}],[\"expression\",{\"1\":{\"80\":1,\"90\":1,\"91\":1}}],[\"experience\",{\"1\":{\"37\":1}}],[\"expected\",{\"1\":{\"93\":1}}],[\"expect\",{\"1\":{\"31\":1,\"40\":1,\"92\":1}}],[\"explained\",{\"1\":{\"24\":1}}],[\"explicitly\",{\"1\":{\"11\":1,\"32\":1,\"40\":1,\"63\":1}}],[\"exection\",{\"1\":{\"60\":1}}],[\"exec\",{\"1\":{\"30\":2}}],[\"executor\",{\"1\":{\"68\":1}}],[\"executing\",{\"1\":{\"66\":1,\"67\":2,\"75\":1,\"90\":1}}],[\"execution\",{\"1\":{\"17\":1,\"19\":2,\"29\":1,\"31\":2,\"32\":2,\"33\":1,\"49\":1,\"51\":1,\"52\":2,\"56\":1,\"60\":1,\"63\":2,\"66\":4,\"67\":8,\"68\":1,\"80\":1,\"83\":3,\"93\":1}}],[\"executable\",{\"1\":{\"63\":1}}],[\"executes\",{\"1\":{\"67\":1,\"73\":1}}],[\"executed\",{\"1\":{\"9\":1,\"10\":1,\"29\":1,\"51\":9,\"56\":3,\"60\":2,\"63\":1,\"75\":6}}],[\"execute\",{\"1\":{\"9\":1,\"16\":1,\"31\":1,\"33\":2,\"43\":1,\"44\":1,\"51\":3,\"63\":1,\"72\":4,\"76\":1,\"84\":1}}],[\"examples\",{\"1\":{\"38\":2,\"40\":2,\"88\":1}}],[\"example\",{\"1\":{\"28\":1,\"31\":1,\"32\":1,\"33\":1,\"38\":1,\"40\":1,\"43\":1,\"46\":2,\"48\":2,\"49\":1,\"50\":1,\"51\":2,\"52\":1,\"56\":1,\"57\":1,\"61\":1,\"63\":4,\"66\":1,\"67\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"75\":1,\"76\":5,\"78\":3,\"80\":1,\"81\":2,\"82\":1,\"83\":1,\"84\":1,\"93\":2}}],[\"external\",{\"1\":{\"46\":2}}],[\"extended\",{\"1\":{\"76\":1}}],[\"extend\",{\"1\":{\"25\":1,\"43\":2}}],[\"extendable\",{\"1\":{\"25\":1,\"47\":1}}],[\"extending\",{\"0\":{\"25\":1}}],[\"extras\",{\"1\":{\"18\":1,\"70\":1}}],[\"extra\",{\"1\":{\"10\":1,\"58\":1}}],[\"endswith\",{\"1\":{\"93\":2}}],[\"environ\",{\"1\":{\"91\":1}}],[\"environments\",{\"0\":{\"63\":1},\"1\":{\"4\":1,\"6\":1}}],[\"environment\",{\"0\":{\"4\":1,\"90\":1},\"1\":{\"90\":3,\"91\":1}}],[\"env\",{\"1\":{\"90\":1,\"91\":3}}],[\"enumerating\",{\"1\":{\"55\":1}}],[\"ensure\",{\"1\":{\"51\":1}}],[\"entry\",{\"1\":{\"30\":2}}],[\"entrypoint\",{\"1\":{\"30\":1}}],[\"enabled\",{\"1\":{\"60\":1}}],[\"enables\",{\"1\":{\"17\":1,\"55\":1,\"62\":1}}],[\"enable\",{\"1\":{\"17\":1,\"18\":1,\"24\":1,\"36\":1,\"58\":2}}],[\"encounter\",{\"1\":{\"10\":1}}],[\"either\",{\"1\":{\"3\":1,\"24\":2,\"28\":1,\"31\":1,\"52\":1,\"68\":1}}],[\"ecosystem\",{\"1\":{\"1\":1}}],[\"r\",{\"1\":{\"58\":1}}],[\"root\",{\"1\":{\"91\":1}}],[\"routing\",{\"1\":{\"48\":1}}],[\"robust\",{\"1\":{\"37\":1}}],[\"rich\",{\"1\":{\"44\":1}}],[\"right\",{\"1\":{\"41\":1,\"51\":1,\"56\":1}}],[\"rates\",{\"1\":{\"60\":1}}],[\"raw\",{\"1\":{\"27\":1,\"28\":1}}],[\"raise\",{\"1\":{\"17\":1,\"33\":1,\"68\":1}}],[\"raised\",{\"1\":{\"17\":1}}],[\"rabbitmq\",{\"0\":{\"13\":1},\"1\":{\"44\":1,\"67\":2}}],[\"runner\",{\"1\":{\"39\":1}}],[\"running\",{\"0\":{\"66\":1},\"1\":{\"39\":1,\"60\":1,\"62\":1,\"67\":2,\"72\":1,\"90\":1}}],[\"runtime\",{\"1\":{\"23\":1,\"33\":1,\"76\":1}}],[\"run\",{\"0\":{\"67\":1,\"75\":1},\"1\":{\"4\":1,\"5\":2,\"6\":5,\"10\":3,\"24\":1,\"36\":2,\"37\":2,\"39\":1,\"41\":2,\"47\":1,\"50\":2,\"53\":1,\"54\":1,\"61\":2,\"62\":2,\"63\":12,\"66\":2,\"67\":6,\"68\":3,\"72\":2,\"74\":1,\"75\":2,\"76\":1,\"91\":1}}],[\"runs\",{\"1\":{\"3\":1,\"52\":1}}],[\"rules\",{\"1\":{\"3\":1,\"29\":1,\"40\":1}}],[\"reevaluate\",{\"1\":{\"81\":1}}],[\"reduce\",{\"1\":{\"80\":1}}],[\"redisasyncresultbackend\",{\"1\":{\"67\":4}}],[\"redisschedulesource\",{\"0\":{\"23\":1},\"1\":{\"23\":2,\"76\":3}}],[\"redis\",{\"0\":{\"14\":1,\"21\":1},\"1\":{\"14\":2,\"21\":2,\"23\":6,\"36\":2,\"40\":2,\"46\":2,\"63\":6,\"65\":1,\"67\":7,\"76\":12,\"78\":1,\"80\":3}}],[\"registered\",{\"1\":{\"63\":1}}],[\"register\",{\"1\":{\"63\":9}}],[\"relatively\",{\"1\":{\"66\":1}}],[\"reload\",{\"0\":{\"58\":1,\"59\":1},\"1\":{\"58\":5,\"59\":2}}],[\"releases\",{\"1\":{\"32\":1}}],[\"remove\",{\"1\":{\"76\":1}}],[\"removed\",{\"1\":{\"32\":1}}],[\"remember\",{\"1\":{\"51\":1}}],[\"reached\",{\"1\":{\"60\":1}}],[\"real\",{\"1\":{\"49\":1,\"66\":1,\"91\":1}}],[\"reads\",{\"1\":{\"46\":1}}],[\"read\",{\"1\":{\"12\":1,\"21\":1,\"23\":1,\"30\":1,\"35\":1,\"37\":1,\"60\":1}}],[\"reading\",{\"1\":{\"10\":1,\"67\":1}}],[\"ready\",{\"1\":{\"4\":1,\"32\":2,\"39\":1,\"66\":1}}],[\"readme\",{\"1\":{\"4\":1,\"12\":1,\"21\":1,\"37\":1}}],[\"receive\",{\"1\":{\"81\":1}}],[\"receiver\",{\"1\":{\"60\":4,\"63\":5}}],[\"received\",{\"1\":{\"45\":1,\"51\":1,\"52\":2,\"56\":2,\"60\":1}}],[\"recursively\",{\"1\":{\"50\":1,\"55\":2,\"62\":1}}],[\"recommend\",{\"1\":{\"5\":1,\"38\":1,\"65\":1,\"67\":1}}],[\"reuse\",{\"1\":{\"38\":2}}],[\"re\",{\"1\":{\"36\":1,\"90\":1}}],[\"reference\",{\"1\":{\"31\":1}}],[\"reject\",{\"1\":{\"28\":1,\"52\":2}}],[\"reject=message\",{\"1\":{\"28\":1}}],[\"rejecting\",{\"1\":{\"28\":1}}],[\"resolution\",{\"1\":{\"93\":1}}],[\"resolving\",{\"1\":{\"41\":1}}],[\"resolvable\",{\"1\":{\"40\":1}}],[\"resolved\",{\"1\":{\"36\":1,\"48\":1}}],[\"resolve\",{\"1\":{\"24\":1,\"40\":1,\"73\":1,\"85\":1}}],[\"restrict\",{\"1\":{\"68\":1}}],[\"restart\",{\"1\":{\"17\":2,\"58\":1,\"60\":1}}],[\"resent\",{\"1\":{\"17\":1}}],[\"resultbackend\",{\"1\":{\"49\":1}}],[\"results\",{\"1\":{\"19\":1,\"20\":2,\"45\":1,\"49\":3,\"67\":3}}],[\"result\",{\"0\":{\"19\":1,\"21\":1,\"32\":1,\"49\":1},\"1\":{\"7\":1,\"19\":1,\"20\":1,\"21\":1,\"26\":1,\"27\":1,\"32\":21,\"44\":1,\"45\":1,\"47\":1,\"49\":3,\"51\":2,\"56\":2,\"65\":1,\"66\":8,\"67\":17,\"81\":1,\"92\":3,\"93\":3}}],[\"retrieve\",{\"1\":{\"32\":1}}],[\"retries\",{\"1\":{\"17\":2}}],[\"retries=20\",{\"1\":{\"17\":1}}],[\"retry\",{\"0\":{\"17\":1},\"1\":{\"17\":3}}],[\"returned\",{\"1\":{\"57\":1,\"66\":2,\"67\":4}}],[\"returns\",{\"1\":{\"38\":1,\"41\":1,\"49\":1,\"66\":1}}],[\"returntype\",{\"1\":{\"32\":5}}],[\"return\",{\"1\":{\"11\":1,\"19\":1,\"20\":2,\"27\":2,\"28\":1,\"32\":4,\"33\":2,\"40\":1,\"41\":1,\"51\":1,\"57\":1,\"66\":2,\"67\":4,\"72\":2,\"76\":1,\"91\":1,\"92\":4,\"93\":1}}],[\"requires\",{\"1\":{\"59\":1,\"67\":1}}],[\"required\",{\"1\":{\"4\":1,\"28\":1,\"62\":1}}],[\"requeue\",{\"1\":{\"52\":2}}],[\"request\",{\"1\":{\"3\":1,\"38\":4,\"40\":10}}],[\"replaced\",{\"1\":{\"92\":1}}],[\"replace\",{\"1\":{\"67\":1,\"90\":1,\"91\":1}}],[\"replacement\",{\"1\":{\"1\":1}}],[\"repo\",{\"1\":{\"4\":1,\"12\":1,\"38\":1,\"40\":1}}],[\"level\",{\"0\":{\"87\":1},\"1\":{\"60\":2,\"62\":2,\"87\":1}}],[\"level=logging\",{\"1\":{\"36\":1}}],[\"leave\",{\"1\":{\"57\":1}}],[\"let\",{\"1\":{\"36\":1,\"38\":1,\"40\":1,\"41\":1,\"45\":1,\"50\":2,\"66\":1,\"67\":3,\"72\":3,\"80\":1,\"82\":1,\"88\":1,\"92\":2,\"93\":2}}],[\"less\",{\"1\":{\"3\":1,\"70\":1}}],[\"language\",{\"1\":{\"90\":1}}],[\"lambda\",{\"1\":{\"63\":9}}],[\"later\",{\"1\":{\"51\":1,\"78\":1,\"80\":1}}],[\"latest\",{\"1\":{\"36\":1}}],[\"lack\",{\"1\":{\"43\":1}}],[\"label1=\",{\"1\":{\"76\":1}}],[\"label1=1\",{\"1\":{\"48\":1}}],[\"label2=\",{\"1\":{\"48\":2}}],[\"label=1\",{\"1\":{\"48\":2}}],[\"labels=\",{\"1\":{\"33\":1}}],[\"labels\",{\"1\":{\"24\":5,\"47\":3,\"48\":3,\"51\":3,\"76\":4}}],[\"labelschedulesource\",{\"0\":{\"24\":1},\"1\":{\"24\":2,\"63\":2,\"72\":2}}],[\"label\",{\"1\":{\"17\":1,\"24\":2,\"29\":3,\"47\":1,\"51\":1,\"68\":1}}],[\"ll\",{\"1\":{\"8\":1,\"18\":1,\"38\":1,\"40\":1,\"52\":1,\"57\":2}}],[\"little\",{\"1\":{\"66\":1,\"72\":1}}],[\"light\",{\"1\":{\"45\":1}}],[\"like\",{\"1\":{\"27\":2,\"30\":1,\"35\":3,\"36\":1,\"37\":1,\"38\":1,\"40\":2,\"44\":1,\"45\":1,\"54\":1,\"57\":1,\"59\":1,\"71\":1,\"72\":2,\"74\":1,\"80\":1,\"81\":2,\"83\":1}}],[\"line\",{\"1\":{\"36\":1,\"50\":1,\"67\":1}}],[\"link\",{\"1\":{\"13\":1,\"14\":1,\"15\":1}}],[\"lints\",{\"1\":{\"5\":1}}],[\"linting\",{\"0\":{\"5\":1}}],[\"library\",{\"1\":{\"21\":1,\"25\":1,\"35\":2,\"36\":1,\"37\":1,\"38\":1,\"40\":2,\"43\":2,\"53\":1,\"65\":1,\"67\":1}}],[\"libraries\",{\"0\":{\"44\":1},\"1\":{\"1\":1,\"35\":1,\"36\":1,\"37\":1,\"40\":1,\"43\":1,\"70\":1,\"87\":1}}],[\"lib\",{\"1\":{\"10\":1,\"12\":1,\"52\":1,\"67\":1,\"91\":1}}],[\"listqueuebroker\",{\"1\":{\"36\":2,\"63\":6,\"76\":2}}],[\"listener\",{\"1\":{\"63\":1}}],[\"listening\",{\"1\":{\"50\":1,\"78\":1}}],[\"listen\",{\"1\":{\"27\":2,\"28\":2,\"36\":1,\"46\":2,\"63\":1}}],[\"list\",{\"1\":{\"7\":1,\"8\":1,\"17\":1,\"24\":2,\"33\":3,\"36\":2,\"72\":1,\"76\":2,\"87\":1}}],[\"loads\",{\"1\":{\"71\":1}}],[\"loadb\",{\"1\":{\"70\":1}}],[\"looks\",{\"1\":{\"45\":1,\"81\":2}}],[\"look\",{\"1\":{\"38\":1,\"50\":1,\"70\":1,\"71\":1}}],[\"loop=loop\",{\"1\":{\"39\":2}}],[\"loop\",{\"1\":{\"36\":1,\"39\":2,\"46\":1,\"50\":1,\"63\":3,\"72\":1}}],[\"logic\",{\"1\":{\"63\":1,\"73\":1,\"90\":1}}],[\"log\",{\"1\":{\"60\":2,\"62\":2}}],[\"logging\",{\"1\":{\"36\":4,\"60\":2,\"62\":2}}],[\"logs=true\",{\"1\":{\"32\":1}}],[\"logs\",{\"1\":{\"32\":8}}],[\"lot\",{\"1\":{\"32\":1}}],[\"lots\",{\"1\":{\"3\":1}}],[\"localhost\",{\"1\":{\"23\":1,\"35\":1,\"36\":1,\"63\":3,\"67\":6,\"72\":2,\"76\":2,\"80\":1}}],[\"local\",{\"1\":{\"9\":1,\"10\":1,\"66\":1}}],[\"locally\",{\"1\":{\"3\":1,\"6\":1,\"9\":1}}],[\"lovely\",{\"1\":{\"47\":1,\"48\":3}}],[\"love\",{\"1\":{\"3\":1}}],[\"bigger\",{\"1\":{\"40\":1}}],[\"bit\",{\"1\":{\"35\":1,\"66\":1}}],[\"balance\",{\"1\":{\"48\":1}}],[\"back\",{\"1\":{\"45\":1,\"52\":1}}],[\"backend\",{\"0\":{\"21\":1,\"32\":1,\"49\":1},\"1\":{\"20\":1,\"21\":1,\"32\":6,\"49\":2,\"51\":1,\"56\":1,\"65\":1,\"67\":4,\"91\":1}}],[\"backends\",{\"0\":{\"19\":1},\"1\":{\"7\":1,\"19\":1,\"26\":1,\"32\":1,\"44\":2,\"45\":1}}],[\"basic\",{\"1\":{\"43\":1}}],[\"basicconfig\",{\"1\":{\"36\":1}}],[\"bases\",{\"1\":{\"93\":1}}],[\"based\",{\"1\":{\"85\":1}}],[\"base\",{\"1\":{\"40\":1,\"93\":1}}],[\"blocking\",{\"1\":{\"36\":1}}],[\"bots\",{\"1\":{\"36\":5}}],[\"bot\",{\"1\":{\"36\":22}}],[\"bool\",{\"1\":{\"11\":1,\"32\":2}}],[\"built\",{\"1\":{\"43\":1,\"44\":1}}],[\"building\",{\"1\":{\"37\":1}}],[\"build\",{\"1\":{\"30\":1,\"81\":1}}],[\"button\",{\"1\":{\"80\":1}}],[\"but\",{\"1\":{\"1\":1,\"3\":1,\"5\":1,\"6\":1,\"9\":2,\"27\":1,\"28\":1,\"30\":1,\"33\":1,\"35\":3,\"38\":2,\"40\":1,\"41\":1,\"43\":1,\"44\":1,\"47\":1,\"49\":1,\"51\":1,\"59\":1,\"60\":1,\"63\":1,\"66\":2,\"67\":1,\"68\":1,\"69\":2,\"70\":2,\"71\":2,\"72\":1,\"73\":1,\"79\":1,\"80\":3,\"90\":1,\"91\":1,\"93\":5}}],[\"bytes\",{\"1\":{\"27\":4,\"28\":2}}],[\"by\",{\"1\":{\"9\":1,\"18\":1,\"32\":1,\"39\":1,\"43\":1,\"45\":2,\"49\":2,\"50\":1,\"51\":2,\"52\":1,\"53\":1,\"55\":1,\"56\":2,\"58\":1,\"60\":1,\"62\":1,\"63\":2,\"67\":1,\"69\":1,\"71\":1,\"73\":1,\"75\":1,\"76\":6,\"78\":1,\"80\":1,\"81\":1,\"86\":1}}],[\"brokerwrapper\",{\"1\":{\"35\":2}}],[\"brokermessage\",{\"1\":{\"27\":6}}],[\"broker=broker\",{\"1\":{\"24\":1,\"39\":1,\"72\":1}}],[\"broker\",{\"0\":{\"11\":1,\"14\":1,\"15\":1,\"46\":1},\"1\":{\"9\":1,\"10\":3,\"11\":7,\"17\":3,\"18\":1,\"20\":1,\"21\":1,\"23\":1,\"24\":3,\"27\":3,\"28\":3,\"29\":2,\"31\":3,\"32\":1,\"33\":3,\"35\":6,\"36\":9,\"38\":3,\"39\":2,\"40\":9,\"41\":3,\"44\":1,\"45\":1,\"46\":2,\"47\":10,\"48\":3,\"50\":10,\"52\":3,\"54\":2,\"56\":1,\"59\":1,\"60\":2,\"61\":1,\"63\":23,\"65\":2,\"66\":12,\"67\":27,\"70\":1,\"72\":6,\"76\":7,\"78\":4,\"80\":1,\"84\":1,\"90\":2,\"91\":7,\"92\":5,\"93\":6}}],[\"brokers\",{\"0\":{\"8\":1,\"12\":1,\"27\":1},\"1\":{\"7\":1,\"8\":1,\"11\":1,\"12\":2,\"26\":1,\"27\":2,\"29\":1,\"35\":2,\"40\":1,\"43\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":2,\"60\":1,\"63\":1,\"87\":1}}],[\"been\",{\"1\":{\"75\":2}}],[\"berlin\",{\"1\":{\"74\":1}}],[\"below\",{\"1\":{\"72\":1}}],[\"behaviour\",{\"1\":{\"66\":1,\"75\":2}}],[\"behavior\",{\"1\":{\"10\":1,\"74\":1,\"81\":1}}],[\"beginning\",{\"1\":{\"66\":2,\"67\":1}}],[\"become\",{\"1\":{\"66\":1,\"93\":1}}],[\"becomes\",{\"1\":{\"36\":1,\"38\":1}}],[\"because\",{\"1\":{\"10\":1,\"32\":1,\"36\":1,\"38\":1,\"40\":1,\"41\":1,\"44\":1,\"57\":1,\"67\":1,\"82\":1,\"91\":1}}],[\"best\",{\"1\":{\"36\":1}}],[\"before\",{\"1\":{\"31\":1,\"33\":1,\"51\":3,\"60\":2,\"63\":2,\"67\":1,\"83\":2,\"90\":1,\"93\":3}}],[\"between\",{\"1\":{\"10\":1,\"35\":2}}],[\"better\",{\"1\":{\"3\":2,\"37\":1,\"76\":1,\"80\":2}}],[\"be\",{\"1\":{\"1\":1,\"3\":1,\"9\":1,\"10\":2,\"11\":1,\"17\":1,\"18\":3,\"20\":2,\"24\":6,\"25\":1,\"28\":1,\"29\":2,\"31\":1,\"32\":1,\"33\":5,\"34\":1,\"35\":1,\"36\":1,\"38\":3,\"40\":1,\"47\":1,\"48\":2,\"49\":1,\"51\":2,\"52\":2,\"55\":1,\"56\":1,\"60\":3,\"62\":1,\"63\":2,\"69\":1,\"70\":2,\"71\":1,\"72\":3,\"74\":4,\"75\":4,\"76\":2,\"78\":1,\"80\":3,\"81\":2,\"84\":2,\"85\":1,\"87\":1,\"88\":1,\"92\":1,\"93\":2}}],[\"pm\",{\"1\":{\"72\":1}}],[\"purpose\",{\"1\":{\"76\":1}}],[\"purposes\",{\"1\":{\"63\":1,\"93\":1}}],[\"pub\",{\"1\":{\"46\":1}}],[\"public\",{\"1\":{\"40\":1}}],[\"publishes\",{\"1\":{\"10\":1}}],[\"publish\",{\"1\":{\"3\":1,\"6\":1}}],[\"puts\",{\"1\":{\"46\":1,\"52\":1}}],[\"per\",{\"1\":{\"60\":1}}],[\"perform\",{\"1\":{\"27\":1,\"36\":1,\"59\":1,\"83\":1}}],[\"people\",{\"1\":{\"33\":3,\"40\":2,\"63\":1}}],[\"pid>\",{\"1\":{\"59\":1}}],[\"pika\",{\"1\":{\"13\":2,\"65\":1,\"67\":6,\"72\":2}}],[\"pipelines\",{\"1\":{\"31\":1,\"44\":1}}],[\"pip\",{\"1\":{\"2\":2,\"13\":1,\"14\":1,\"15\":1,\"21\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"65\":1,\"67\":2}}],[\"policies\",{\"1\":{\"50\":1}}],[\"polling\",{\"1\":{\"36\":1}}],[\"popularity\",{\"1\":{\"40\":1}}],[\"popular\",{\"1\":{\"40\":1}}],[\"populates\",{\"1\":{\"39\":1}}],[\"populate\",{\"1\":{\"39\":3,\"41\":1}}],[\"pool\",{\"1\":{\"38\":2,\"40\":2,\"78\":2,\"80\":2}}],[\"post\",{\"1\":{\"33\":1,\"51\":4}}],[\"possible\",{\"1\":{\"27\":1,\"40\":1,\"43\":1,\"60\":1,\"63\":2,\"73\":1}}],[\"point\",{\"1\":{\"30\":1,\"38\":1,\"91\":1}}],[\"points\",{\"1\":{\"30\":2}}],[\"port=9000\",{\"1\":{\"18\":1}}],[\"port\",{\"1\":{\"10\":2,\"18\":1}}],[\"poetry\",{\"1\":{\"4\":2}}],[\"place\",{\"1\":{\"91\":1}}],[\"plain\",{\"1\":{\"66\":1}}],[\"plugin\",{\"1\":{\"90\":1}}],[\"plugins\",{\"1\":{\"7\":1,\"53\":2}}],[\"please\",{\"1\":{\"3\":2,\"4\":2,\"10\":2,\"11\":1,\"20\":1,\"27\":2,\"36\":1,\"37\":1,\"40\":1,\"50\":1,\"51\":1,\"72\":2}}],[\"pydantic\",{\"1\":{\"57\":1}}],[\"pypi\",{\"1\":{\"53\":1,\"65\":2}}],[\"py\",{\"1\":{\"50\":3,\"55\":2,\"62\":2,\"66\":3,\"67\":4,\"91\":1,\"93\":2}}],[\"pyzmq\",{\"1\":{\"10\":1}}],[\"pyenv\",{\"1\":{\"4\":3,\"6\":1}}],[\"python\",{\"1\":{\"4\":2,\"6\":2,\"30\":1,\"40\":1,\"43\":1,\"50\":1,\"60\":1,\"66\":3,\"67\":4,\"68\":1,\"90\":1}}],[\"pytest\",{\"1\":{\"4\":1,\"6\":5,\"39\":1,\"41\":2,\"90\":2,\"91\":3,\"92\":3,\"93\":6}}],[\"practice\",{\"1\":{\"32\":1}}],[\"primitives\",{\"1\":{\"72\":1}}],[\"printed\",{\"1\":{\"67\":1}}],[\"print\",{\"1\":{\"30\":1,\"33\":2,\"36\":1,\"47\":2,\"48\":3,\"51\":1,\"63\":6,\"66\":3,\"67\":6,\"76\":2}}],[\"priorities\",{\"1\":{\"29\":1}}],[\"priority\",{\"1\":{\"29\":2}}],[\"preparations\",{\"0\":{\"89\":1},\"1\":{\"91\":1}}],[\"prepare\",{\"1\":{\"3\":1}}],[\"predict\",{\"1\":{\"81\":1}}],[\"preserve\",{\"1\":{\"73\":1}}],[\"previous\",{\"1\":{\"63\":1,\"73\":1}}],[\"previously\",{\"1\":{\"40\":1}}],[\"prefetched\",{\"1\":{\"60\":1}}],[\"prefetch\",{\"1\":{\"60\":1}}],[\"pre\",{\"1\":{\"5\":3,\"33\":1,\"51\":3}}],[\"pr\",{\"1\":{\"3\":2,\"6\":1}}],[\"providing\",{\"1\":{\"76\":1}}],[\"provides\",{\"1\":{\"43\":1}}],[\"provide\",{\"1\":{\"38\":1,\"40\":2,\"41\":1,\"50\":1,\"67\":1,\"79\":1,\"80\":1,\"93\":1}}],[\"production\",{\"1\":{\"65\":1,\"93\":1}}],[\"producers\",{\"1\":{\"35\":1}}],[\"propagated\",{\"1\":{\"84\":1}}],[\"propagate\",{\"1\":{\"60\":1,\"84\":3}}],[\"programs\",{\"1\":{\"88\":1}}],[\"programmatically\",{\"1\":{\"78\":1}}],[\"program\",{\"1\":{\"53\":1}}],[\"prometheusmiddleware\",{\"1\":{\"18\":3}}],[\"prometheus\",{\"0\":{\"18\":1},\"1\":{\"18\":2}}],[\"project\",{\"1\":{\"13\":1,\"14\":1,\"15\":1,\"35\":1,\"37\":1,\"38\":1,\"40\":1,\"44\":3,\"50\":8,\"54\":2,\"61\":3,\"71\":1,\"79\":1,\"91\":1,\"92\":4,\"93\":2}}],[\"projects\",{\"1\":{\"1\":1,\"10\":1,\"35\":1,\"44\":2}}],[\"processing\",{\"1\":{\"46\":1}}],[\"process\",{\"1\":{\"10\":1,\"36\":2,\"39\":1,\"40\":2,\"41\":1,\"43\":1,\"54\":1,\"59\":1,\"60\":1,\"67\":2}}],[\"processes\",{\"1\":{\"10\":4,\"50\":1}}],[\"problems\",{\"1\":{\"35\":1,\"72\":1}}],[\"problem\",{\"1\":{\"3\":1,\"27\":1,\"44\":1,\"72\":1,\"93\":1}}],[\"painful\",{\"1\":{\"72\":1}}],[\"pattern\",{\"1\":{\"55\":3,\"62\":3}}],[\"patterns\",{\"1\":{\"1\":1}}],[\"pathlib\",{\"1\":{\"93\":2}}],[\"path\",{\"1\":{\"36\":2,\"38\":1,\"40\":1,\"50\":1,\"60\":1,\"62\":1,\"93\":11}}],[\"passed\",{\"1\":{\"36\":2}}],[\"pass\",{\"1\":{\"27\":1,\"57\":1,\"58\":2,\"73\":1,\"75\":1,\"76\":2,\"82\":1,\"92\":2,\"93\":2}}],[\"package\",{\"1\":{\"18\":1,\"21\":1,\"23\":1,\"25\":1,\"40\":1,\"79\":1}}],[\"packages\",{\"1\":{\"12\":1}}],[\"parse\",{\"1\":{\"30\":2,\"57\":2,\"92\":7}}],[\"parsed\",{\"1\":{\"30\":2}}],[\"parser\",{\"1\":{\"30\":3}}],[\"parses\",{\"1\":{\"24\":1,\"37\":1}}],[\"particular\",{\"1\":{\"66\":1}}],[\"part\",{\"1\":{\"21\":1,\"32\":1,\"39\":1,\"41\":1}}],[\"parts\",{\"1\":{\"12\":1}}],[\"param\",{\"1\":{\"32\":6,\"33\":2,\"39\":1}}],[\"parameter\",{\"1\":{\"10\":1,\"18\":1,\"27\":1,\"30\":3,\"32\":1,\"40\":2,\"56\":1,\"60\":3,\"62\":1,\"81\":4,\"82\":1}}],[\"parameters\",{\"0\":{\"60\":1,\"62\":1},\"1\":{\"6\":1,\"12\":1,\"17\":1,\"21\":1,\"24\":1,\"28\":1,\"57\":2}}],[\"parallel\",{\"1\":{\"6\":1}}],[\"page\",{\"1\":{\"3\":1}}],[\"writing\",{\"1\":{\"39\":2,\"80\":1}}],[\"write\",{\"1\":{\"33\":1,\"35\":1,\"51\":1,\"80\":1,\"88\":2}}],[\"way\",{\"1\":{\"63\":1,\"79\":1,\"80\":1}}],[\"wait\",{\"1\":{\"60\":3,\"63\":2,\"66\":3,\"67\":4,\"75\":1,\"92\":1,\"93\":1}}],[\"waits\",{\"1\":{\"46\":1}}],[\"warning\",{\"1\":{\"27\":1,\"66\":1,\"76\":1}}],[\"was\",{\"1\":{\"17\":1,\"33\":1,\"47\":1,\"51\":7,\"52\":1,\"73\":1,\"75\":1}}],[\"want\",{\"1\":{\"3\":1,\"4\":1,\"6\":2,\"17\":1,\"31\":1,\"32\":1,\"33\":1,\"35\":1,\"39\":1,\"40\":1,\"43\":1,\"50\":2,\"54\":1,\"63\":1,\"66\":1,\"68\":2,\"69\":1,\"70\":1,\"71\":1,\"72\":3,\"73\":2,\"74\":1,\"76\":4,\"78\":3,\"83\":1,\"84\":3,\"87\":1,\"88\":1,\"90\":2,\"92\":2,\"93\":1}}],[\"w\",{\"1\":{\"10\":1}}],[\"will\",{\"1\":{\"4\":1,\"6\":1,\"10\":1,\"18\":1,\"20\":1,\"31\":1,\"32\":1,\"33\":2,\"36\":1,\"50\":1,\"51\":1,\"59\":1,\"60\":1,\"63\":3,\"66\":1,\"68\":1,\"72\":1,\"75\":4,\"76\":1,\"78\":1,\"80\":1,\"81\":2,\"84\":1,\"85\":1,\"93\":1}}],[\"within\",{\"1\":{\"36\":1,\"63\":2}}],[\"without\",{\"1\":{\"5\":1,\"6\":1,\"32\":1,\"36\":1,\"51\":1,\"93\":1}}],[\"with\",{\"0\":{\"74\":1,\"88\":1},\"1\":{\"2\":1,\"3\":1,\"5\":1,\"6\":3,\"10\":3,\"11\":1,\"17\":2,\"18\":1,\"25\":1,\"27\":1,\"28\":1,\"29\":4,\"32\":5,\"33\":3,\"34\":2,\"35\":2,\"36\":1,\"37\":1,\"38\":2,\"39\":2,\"40\":6,\"41\":1,\"46\":1,\"47\":3,\"48\":1,\"50\":2,\"52\":2,\"53\":2,\"54\":1,\"55\":1,\"58\":1,\"59\":1,\"60\":1,\"63\":1,\"66\":2,\"67\":6,\"68\":1,\"70\":2,\"72\":1,\"76\":4,\"80\":1,\"82\":2,\"90\":1,\"91\":1,\"92\":1,\"93\":2}}],[\"whith\",{\"1\":{\"76\":1}}],[\"which\",{\"1\":{\"36\":1,\"38\":1,\"41\":1,\"53\":1,\"55\":1,\"62\":1}}],[\"while\",{\"1\":{\"27\":1,\"35\":1,\"66\":1,\"67\":2,\"72\":1,\"80\":1}}],[\"why\",{\"0\":{\"44\":1},\"1\":{\"34\":1,\"55\":1,\"58\":1,\"73\":1,\"79\":1}}],[\"whether\",{\"1\":{\"32\":3,\"66\":1,\"75\":1}}],[\"when\",{\"1\":{\"16\":1,\"24\":5,\"32\":1,\"33\":1,\"36\":2,\"39\":1,\"40\":1,\"47\":1,\"56\":6,\"58\":1,\"60\":5,\"63\":1,\"68\":1,\"75\":1,\"78\":2}}],[\"where\",{\"1\":{\"10\":1,\"20\":1,\"72\":1,\"78\":1,\"81\":1}}],[\"who\",{\"1\":{\"3\":1,\"52\":1,\"63\":1}}],[\"what\",{\"0\":{\"1\":1,\"43\":1},\"1\":{\"40\":1,\"72\":1,\"92\":1,\"93\":2}}],[\"web\",{\"1\":{\"37\":3,\"38\":3,\"39\":1,\"40\":1}}],[\"were\",{\"1\":{\"36\":1,\"40\":1,\"88\":1}}],[\"well\",{\"1\":{\"18\":1,\"63\":1,\"71\":1,\"93\":1}}],[\"we\",{\"1\":{\"3\":3,\"4\":1,\"5\":2,\"6\":1,\"8\":1,\"22\":1,\"27\":1,\"29\":1,\"32\":1,\"34\":1,\"36\":1,\"37\":2,\"38\":4,\"39\":1,\"40\":6,\"41\":2,\"43\":1,\"44\":2,\"50\":2,\"55\":1,\"57\":1,\"63\":14,\"65\":1,\"66\":1,\"67\":11,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":6,\"73\":2,\"74\":3,\"76\":3,\"79\":2,\"80\":3,\"81\":2,\"83\":1,\"88\":3,\"90\":3,\"91\":4,\"92\":2,\"93\":8}}],[\"world\",{\"1\":{\"49\":1,\"66\":1}}],[\"words\",{\"1\":{\"45\":1}}],[\"word\",{\"1\":{\"24\":1,\"93\":1}}],[\"working\",{\"0\":{\"74\":1}}],[\"works\",{\"1\":{\"67\":1}}],[\"workers\",{\"0\":{\"50\":1},\"1\":{\"18\":1,\"50\":1,\"58\":1,\"59\":1,\"60\":1}}],[\"worker\",{\"0\":{\"54\":1},\"1\":{\"10\":5,\"36\":4,\"39\":1,\"40\":2,\"41\":1,\"45\":1,\"50\":3,\"51\":2,\"53\":1,\"54\":2,\"56\":3,\"58\":2,\"59\":2,\"60\":2,\"63\":15,\"66\":1,\"67\":6,\"71\":1,\"78\":4,\"80\":1,\"84\":2}}],[\"work\",{\"0\":{\"81\":1},\"1\":{\"1\":1,\"40\":1,\"46\":1,\"50\":1,\"82\":1,\"92\":1}}],[\"would\",{\"1\":{\"17\":1,\"41\":1,\"92\":1}}],[\"won\",{\"1\":{\"1\":1,\"51\":1,\"57\":1,\"58\":1,\"60\":1,\"63\":1,\"76\":1,\"79\":1,\"80\":2}}],[\"os\",{\"1\":{\"91\":2}}],[\"old\",{\"1\":{\"73\":1}}],[\"obvious\",{\"1\":{\"73\":1}}],[\"object\",{\"1\":{\"47\":1,\"66\":1,\"76\":1}}],[\"objects\",{\"1\":{\"22\":1}}],[\"out\",{\"1\":{\"73\":1,\"93\":1}}],[\"outside\",{\"1\":{\"63\":1}}],[\"our\",{\"1\":{\"5\":1,\"40\":1,\"67\":1,\"72\":2,\"74\":1,\"91\":1,\"92\":1,\"93\":1}}],[\"over\",{\"1\":{\"66\":1,\"70\":1,\"85\":1}}],[\"overcome\",{\"1\":{\"63\":1}}],[\"override\",{\"1\":{\"49\":1}}],[\"overridden\",{\"1\":{\"9\":1}}],[\"overview\",{\"0\":{\"45\":1},\"1\":{\"66\":1}}],[\"own\",{\"1\":{\"35\":1,\"51\":1,\"63\":1,\"69\":1,\"70\":1,\"71\":1,\"79\":1}}],[\"ok\",{\"1\":{\"29\":1,\"66\":1}}],[\"optimized\",{\"1\":{\"81\":1}}],[\"optional\",{\"1\":{\"29\":1,\"30\":1,\"33\":4,\"61\":1}}],[\"options\",{\"1\":{\"11\":1,\"55\":1}}],[\"option\",{\"1\":{\"6\":1,\"50\":1,\"55\":2,\"57\":1,\"58\":4,\"62\":2,\"84\":1}}],[\"open\",{\"1\":{\"78\":1,\"84\":1}}],[\"opening\",{\"1\":{\"27\":1}}],[\"operations\",{\"1\":{\"27\":1}}],[\"omit\",{\"1\":{\"82\":1}}],[\"omitted\",{\"1\":{\"24\":3}}],[\"ommited\",{\"1\":{\"24\":1}}],[\"occurs\",{\"1\":{\"16\":1}}],[\"once\",{\"1\":{\"67\":1,\"75\":1,\"81\":1}}],[\"on\",{\"1\":{\"10\":1,\"17\":4,\"23\":1,\"32\":1,\"33\":1,\"35\":2,\"37\":1,\"38\":3,\"40\":4,\"41\":1,\"43\":1,\"44\":1,\"45\":4,\"47\":1,\"51\":3,\"66\":1,\"75\":1,\"76\":3,\"80\":2,\"81\":2,\"85\":1,\"93\":1}}],[\"ones\",{\"1\":{\"73\":1}}],[\"one\",{\"1\":{\"10\":1,\"22\":1,\"36\":1,\"38\":1,\"40\":1,\"41\":1,\"48\":1,\"57\":1,\"66\":2,\"67\":4,\"72\":3,\"78\":1,\"90\":1,\"92\":3}}],[\"only\",{\"1\":{\"10\":1,\"22\":1,\"27\":1,\"32\":1,\"38\":2,\"39\":1,\"40\":2,\"53\":1,\"62\":1,\"72\":2,\"73\":3,\"81\":1,\"82\":1,\"84\":1,\"86\":1}}],[\"orjsonserializer\",{\"1\":{\"70\":1}}],[\"orjson\",{\"1\":{\"70\":1}}],[\"ordinary\",{\"1\":{\"66\":1,\"67\":1}}],[\"order\",{\"1\":{\"24\":1,\"51\":1}}],[\"orchestration\",{\"1\":{\"59\":1}}],[\"or\",{\"1\":{\"2\":1,\"3\":2,\"10\":1,\"18\":1,\"24\":2,\"28\":2,\"29\":1,\"30\":1,\"31\":2,\"32\":1,\"36\":2,\"38\":1,\"40\":5,\"43\":1,\"44\":1,\"47\":1,\"48\":1,\"50\":1,\"51\":4,\"52\":5,\"55\":2,\"57\":1,\"58\":1,\"60\":1,\"62\":2,\"65\":2,\"66\":1,\"68\":1,\"69\":1,\"70\":1,\"73\":1,\"74\":2,\"76\":3,\"90\":1,\"93\":1}}],[\"offset\",{\"1\":{\"24\":3,\"74\":3}}],[\"officially\",{\"1\":{\"7\":1,\"8\":1}}],[\"official\",{\"1\":{\"4\":1}}],[\"of\",{\"1\":{\"1\":2,\"3\":1,\"7\":1,\"10\":3,\"12\":3,\"17\":2,\"18\":1,\"21\":2,\"23\":1,\"24\":3,\"27\":2,\"28\":2,\"29\":1,\"30\":1,\"31\":2,\"32\":6,\"33\":2,\"36\":3,\"38\":2,\"40\":2,\"41\":1,\"43\":1,\"44\":2,\"46\":1,\"49\":1,\"51\":2,\"52\":4,\"55\":2,\"56\":2,\"57\":2,\"60\":8,\"62\":3,\"63\":5,\"65\":1,\"66\":3,\"67\":3,\"68\":2,\"69\":1,\"70\":3,\"71\":1,\"72\":4,\"74\":4,\"75\":1,\"76\":5,\"78\":3,\"80\":3,\"81\":3,\"87\":1}}],[\"otherwise\",{\"1\":{\"10\":1,\"36\":1}}],[\"other\",{\"0\":{\"60\":1},\"1\":{\"1\":1,\"18\":1,\"35\":2,\"36\":1,\"38\":1,\"44\":1,\"70\":1,\"82\":1,\"93\":1}}],[\"d\",{\"1\":{\"71\":1}}],[\"dyn\",{\"1\":{\"63\":27}}],[\"dynamically\",{\"1\":{\"63\":1}}],[\"dynamic\",{\"0\":{\"63\":1,\"76\":1},\"1\":{\"23\":2,\"63\":4,\"76\":2}}],[\"day\",{\"1\":{\"72\":1}}],[\"dark\",{\"1\":{\"45\":2}}],[\"data\",{\"1\":{\"66\":1,\"70\":1}}],[\"dataclasses\",{\"1\":{\"57\":1}}],[\"database\",{\"1\":{\"33\":1,\"78\":1,\"84\":1}}],[\"data=message\",{\"1\":{\"28\":1}}],[\"datetime\",{\"1\":{\"24\":1,\"63\":4,\"70\":1,\"74\":1,\"76\":10}}],[\"db\",{\"1\":{\"38\":1}}],[\"dp\",{\"1\":{\"36\":6}}],[\"dumps\",{\"1\":{\"71\":2}}],[\"dumpb\",{\"1\":{\"70\":1}}],[\"dummyresultbackend\",{\"0\":{\"20\":1},\"1\":{\"49\":1}}],[\"during\",{\"1\":{\"17\":1,\"31\":1,\"91\":1}}],[\"declaration\",{\"1\":{\"63\":2,\"66\":1}}],[\"declared\",{\"1\":{\"82\":2}}],[\"declare\",{\"1\":{\"35\":1}}],[\"decorator\",{\"1\":{\"48\":2,\"68\":1}}],[\"detailed\",{\"1\":{\"38\":1}}],[\"dep2\",{\"1\":{\"81\":3}}],[\"dep1\",{\"1\":{\"81\":1}}],[\"dep\",{\"1\":{\"81\":3}}],[\"deployment\",{\"1\":{\"59\":1}}],[\"depends\",{\"1\":{\"93\":1}}],[\"dependenices\",{\"1\":{\"40\":1}}],[\"dependencies\",{\"0\":{\"77\":1,\"79\":1,\"80\":1,\"81\":1,\"83\":1,\"86\":1,\"87\":1},\"1\":{\"4\":3,\"34\":1,\"36\":1,\"37\":2,\"38\":4,\"40\":4,\"41\":1,\"60\":1,\"79\":3,\"80\":3,\"81\":5,\"82\":3,\"83\":1,\"84\":2,\"85\":1,\"86\":1,\"87\":4,\"93\":8}}],[\"dependency\",{\"0\":{\"82\":1,\"93\":1},\"1\":{\"2\":1,\"36\":1,\"37\":3,\"38\":1,\"39\":2,\"40\":4,\"41\":4,\"44\":1,\"80\":2,\"81\":4,\"82\":2,\"84\":2,\"87\":1,\"93\":6}}],[\"depend\",{\"1\":{\"38\":1,\"40\":2,\"81\":1}}],[\"deps\",{\"1\":{\"37\":4,\"38\":2,\"41\":1}}],[\"deprecated\",{\"1\":{\"32\":1}}],[\"described\",{\"1\":{\"61\":1}}],[\"description\",{\"1\":{\"3\":1}}],[\"dest=\",{\"1\":{\"30\":1}}],[\"demo\",{\"1\":{\"30\":4}}],[\"deleting\",{\"1\":{\"33\":1}}],[\"delete\",{\"1\":{\"33\":1,\"76\":2}}],[\"delay=1\",{\"1\":{\"47\":1}}],[\"delayed\",{\"1\":{\"29\":1,\"33\":1,\"36\":1}}],[\"delay\",{\"1\":{\"29\":2}}],[\"delivery\",{\"1\":{\"27\":1}}],[\"developers\",{\"1\":{\"52\":1,\"74\":1,\"75\":1}}],[\"developer\",{\"1\":{\"27\":1}}],[\"development\",{\"1\":{\"9\":1,\"34\":1,\"66\":1}}],[\"defining\",{\"1\":{\"35\":1,\"63\":1}}],[\"define\",{\"1\":{\"11\":2,\"41\":1,\"48\":1,\"63\":4,\"69\":1,\"70\":2,\"71\":3,\"92\":2}}],[\"defined\",{\"1\":{\"11\":1,\"54\":1,\"63\":1,\"67\":1,\"72\":1,\"92\":1}}],[\"def\",{\"1\":{\"11\":1,\"17\":1,\"24\":1,\"27\":5,\"28\":1,\"30\":1,\"32\":5,\"33\":7,\"36\":5,\"39\":1,\"40\":3,\"41\":2,\"47\":2,\"48\":5,\"51\":2,\"57\":1,\"63\":3,\"66\":2,\"67\":4,\"72\":2,\"76\":2,\"80\":1,\"91\":1,\"92\":5,\"93\":3}}],[\"default=\",{\"1\":{\"30\":1}}],[\"default\",{\"0\":{\"86\":1},\"1\":{\"9\":1,\"11\":1,\"16\":1,\"17\":1,\"27\":1,\"30\":2,\"40\":2,\"49\":2,\"50\":1,\"53\":1,\"55\":1,\"58\":1,\"60\":3,\"62\":2,\"69\":2,\"70\":1,\"71\":1,\"73\":1,\"75\":1,\"81\":1,\"86\":1,\"87\":2}}],[\"dramatiq\",{\"1\":{\"44\":1}}],[\"draft\",{\"1\":{\"3\":1}}],[\"drops\",{\"1\":{\"52\":1}}],[\"drop\",{\"1\":{\"1\":1}}],[\"dive\",{\"1\":{\"88\":1}}],[\"didn\",{\"1\":{\"67\":1}}],[\"directory\",{\"1\":{\"50\":1,\"55\":2,\"58\":1,\"62\":1}}],[\"directly\",{\"1\":{\"11\":1,\"65\":1,\"79\":1,\"80\":1}}],[\"diagram\",{\"1\":{\"45\":2}}],[\"disables\",{\"1\":{\"60\":1}}],[\"disable\",{\"1\":{\"57\":1,\"58\":1}}],[\"discover\",{\"1\":{\"50\":2,\"55\":2,\"62\":1}}],[\"discuss\",{\"1\":{\"45\":1}}],[\"discussions\",{\"1\":{\"3\":1}}],[\"dispatcher\",{\"1\":{\"36\":6}}],[\"distributed\",{\"0\":{\"67\":1},\"1\":{\"35\":1,\"43\":2,\"44\":1,\"67\":1,\"90\":1}}],[\"difference\",{\"1\":{\"39\":1,\"63\":1}}],[\"differense\",{\"1\":{\"35\":1}}],[\"different\",{\"1\":{\"1\":2,\"4\":1,\"6\":2,\"25\":1,\"27\":1,\"34\":1,\"35\":4,\"41\":1,\"53\":1,\"71\":1,\"73\":1,\"93\":1}}],[\"dict\",{\"1\":{\"24\":2,\"71\":1}}],[\"docker\",{\"1\":{\"67\":1}}],[\"documentation\",{\"1\":{\"4\":1,\"30\":1,\"35\":1,\"44\":1}}],[\"downtime\",{\"1\":{\"59\":1}}],[\"down\",{\"1\":{\"36\":2}}],[\"done\",{\"1\":{\"43\":1,\"76\":1,\"91\":1}}],[\"don\",{\"1\":{\"24\":1,\"59\":1,\"63\":1,\"66\":1,\"84\":1,\"90\":1,\"93\":1}}],[\"do\",{\"0\":{\"81\":1},\"1\":{\"3\":1,\"6\":2,\"18\":1,\"20\":1,\"27\":1,\"31\":1,\"32\":2,\"33\":2,\"49\":1,\"58\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"71\":1,\"72\":1,\"73\":1,\"76\":2,\"83\":2,\"93\":1}}],[\"doesn\",{\"1\":{\"1\":1,\"20\":2,\"28\":1,\"29\":1,\"38\":1,\"39\":1,\"41\":1,\"43\":1,\"49\":1,\"66\":1,\"69\":1,\"72\":1,\"81\":2,\"82\":1,\"91\":1}}],[\"nice\",{\"1\":{\"36\":1,\"79\":1}}],[\"named\",{\"1\":{\"50\":1,\"63\":1}}],[\"names\",{\"1\":{\"48\":2}}],[\"namespace\",{\"1\":{\"30\":1}}],[\"name=\",{\"1\":{\"33\":1,\"36\":1,\"48\":1,\"63\":3}}],[\"name\",{\"1\":{\"30\":2,\"36\":1,\"44\":1,\"47\":1,\"63\":3,\"66\":1,\"67\":2}}],[\"nats\",{\"0\":{\"15\":1},\"1\":{\"15\":2,\"65\":1}}],[\"necessary\",{\"1\":{\"66\":1}}],[\"never\",{\"1\":{\"66\":1}}],[\"network\",{\"1\":{\"66\":1,\"70\":1}}],[\"next\",{\"1\":{\"31\":1,\"75\":1}}],[\"new\",{\"1\":{\"23\":1,\"27\":5,\"30\":1,\"32\":1,\"33\":2,\"41\":1,\"46\":1,\"50\":2,\"53\":1,\"59\":1,\"60\":1,\"63\":2,\"67\":1,\"71\":1,\"73\":1,\"76\":2,\"87\":2}}],[\"needs\",{\"1\":{\"43\":1}}],[\"needed\",{\"1\":{\"32\":1,\"39\":1}}],[\"need\",{\"1\":{\"18\":1,\"20\":1,\"23\":1,\"27\":1,\"30\":2,\"35\":1,\"39\":1,\"41\":1,\"65\":1,\"66\":2,\"67\":4,\"72\":1,\"91\":1,\"93\":2}}],[\"normal\",{\"1\":{\"88\":1,\"92\":1}}],[\"noqa\",{\"1\":{\"76\":1}}],[\"non\",{\"1\":{\"70\":1}}],[\"none\",{\"1\":{\"20\":1,\"24\":7,\"27\":5,\"28\":2,\"30\":1,\"32\":3,\"33\":6,\"36\":1,\"39\":1,\"47\":1,\"48\":3,\"51\":1,\"63\":3,\"66\":1,\"67\":3,\"76\":2,\"80\":1}}],[\"now\",{\"1\":{\"32\":1,\"36\":1,\"40\":1,\"63\":5,\"66\":2,\"67\":4,\"72\":1,\"76\":2,\"80\":1,\"93\":2}}],[\"no\",{\"1\":{\"28\":1,\"38\":1,\"41\":1,\"57\":1,\"60\":2,\"62\":1,\"74\":1,\"84\":3}}],[\"note\",{\"1\":{\"32\":1,\"40\":1,\"51\":1,\"66\":1}}],[\"notice\",{\"1\":{\"24\":1}}],[\"not\",{\"0\":{\"44\":1},\"1\":{\"1\":1,\"3\":1,\"12\":1,\"21\":1,\"27\":1,\"32\":1,\"33\":3,\"36\":2,\"40\":3,\"55\":1,\"58\":1,\"63\":2,\"66\":3,\"67\":3,\"68\":1,\"70\":1,\"72\":1,\"73\":1,\"74\":2,\"75\":1,\"81\":1,\"91\":1,\"93\":3,\"94\":1}}],[\"number\",{\"1\":{\"10\":1,\"17\":1,\"29\":2,\"51\":1,\"60\":5,\"72\":1}}],[\"nutshell\",{\"0\":{\"1\":1}}],[\"n\",{\"1\":{\"6\":2,\"10\":2,\"72\":2}}],[\"fs\",{\"1\":{\"55\":1,\"62\":1}}],[\"fsd\",{\"1\":{\"50\":2,\"55\":1,\"62\":1}}],[\"f\",{\"1\":{\"51\":1,\"66\":2,\"67\":4}}],[\"further\",{\"1\":{\"66\":1}}],[\"fully\",{\"1\":{\"44\":1,\"91\":1}}],[\"fun\",{\"1\":{\"34\":1}}],[\"function\",{\"1\":{\"28\":1,\"32\":1,\"36\":6,\"38\":4,\"39\":1,\"40\":3,\"60\":1,\"63\":2,\"66\":4,\"67\":1,\"68\":1,\"72\":1,\"73\":2,\"76\":1,\"78\":1,\"80\":1,\"81\":2,\"82\":1,\"83\":1,\"84\":1,\"87\":1,\"92\":3,\"93\":2}}],[\"functionality\",{\"1\":{\"25\":1,\"43\":2,\"57\":1,\"58\":1}}],[\"functions\",{\"1\":{\"9\":1,\"17\":1,\"36\":2,\"40\":2,\"43\":2,\"44\":1,\"52\":1,\"68\":1,\"73\":2,\"79\":1,\"82\":1,\"88\":1,\"91\":1}}],[\"future\",{\"1\":{\"32\":1,\"76\":1}}],[\"fancier\",{\"1\":{\"66\":1}}],[\"fails\",{\"1\":{\"57\":1}}],[\"failed\",{\"1\":{\"51\":1}}],[\"factory\",{\"1\":{\"38\":1,\"40\":1}}],[\"faster\",{\"1\":{\"70\":1}}],[\"fastapi\",{\"0\":{\"40\":1},\"1\":{\"37\":1,\"40\":14,\"41\":8,\"79\":1,\"93\":1}}],[\"faststream\",{\"0\":{\"35\":1},\"1\":{\"35\":15}}],[\"false\",{\"1\":{\"32\":1}}],[\"favorite\",{\"1\":{\"2\":1,\"30\":1,\"34\":1}}],[\"fly\",{\"1\":{\"76\":1}}],[\"flow\",{\"1\":{\"52\":1}}],[\"float\",{\"1\":{\"29\":1}}],[\"flag\",{\"1\":{\"41\":1,\"75\":1}}],[\"flexible\",{\"1\":{\"1\":1}}],[\"finish\",{\"1\":{\"60\":1}}],[\"finds\",{\"1\":{\"24\":1}}],[\"find\",{\"1\":{\"7\":1,\"38\":1,\"40\":1,\"44\":1,\"50\":1,\"65\":1,\"66\":1,\"73\":1}}],[\"fits\",{\"1\":{\"65\":1}}],[\"fit\",{\"1\":{\"43\":1}}],[\"fixtures\",{\"1\":{\"93\":2}}],[\"fixture\",{\"1\":{\"39\":3,\"41\":5,\"91\":2,\"93\":3}}],[\"filter\",{\"1\":{\"73\":1}}],[\"filters\",{\"1\":{\"36\":1}}],[\"filled\",{\"1\":{\"38\":1}}],[\"files\",{\"1\":{\"55\":3,\"58\":2,\"62\":3}}],[\"file\",{\"1\":{\"36\":1,\"38\":1,\"40\":1,\"50\":1,\"58\":1,\"66\":1,\"67\":2,\"84\":1,\"91\":2}}],[\"field\",{\"1\":{\"27\":1,\"31\":1,\"74\":2}}],[\"fields\",{\"1\":{\"27\":1,\"28\":1,\"74\":2,\"80\":2}}],[\"first\",{\"0\":{\"75\":1,\"87\":1},\"1\":{\"3\":1,\"30\":1,\"38\":1,\"62\":2,\"67\":2,\"75\":2,\"87\":1}}],[\"frameworks\",{\"1\":{\"34\":1}}],[\"framework\",{\"0\":{\"34\":1},\"1\":{\"34\":1,\"37\":1,\"40\":1}}],[\"from\",{\"1\":{\"3\":1,\"4\":1,\"6\":1,\"10\":1,\"11\":1,\"17\":1,\"18\":1,\"23\":2,\"24\":2,\"27\":4,\"30\":3,\"32\":4,\"33\":3,\"35\":3,\"36\":8,\"37\":1,\"38\":2,\"40\":5,\"41\":2,\"46\":2,\"47\":1,\"49\":2,\"51\":2,\"52\":1,\"60\":1,\"63\":7,\"65\":2,\"66\":2,\"67\":6,\"68\":1,\"70\":1,\"71\":1,\"72\":4,\"73\":3,\"74\":1,\"75\":1,\"76\":6,\"78\":2,\"80\":1,\"86\":2,\"91\":1,\"92\":3,\"93\":4}}],[\"frustrated\",{\"1\":{\"3\":1}}],[\"few\",{\"1\":{\"75\":1}}],[\"feature\",{\"1\":{\"44\":1,\"58\":1,\"82\":1,\"84\":1}}],[\"features\",{\"1\":{\"1\":1,\"35\":1,\"57\":1}}],[\"fetching\",{\"1\":{\"32\":2}}],[\"fetch\",{\"1\":{\"22\":1,\"32\":2}}],[\"feel\",{\"1\":{\"3\":1}}],[\"focused\",{\"1\":{\"35\":2}}],[\"found\",{\"1\":{\"25\":1,\"51\":1,\"63\":1,\"66\":1,\"67\":2,\"94\":1}}],[\"following\",{\"1\":{\"24\":1,\"50\":1}}],[\"follow\",{\"1\":{\"4\":1}}],[\"folks\",{\"1\":{\"3\":1}}],[\"force\",{\"1\":{\"69\":1,\"81\":1}}],[\"form\",{\"1\":{\"47\":2}}],[\"formatter\",{\"1\":{\"71\":3}}],[\"formatters\",{\"0\":{\"71\":1},\"1\":{\"71\":3}}],[\"format\",{\"0\":{\"69\":1},\"1\":{\"24\":1,\"69\":4,\"70\":3,\"71\":2}}],[\"forget\",{\"1\":{\"24\":1,\"66\":1}}],[\"for\",{\"0\":{\"0\":1,\"13\":1},\"1\":{\"1\":2,\"3\":3,\"4\":1,\"7\":1,\"9\":1,\"10\":1,\"11\":2,\"17\":2,\"18\":2,\"20\":1,\"22\":1,\"23\":2,\"24\":1,\"27\":2,\"28\":2,\"29\":1,\"31\":1,\"33\":1,\"35\":5,\"37\":2,\"38\":1,\"39\":4,\"40\":1,\"41\":2,\"43\":3,\"46\":4,\"47\":2,\"48\":2,\"49\":1,\"51\":4,\"52\":1,\"53\":1,\"55\":2,\"56\":1,\"57\":1,\"59\":1,\"60\":6,\"61\":1,\"62\":1,\"63\":5,\"65\":1,\"66\":4,\"67\":2,\"70\":2,\"71\":1,\"72\":1,\"73\":2,\"74\":4,\"75\":2,\"76\":4,\"78\":1,\"80\":2,\"81\":5,\"82\":4,\"84\":1,\"87\":2,\"90\":2,\"93\":5}}],[\"msgpackserializer\",{\"1\":{\"70\":1}}],[\"msgpack\",{\"1\":{\"70\":2}}],[\"m\",{\"1\":{\"36\":1,\"66\":1}}],[\"mutate\",{\"1\":{\"93\":1}}],[\"much\",{\"1\":{\"43\":1}}],[\"multiple\",{\"0\":{\"73\":1},\"1\":{\"36\":1,\"44\":2,\"55\":1,\"62\":1,\"73\":1}}],[\"must\",{\"1\":{\"29\":2,\"31\":1,\"32\":2,\"33\":2,\"40\":1,\"46\":1,\"49\":1,\"67\":1,\"93\":1}}],[\"minutes=1\",{\"1\":{\"76\":2}}],[\"minutes=5\",{\"1\":{\"72\":1}}],[\"minutes\",{\"1\":{\"72\":1,\"76\":1}}],[\"minute\",{\"1\":{\"63\":1,\"75\":3}}],[\"minimal\",{\"1\":{\"32\":1,\"33\":1}}],[\"might\",{\"1\":{\"35\":1,\"44\":1,\"70\":1,\"71\":1,\"74\":1,\"75\":1}}],[\"middleware\",{\"0\":{\"17\":1,\"18\":1},\"1\":{\"17\":2,\"31\":3,\"51\":4}}],[\"middlewares\",{\"0\":{\"16\":1,\"31\":1,\"51\":1},\"1\":{\"7\":1,\"16\":2,\"17\":2,\"18\":1,\"26\":1,\"31\":4,\"44\":1,\"51\":4}}],[\"md\",{\"1\":{\"12\":1,\"21\":1,\"37\":1}}],[\"mymiddleware\",{\"1\":{\"51\":1}}],[\"myschedulesource\",{\"1\":{\"33\":1}}],[\"myresultbackend\",{\"1\":{\"32\":1}}],[\"mycommand\",{\"1\":{\"30\":1}}],[\"mybroker\",{\"1\":{\"27\":1,\"38\":1,\"50\":1,\"54\":1,\"56\":1,\"66\":1}}],[\"my\",{\"1\":{\"11\":1,\"24\":1,\"28\":1,\"30\":2,\"36\":4,\"38\":1,\"40\":1,\"47\":3,\"48\":11,\"50\":3,\"51\":2,\"54\":2,\"59\":1,\"61\":3,\"76\":7,\"81\":1,\"82\":1,\"84\":1}}],[\"merge\",{\"1\":{\"73\":5}}],[\"merging\",{\"1\":{\"3\":1}}],[\"me\",{\"1\":{\"72\":1}}],[\"means\",{\"1\":{\"41\":1}}],[\"meant\",{\"1\":{\"34\":1,\"93\":1}}],[\"mechanism\",{\"1\":{\"30\":1}}],[\"message\",{\"0\":{\"69\":1},\"1\":{\"27\":8,\"28\":3,\"29\":3,\"30\":1,\"31\":1,\"35\":1,\"36\":7,\"46\":1,\"47\":2,\"48\":2,\"51\":14,\"52\":3,\"60\":1,\"69\":3,\"70\":2,\"71\":3,\"76\":1}}],[\"messages\",{\"0\":{\"48\":1},\"1\":{\"10\":2,\"28\":1,\"36\":2,\"45\":2,\"46\":3,\"60\":1,\"63\":1,\"78\":1}}],[\"method\",{\"1\":{\"27\":3,\"28\":2,\"30\":1,\"31\":1,\"33\":5,\"46\":2,\"63\":1,\"66\":3,\"68\":1,\"76\":3,\"78\":1,\"93\":1}}],[\"methods\",{\"1\":{\"27\":2,\"46\":1,\"51\":1,\"66\":1,\"70\":1,\"71\":1,\"76\":3}}],[\"metrics\",{\"1\":{\"18\":4}}],[\"mark\",{\"1\":{\"40\":1,\"92\":2,\"93\":2}}],[\"maintained\",{\"1\":{\"44\":1}}],[\"main\",{\"1\":{\"36\":6,\"38\":3,\"40\":1,\"43\":1,\"46\":1,\"47\":2,\"48\":2,\"59\":1,\"63\":11,\"66\":5,\"67\":7,\"91\":1}}],[\"magic\",{\"1\":{\"27\":1,\"37\":1}}],[\"maximum\",{\"1\":{\"17\":1,\"60\":5}}],[\"max\",{\"1\":{\"17\":2,\"60\":4}}],[\"maybe\",{\"1\":{\"72\":1,\"90\":1}}],[\"may\",{\"1\":{\"10\":1,\"27\":1,\"31\":1,\"33\":4,\"46\":1,\"48\":1,\"52\":1,\"53\":1,\"55\":1,\"62\":1,\"66\":1,\"68\":1,\"72\":3,\"73\":1,\"76\":2,\"87\":1,\"92\":1,\"93\":1}}],[\"manner\",{\"1\":{\"43\":1}}],[\"many\",{\"1\":{\"10\":1,\"27\":1,\"40\":1,\"43\":2,\"72\":1,\"81\":1}}],[\"manually\",{\"1\":{\"5\":1,\"50\":1,\"76\":1,\"93\":2}}],[\"managing\",{\"1\":{\"4\":1}}],[\"manager\",{\"0\":{\"0\":1},\"1\":{\"1\":1,\"2\":1}}],[\"malware\",{\"1\":{\"3\":1}}],[\"makes\",{\"1\":{\"37\":1}}],[\"make\",{\"1\":{\"3\":2,\"28\":1,\"34\":1,\"37\":1,\"40\":4,\"43\":2,\"46\":1,\"80\":1}}],[\"most\",{\"1\":{\"46\":1}}],[\"mocked\",{\"1\":{\"38\":1,\"40\":1}}],[\"mock\",{\"1\":{\"38\":1}}],[\"modified\",{\"1\":{\"93\":2}}],[\"modify\",{\"1\":{\"51\":2,\"58\":2,\"91\":1,\"93\":4}}],[\"model\",{\"1\":{\"74\":1}}],[\"models\",{\"1\":{\"57\":1}}],[\"modern\",{\"1\":{\"1\":1}}],[\"module2\",{\"1\":{\"54\":1,\"61\":1}}],[\"module1\",{\"1\":{\"54\":1,\"61\":1}}],[\"module\",{\"1\":{\"50\":1,\"59\":1,\"61\":1,\"66\":1,\"70\":1,\"72\":3,\"73\":1,\"75\":1}}],[\"modules\",{\"1\":{\"24\":1,\"50\":3,\"54\":1,\"55\":1,\"66\":1}}],[\"modular\",{\"1\":{\"43\":1}}],[\"more\",{\"1\":{\"1\":1,\"12\":1,\"21\":1,\"23\":1,\"30\":1,\"35\":5,\"36\":1,\"37\":1,\"38\":1,\"50\":1,\"53\":1,\"63\":1,\"66\":2,\"67\":2,\"72\":1,\"73\":1,\"84\":1,\"87\":1}}],[\"saved\",{\"1\":{\"51\":1,\"56\":2,\"60\":2}}],[\"save\",{\"1\":{\"51\":1}}],[\"same\",{\"1\":{\"1\":1,\"9\":1,\"17\":1,\"29\":1,\"30\":1,\"36\":1,\"38\":4,\"40\":1,\"67\":1,\"81\":1,\"91\":1}}],[\"script\",{\"1\":{\"67\":1}}],[\"scenario\",{\"1\":{\"66\":1}}],[\"scenarios\",{\"1\":{\"49\":1}}],[\"scope=\",{\"1\":{\"93\":1}}],[\"scope\",{\"1\":{\"63\":2}}],[\"scheduling\",{\"0\":{\"72\":1,\"76\":1},\"1\":{\"23\":1,\"35\":1,\"61\":1,\"76\":1}}],[\"schedule=\",{\"1\":{\"24\":1,\"63\":1,\"72\":1}}],[\"scheduledtaskcancellederror\",{\"1\":{\"33\":1}}],[\"scheduledtask\",{\"1\":{\"33\":6,\"74\":2}}],[\"scheduled\",{\"1\":{\"24\":1,\"33\":1,\"76\":2}}],[\"schedulers\",{\"1\":{\"76\":1}}],[\"scheduler>\",{\"1\":{\"61\":1}}],[\"scheduler\",{\"0\":{\"61\":1},\"1\":{\"23\":1,\"24\":2,\"35\":1,\"53\":1,\"61\":4,\"62\":3,\"63\":11,\"72\":11,\"73\":1,\"74\":1,\"75\":6,\"76\":4}}],[\"schedulesources\",{\"1\":{\"76\":1}}],[\"schedulesource\",{\"1\":{\"33\":3}}],[\"schedules\",{\"1\":{\"23\":2,\"33\":2,\"44\":1,\"72\":1,\"73\":3,\"76\":3}}],[\"schedule\",{\"0\":{\"22\":1,\"33\":1},\"1\":{\"7\":1,\"22\":2,\"23\":1,\"24\":3,\"26\":1,\"33\":15,\"61\":1,\"63\":2,\"72\":4,\"73\":3,\"74\":1,\"75\":1,\"76\":24}}],[\"switching\",{\"1\":{\"45\":1}}],[\"smooth\",{\"1\":{\"40\":1}}],[\"smaller\",{\"1\":{\"70\":1}}],[\"small\",{\"1\":{\"10\":1}}],[\"sleep\",{\"1\":{\"36\":1,\"47\":1,\"48\":3,\"51\":1,\"63\":2,\"72\":1}}],[\"system\",{\"1\":{\"46\":2,\"50\":1,\"84\":1}}],[\"systems\",{\"1\":{\"35\":1,\"60\":1}}],[\"sys\",{\"1\":{\"36\":1}}],[\"sync\",{\"1\":{\"31\":1,\"51\":2,\"60\":1,\"68\":1}}],[\"synchronously\",{\"1\":{\"1\":1}}],[\"synchronous\",{\"1\":{\"1\":1,\"44\":1,\"68\":1}}],[\"skipping\",{\"0\":{\"75\":1}}],[\"skips\",{\"1\":{\"62\":1}}],[\"skip\",{\"1\":{\"32\":1,\"62\":2,\"75\":2}}],[\"still\",{\"1\":{\"63\":1,\"66\":2,\"90\":1}}],[\"stop\",{\"1\":{\"68\":1}}],[\"stops\",{\"1\":{\"52\":1}}],[\"storage\",{\"1\":{\"23\":1,\"32\":1}}],[\"stored\",{\"1\":{\"45\":1,\"50\":1,\"80\":1}}],[\"store\",{\"1\":{\"19\":1,\"20\":1,\"32\":1,\"49\":1,\"51\":1,\"67\":2,\"76\":1,\"80\":1}}],[\"statement\",{\"1\":{\"91\":1}}],[\"state\",{\"0\":{\"77\":1,\"78\":1},\"1\":{\"38\":2,\"40\":1,\"78\":1,\"80\":7,\"86\":1}}],[\"started\",{\"0\":{\"64\":1}}],[\"start\",{\"1\":{\"36\":1,\"39\":1,\"50\":2,\"62\":1,\"67\":2,\"72\":2,\"75\":4,\"78\":1}}],[\"starts\",{\"1\":{\"36\":1}}],[\"starting\",{\"1\":{\"32\":1,\"33\":1,\"36\":1}}],[\"startup\",{\"1\":{\"27\":4,\"32\":1,\"33\":1,\"34\":1,\"36\":3,\"37\":3,\"38\":2,\"40\":4,\"44\":1,\"63\":3,\"66\":4,\"67\":4,\"76\":1,\"78\":5,\"80\":3,\"81\":1,\"83\":2}}],[\"stdout\",{\"1\":{\"36\":1}}],[\"structure\",{\"1\":{\"45\":1,\"50\":1,\"66\":1,\"70\":1}}],[\"struggle\",{\"1\":{\"3\":1}}],[\"stream=sys\",{\"1\":{\"36\":1}}],[\"string\",{\"1\":{\"24\":1,\"27\":1,\"40\":1,\"74\":1}}],[\"str\",{\"1\":{\"24\":4,\"30\":1,\"32\":3,\"33\":1,\"76\":1,\"92\":3,\"93\":2}}],[\"size\",{\"1\":{\"70\":1}}],[\"single\",{\"1\":{\"60\":1}}],[\"since\",{\"1\":{\"3\":1,\"30\":2,\"39\":1,\"72\":1,\"76\":1,\"80\":1,\"81\":1,\"90\":1,\"91\":1,\"92\":1}}],[\"signal\",{\"1\":{\"59\":1}}],[\"signatures\",{\"1\":{\"57\":1}}],[\"signature\",{\"1\":{\"51\":1}}],[\"sighup\",{\"1\":{\"59\":1}}],[\"simultaneously\",{\"1\":{\"60\":1}}],[\"similar\",{\"1\":{\"44\":1,\"63\":1,\"79\":1}}],[\"simply\",{\"1\":{\"37\":1,\"58\":1,\"61\":1,\"73\":1}}],[\"simpleretrymiddleware\",{\"1\":{\"17\":2,\"51\":1}}],[\"simple\",{\"0\":{\"17\":1},\"1\":{\"34\":1,\"36\":1,\"45\":1,\"50\":1,\"66\":1,\"92\":1}}],[\"side\",{\"1\":{\"36\":1,\"45\":2,\"51\":2}}],[\"shipped\",{\"1\":{\"53\":1}}],[\"shifted\",{\"1\":{\"30\":1}}],[\"shutting\",{\"1\":{\"36\":2}}],[\"shutdown\",{\"1\":{\"27\":4,\"32\":2,\"33\":2,\"34\":1,\"36\":3,\"40\":3,\"44\":1,\"60\":3,\"63\":3,\"66\":1,\"67\":2,\"78\":2,\"83\":1}}],[\"show\",{\"1\":{\"30\":1}}],[\"shown\",{\"1\":{\"18\":1,\"72\":1}}],[\"shortening\",{\"1\":{\"47\":1}}],[\"short\",{\"1\":{\"30\":1}}],[\"shoule\",{\"1\":{\"24\":2}}],[\"should\",{\"1\":{\"3\":1,\"28\":2,\"30\":1,\"38\":1,\"40\":2,\"60\":1,\"70\":2,\"72\":1,\"74\":1,\"75\":3,\"92\":2,\"93\":1}}],[\"shared\",{\"0\":{\"11\":2},\"1\":{\"11\":6}}],[\"specify\",{\"1\":{\"36\":1,\"40\":1,\"50\":1,\"54\":1,\"63\":1,\"74\":1}}],[\"specified\",{\"1\":{\"24\":2,\"32\":1,\"55\":1,\"62\":1}}],[\"specific\",{\"1\":{\"16\":1,\"24\":1,\"35\":1,\"69\":1,\"74\":3,\"76\":1}}],[\"special\",{\"1\":{\"9\":1,\"11\":1}}],[\"speedup\",{\"1\":{\"6\":1}}],[\"suggest\",{\"1\":{\"76\":1,\"79\":1,\"91\":1,\"93\":1}}],[\"successfully\",{\"1\":{\"63\":3,\"84\":1}}],[\"such\",{\"1\":{\"27\":1,\"30\":1,\"40\":2,\"58\":1,\"92\":1}}],[\"subdependencies\",{\"1\":{\"81\":1}}],[\"subclass\",{\"1\":{\"70\":1,\"71\":1}}],[\"subclassing\",{\"1\":{\"51\":1}}],[\"subcommand\",{\"1\":{\"30\":1}}],[\"subcommands\",{\"1\":{\"30\":2,\"53\":1}}],[\"submodule\",{\"1\":{\"50\":2}}],[\"subscribes\",{\"1\":{\"46\":1}}],[\"support\",{\"1\":{\"28\":1,\"33\":1,\"60\":1,\"76\":1}}],[\"supports\",{\"1\":{\"28\":1,\"56\":1,\"58\":2,\"70\":1,\"85\":1}}],[\"supported\",{\"1\":{\"7\":1,\"8\":1}}],[\"super\",{\"1\":{\"25\":1,\"27\":4,\"31\":1}}],[\"suitable\",{\"1\":{\"10\":1,\"93\":1}}],[\"sure\",{\"1\":{\"3\":1,\"48\":1}}],[\"solve\",{\"1\":{\"35\":1,\"44\":1,\"72\":1}}],[\"solves\",{\"1\":{\"3\":1}}],[\"sooner\",{\"1\":{\"29\":1}}],[\"somewhere\",{\"1\":{\"40\":1,\"91\":1}}],[\"sometimes\",{\"1\":{\"32\":1,\"55\":1,\"72\":1,\"73\":1,\"74\":2,\"76\":1}}],[\"something\",{\"1\":{\"3\":1,\"32\":2,\"33\":2,\"36\":1,\"38\":1,\"43\":1,\"48\":2,\"81\":1,\"83\":2}}],[\"some\",{\"1\":{\"27\":1,\"31\":2,\"48\":1,\"49\":1,\"51\":1,\"52\":1,\"53\":1,\"66\":1,\"67\":1,\"70\":1,\"72\":2,\"73\":1,\"75\":1,\"76\":1}}],[\"source\",{\"0\":{\"33\":1},\"1\":{\"22\":1,\"23\":4,\"24\":2,\"33\":8,\"73\":1,\"74\":1,\"75\":1,\"76\":13}}],[\"sources=\",{\"1\":{\"23\":1,\"24\":1,\"72\":1,\"76\":1}}],[\"sources\",{\"0\":{\"22\":1,\"73\":1},\"1\":{\"7\":1,\"23\":1,\"24\":2,\"26\":1,\"33\":1,\"63\":1,\"72\":3,\"73\":4,\"76\":3}}],[\"so\",{\"1\":{\"18\":1,\"28\":1,\"31\":1,\"35\":1,\"36\":1,\"38\":1,\"40\":1,\"63\":1,\"72\":1,\"73\":1,\"93\":1}}],[\"searches\",{\"1\":{\"55\":1,\"62\":1}}],[\"search\",{\"1\":{\"53\":1,\"55\":1,\"62\":1,\"65\":1}}],[\"seen\",{\"1\":{\"44\":1}}],[\"see\",{\"1\":{\"36\":1,\"40\":1,\"45\":1,\"67\":1,\"76\":1,\"78\":1,\"82\":2,\"91\":1}}],[\"sequence\",{\"1\":{\"30\":2,\"45\":1}}],[\"sent\",{\"1\":{\"29\":1,\"33\":4,\"45\":1,\"47\":1,\"51\":3}}],[\"sends\",{\"1\":{\"72\":1}}],[\"sending\",{\"1\":{\"40\":1,\"72\":1}}],[\"send\",{\"1\":{\"1\":1,\"24\":1,\"27\":2,\"33\":2,\"36\":3,\"43\":1,\"44\":1,\"51\":4,\"59\":1,\"63\":3,\"66\":3,\"67\":2,\"70\":1,\"71\":2,\"91\":1}}],[\"seriazier\",{\"1\":{\"71\":1}}],[\"serialization\",{\"1\":{\"70\":1}}],[\"serializes\",{\"1\":{\"71\":1}}],[\"serializer\",{\"1\":{\"70\":5,\"71\":1}}],[\"serializers\",{\"0\":{\"70\":1},\"1\":{\"44\":1,\"70\":4}}],[\"serialize\",{\"1\":{\"70\":1}}],[\"serializing\",{\"1\":{\"27\":1}}],[\"server=server\",{\"1\":{\"39\":1}}],[\"server\",{\"1\":{\"18\":2,\"39\":4,\"43\":1}}],[\"self\",{\"1\":{\"27\":5,\"28\":2,\"30\":1,\"31\":2,\"32\":5,\"33\":7,\"51\":2}}],[\"second\",{\"1\":{\"38\":1,\"47\":3,\"63\":1}}],[\"seconds=10\",{\"1\":{\"76\":1}}],[\"seconds=5\",{\"1\":{\"76\":2}}],[\"seconds=2\",{\"1\":{\"63\":1}}],[\"seconds\",{\"1\":{\"19\":1,\"29\":1,\"60\":1,\"66\":2,\"67\":4,\"72\":1,\"75\":1}}],[\"section\",{\"1\":{\"7\":1,\"8\":1,\"23\":1,\"50\":1,\"61\":1,\"66\":1,\"67\":1,\"72\":1}}],[\"separate\",{\"1\":{\"12\":1,\"21\":1,\"66\":1}}],[\"several\",{\"1\":{\"3\":1,\"16\":1,\"29\":1,\"37\":1,\"76\":1}}],[\"sets\",{\"1\":{\"60\":1,\"93\":1}}],[\"setup\",{\"0\":{\"90\":1},\"1\":{\"36\":1}}],[\"settings\",{\"1\":{\"5\":1}}],[\"setting\",{\"0\":{\"4\":1},\"1\":{\"36\":1}}],[\"set\",{\"1\":{\"1\":1,\"27\":1,\"28\":2,\"32\":2,\"60\":2,\"62\":1,\"63\":1,\"66\":1,\"90\":2}}],[\"s\",{\"1\":{\"1\":2,\"10\":1,\"11\":1,\"29\":3,\"30\":1,\"31\":1,\"32\":3,\"33\":4,\"34\":1,\"35\":1,\"36\":4,\"37\":1,\"38\":4,\"39\":2,\"40\":3,\"41\":1,\"44\":1,\"45\":1,\"48\":1,\"50\":2,\"52\":2,\"55\":2,\"58\":1,\"59\":1,\"60\":1,\"62\":1,\"63\":2,\"66\":5,\"67\":4,\"72\":4,\"73\":2,\"74\":2,\"76\":7,\"78\":1,\"79\":2,\"80\":1,\"81\":1,\"82\":4,\"88\":1,\"91\":2,\"92\":3,\"93\":8}}],[\"tzinfo\",{\"1\":{\"76\":1}}],[\"t201\",{\"1\":{\"76\":1}}],[\"tp\",{\"1\":{\"55\":1,\"62\":1}}],[\"tkq\",{\"1\":{\"36\":1}}],[\"transaction\",{\"1\":{\"84\":1}}],[\"treated\",{\"1\":{\"81\":1}}],[\"try\",{\"1\":{\"34\":1,\"40\":1,\"45\":1,\"51\":1,\"63\":3,\"79\":1,\"93\":1}}],[\"true\",{\"1\":{\"11\":1,\"27\":1,\"32\":1,\"72\":1,\"91\":1}}],[\"till\",{\"1\":{\"63\":1}}],[\"tip\",{\"1\":{\"32\":1,\"45\":1,\"65\":1,\"72\":1,\"78\":1}}],[\"timeoutexception\",{\"1\":{\"68\":1}}],[\"timeouts\",{\"0\":{\"68\":1},\"1\":{\"68\":1}}],[\"timeout=2\",{\"1\":{\"66\":1,\"67\":2}}],[\"timeout\",{\"1\":{\"60\":2,\"68\":1}}],[\"timezones\",{\"0\":{\"74\":1}}],[\"timezone\",{\"1\":{\"24\":1,\"74\":2}}],[\"timedelta\",{\"1\":{\"24\":1,\"63\":1,\"72\":1,\"74\":1,\"76\":3}}],[\"times\",{\"1\":{\"10\":1,\"17\":1,\"55\":1,\"62\":1,\"72\":1,\"81\":1}}],[\"time\",{\"1\":{\"3\":2,\"19\":1,\"24\":5,\"47\":1,\"58\":1,\"60\":2,\"63\":3,\"66\":1,\"67\":3,\"68\":1,\"72\":1,\"73\":1,\"74\":3,\"76\":4,\"88\":1}}],[\"typos\",{\"1\":{\"80\":1}}],[\"typing\",{\"1\":{\"27\":1,\"30\":1,\"32\":1,\"33\":1,\"40\":1}}],[\"types\",{\"1\":{\"36\":2,\"38\":1,\"40\":2,\"56\":1,\"57\":1,\"66\":1,\"80\":1}}],[\"typevar\",{\"1\":{\"32\":2}}],[\"typer\",{\"1\":{\"30\":1}}],[\"type\",{\"0\":{\"57\":1},\"1\":{\"10\":1,\"24\":6,\"27\":1,\"32\":2,\"49\":1,\"56\":2,\"57\":3,\"60\":2,\"71\":1,\"80\":1,\"82\":1,\"85\":1}}],[\"tell\",{\"1\":{\"90\":1}}],[\"telegram\",{\"1\":{\"36\":1}}],[\"teardown\",{\"1\":{\"83\":1}}],[\"terms\",{\"1\":{\"74\":1}}],[\"terminal\",{\"1\":{\"50\":1,\"66\":1}}],[\"template\",{\"1\":{\"27\":1}}],[\"testclient\",{\"1\":{\"39\":2}}],[\"test=\",{\"1\":{\"30\":1}}],[\"testings\",{\"1\":{\"6\":1}}],[\"testing\",{\"0\":{\"6\":1,\"39\":1,\"41\":1,\"88\":1,\"92\":1},\"1\":{\"41\":3,\"90\":2,\"91\":1}}],[\"test\",{\"1\":{\"3\":1,\"6\":1,\"17\":1,\"30\":9,\"39\":4,\"41\":1,\"50\":5,\"92\":5,\"93\":6}}],[\"testserver\",{\"1\":{\"39\":2}}],[\"tests\",{\"0\":{\"91\":1},\"1\":{\"3\":1,\"6\":1,\"39\":2,\"41\":2,\"88\":2,\"90\":1,\"92\":1,\"93\":2}}],[\"two\",{\"1\":{\"27\":1,\"34\":1,\"38\":1,\"40\":2,\"43\":1,\"46\":1,\"50\":1,\"53\":1,\"55\":1,\"73\":1,\"86\":1}}],[\"takskiq\",{\"1\":{\"85\":1}}],[\"take\",{\"1\":{\"38\":2,\"50\":1,\"51\":1,\"70\":1,\"71\":1}}],[\"takes\",{\"1\":{\"3\":1,\"27\":1,\"28\":1,\"38\":1,\"40\":1}}],[\"tab\",{\"1\":{\"80\":1}}],[\"table\",{\"1\":{\"44\":1}}],[\"target\",{\"1\":{\"57\":1}}],[\"tasks\",{\"0\":{\"11\":1,\"66\":1,\"72\":1,\"92\":1},\"1\":{\"1\":1,\"9\":2,\"10\":1,\"11\":4,\"22\":1,\"24\":1,\"29\":1,\"31\":1,\"33\":3,\"35\":2,\"36\":2,\"38\":1,\"40\":2,\"41\":1,\"43\":1,\"44\":1,\"48\":1,\"50\":7,\"54\":1,\"55\":5,\"57\":1,\"58\":1,\"60\":8,\"61\":2,\"62\":4,\"63\":5,\"66\":2,\"67\":1,\"72\":3,\"73\":2,\"74\":1,\"75\":3,\"76\":3,\"80\":1,\"84\":1,\"88\":1,\"91\":1,\"92\":1,\"93\":2}}],[\"taskiqevents\",{\"1\":{\"80\":1}}],[\"taskiqdependency\",{\"1\":{\"82\":1}}],[\"taskiqdependencies\",{\"1\":{\"79\":1}}],[\"taskiqdepends\",{\"1\":{\"36\":2,\"40\":4,\"76\":1,\"81\":1}}],[\"taskiqstate\",{\"1\":{\"78\":1,\"80\":1,\"86\":2}}],[\"taskiqserializer\",{\"1\":{\"69\":1,\"70\":1}}],[\"taskiqscheduler\",{\"1\":{\"23\":2,\"24\":2,\"63\":2,\"72\":3,\"73\":1,\"76\":2}}],[\"taskiqformatter\",{\"1\":{\"69\":1,\"71\":1}}],[\"taskiqtask\",{\"1\":{\"66\":1}}],[\"taskiqmessage\",{\"1\":{\"51\":4}}],[\"taskiqmiddleware\",{\"1\":{\"31\":1,\"51\":3}}],[\"taskiqresult\",{\"1\":{\"32\":3,\"49\":1}}],[\"taskiqcmd\",{\"1\":{\"30\":3}}],[\"taskiq\",{\"0\":{\"1\":1,\"25\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"40\":1,\"43\":1,\"69\":1,\"88\":1},\"1\":{\"1\":1,\"2\":2,\"3\":1,\"4\":1,\"7\":1,\"10\":2,\"11\":1,\"12\":1,\"13\":2,\"14\":2,\"15\":2,\"16\":1,\"17\":1,\"18\":2,\"21\":3,\"23\":3,\"24\":2,\"25\":2,\"27\":2,\"28\":1,\"30\":6,\"31\":3,\"32\":3,\"33\":2,\"34\":2,\"35\":10,\"36\":16,\"38\":4,\"39\":3,\"40\":9,\"41\":3,\"43\":5,\"44\":2,\"45\":1,\"46\":2,\"47\":1,\"49\":2,\"50\":7,\"51\":4,\"53\":4,\"54\":1,\"55\":1,\"56\":2,\"57\":2,\"58\":3,\"59\":1,\"61\":2,\"63\":10,\"65\":4,\"66\":4,\"67\":15,\"69\":1,\"70\":4,\"71\":1,\"72\":7,\"73\":1,\"74\":1,\"75\":2,\"76\":2,\"78\":1,\"79\":1,\"84\":1,\"85\":1,\"86\":3,\"87\":2,\"88\":1,\"91\":2,\"92\":2,\"93\":5}}],[\"task\",{\"0\":{\"0\":1},\"1\":{\"1\":1,\"11\":4,\"17\":5,\"24\":9,\"29\":1,\"31\":1,\"32\":10,\"33\":10,\"36\":9,\"38\":1,\"40\":2,\"44\":2,\"46\":1,\"47\":12,\"48\":15,\"50\":1,\"51\":2,\"52\":4,\"55\":1,\"56\":3,\"57\":3,\"60\":1,\"62\":1,\"63\":51,\"66\":9,\"67\":15,\"68\":3,\"71\":1,\"72\":7,\"73\":2,\"74\":2,\"75\":1,\"76\":11,\"81\":1,\"82\":1,\"83\":3,\"92\":8,\"93\":6}}],[\"thrown\",{\"1\":{\"60\":1}}],[\"throw\",{\"1\":{\"57\":1}}],[\"throughout\",{\"1\":{\"63\":1}}],[\"through\",{\"1\":{\"52\":1}}],[\"three\",{\"1\":{\"36\":1,\"56\":1}}],[\"threads\",{\"1\":{\"60\":2}}],[\"threadpool\",{\"1\":{\"60\":1}}],[\"thread\",{\"1\":{\"9\":1}}],[\"than\",{\"1\":{\"35\":1,\"66\":1,\"70\":1,\"72\":1}}],[\"that\",{\"1\":{\"3\":1,\"6\":1,\"17\":2,\"18\":1,\"28\":1,\"30\":3,\"33\":3,\"34\":1,\"35\":2,\"36\":4,\"38\":2,\"39\":1,\"40\":4,\"41\":1,\"43\":1,\"44\":2,\"46\":1,\"47\":1,\"48\":1,\"50\":1,\"51\":1,\"52\":2,\"55\":1,\"57\":1,\"58\":1,\"59\":1,\"65\":1,\"66\":3,\"67\":4,\"71\":1,\"72\":3,\"73\":1,\"74\":3,\"75\":1,\"76\":5,\"79\":1,\"80\":1,\"84\":1,\"85\":1,\"90\":2,\"92\":2,\"93\":3}}],[\"think\",{\"1\":{\"93\":1}}],[\"things\",{\"1\":{\"34\":1,\"40\":1,\"46\":1,\"81\":1}}],[\"thing\",{\"1\":{\"6\":1,\"41\":1}}],[\"this\",{\"1\":{\"3\":1,\"4\":2,\"7\":1,\"8\":1,\"9\":2,\"10\":4,\"11\":4,\"17\":2,\"18\":1,\"19\":1,\"20\":2,\"21\":2,\"23\":2,\"24\":3,\"27\":1,\"29\":2,\"30\":2,\"32\":1,\"33\":9,\"35\":1,\"36\":10,\"37\":1,\"38\":8,\"39\":3,\"40\":5,\"41\":4,\"44\":1,\"45\":1,\"47\":3,\"48\":2,\"50\":2,\"51\":1,\"52\":3,\"54\":1,\"55\":2,\"56\":1,\"57\":2,\"58\":5,\"59\":1,\"60\":3,\"62\":3,\"63\":5,\"66\":4,\"67\":3,\"68\":1,\"69\":1,\"72\":3,\"73\":1,\"74\":1,\"75\":4,\"76\":3,\"78\":4,\"79\":1,\"80\":4,\"81\":7,\"82\":1,\"83\":3,\"84\":2,\"87\":1,\"88\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":5}}],[\"therefore\",{\"1\":{\"80\":1}}],[\"there\",{\"1\":{\"40\":1}}],[\"their\",{\"1\":{\"40\":1,\"63\":1}}],[\"then\",{\"1\":{\"39\":1,\"75\":1}}],[\"they\",{\"1\":{\"18\":1,\"35\":1,\"51\":1,\"75\":2,\"82\":1}}],[\"theme\",{\"1\":{\"45\":2}}],[\"them\",{\"1\":{\"12\":1,\"27\":1,\"29\":2,\"37\":1,\"48\":1,\"63\":3,\"72\":1,\"73\":2,\"88\":1}}],[\"these\",{\"1\":{\"11\":1,\"12\":2,\"22\":1,\"25\":1,\"29\":1,\"35\":1,\"40\":1,\"74\":1,\"76\":2,\"78\":1}}],[\"the\",{\"1\":{\"1\":1,\"3\":2,\"4\":2,\"6\":1,\"7\":1,\"9\":2,\"10\":4,\"12\":1,\"17\":3,\"21\":1,\"24\":9,\"25\":1,\"27\":7,\"28\":2,\"29\":6,\"30\":6,\"31\":2,\"32\":2,\"33\":3,\"35\":3,\"36\":15,\"37\":4,\"38\":10,\"39\":3,\"40\":6,\"43\":4,\"44\":1,\"45\":4,\"46\":10,\"47\":3,\"49\":1,\"50\":5,\"51\":14,\"52\":6,\"54\":1,\"55\":1,\"56\":5,\"57\":5,\"58\":1,\"59\":1,\"60\":3,\"62\":2,\"63\":23,\"65\":4,\"66\":22,\"67\":25,\"68\":2,\"69\":2,\"70\":8,\"71\":5,\"72\":8,\"73\":4,\"74\":4,\"75\":8,\"76\":14,\"78\":9,\"79\":2,\"80\":9,\"81\":14,\"82\":4,\"83\":3,\"84\":1,\"87\":2,\"90\":1,\"91\":6,\"93\":4}}],[\"top\",{\"1\":{\"44\":1}}],[\"took\",{\"1\":{\"66\":2,\"67\":4}}],[\"too\",{\"1\":{\"40\":1,\"82\":1}}],[\"tools\",{\"1\":{\"59\":1}}],[\"tool\",{\"1\":{\"30\":1}}],[\"token\",{\"1\":{\"36\":1}}],[\"token=\",{\"1\":{\"36\":1}}],[\"total\",{\"1\":{\"10\":1,\"72\":1}}],[\"tox\",{\"1\":{\"6\":4}}],[\"together\",{\"1\":{\"3\":1,\"73\":1}}],[\"to\",{\"1\":{\"1\":1,\"3\":2,\"4\":2,\"5\":1,\"6\":5,\"9\":1,\"10\":2,\"11\":4,\"16\":1,\"17\":5,\"18\":2,\"19\":1,\"22\":1,\"23\":3,\"24\":8,\"25\":1,\"27\":6,\"28\":1,\"30\":7,\"31\":4,\"32\":7,\"33\":17,\"34\":4,\"35\":5,\"36\":13,\"37\":5,\"38\":6,\"39\":5,\"40\":9,\"41\":2,\"43\":7,\"44\":1,\"45\":2,\"46\":3,\"47\":5,\"48\":3,\"49\":1,\"50\":11,\"51\":3,\"52\":5,\"53\":2,\"54\":3,\"55\":1,\"57\":4,\"58\":5,\"59\":2,\"60\":8,\"61\":4,\"62\":3,\"63\":14,\"65\":1,\"66\":11,\"67\":11,\"68\":4,\"69\":1,\"70\":6,\"71\":6,\"72\":9,\"73\":8,\"74\":4,\"75\":2,\"76\":14,\"78\":4,\"79\":2,\"80\":1,\"81\":5,\"83\":3,\"84\":6,\"85\":1,\"87\":4,\"88\":3,\"90\":3,\"91\":3,\"92\":2,\"93\":8}}],[\"t\",{\"1\":{\"1\":2,\"20\":2,\"24\":1,\"28\":1,\"29\":1,\"38\":1,\"39\":1,\"41\":1,\"43\":1,\"44\":1,\"47\":1,\"49\":1,\"51\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"63\":2,\"66\":2,\"67\":1,\"69\":1,\"72\":1,\"76\":1,\"79\":1,\"80\":2,\"81\":2,\"82\":1,\"84\":1,\"90\":1,\"91\":1,\"93\":1}}],[\"cwd\",{\"1\":{\"93\":2}}],[\"cbor\",{\"1\":{\"70\":1}}],[\"cborserializer\",{\"1\":{\"70\":1}}],[\"cmd\",{\"1\":{\"30\":2}}],[\"child\",{\"1\":{\"60\":1}}],[\"changing\",{\"1\":{\"51\":1}}],[\"changed\",{\"1\":{\"69\":1}}],[\"change\",{\"1\":{\"47\":2,\"50\":1,\"67\":1}}],[\"channel\",{\"1\":{\"28\":1,\"46\":1}}],[\"chat\",{\"1\":{\"36\":3}}],[\"check\",{\"1\":{\"32\":2,\"36\":1,\"66\":1,\"72\":1,\"74\":1,\"75\":1}}],[\"choose\",{\"1\":{\"10\":1}}],[\"creation\",{\"1\":{\"63\":2}}],[\"creating\",{\"1\":{\"39\":1,\"43\":1,\"69\":1}}],[\"creates\",{\"1\":{\"39\":1,\"46\":1}}],[\"createdschedule\",{\"1\":{\"76\":1}}],[\"created\",{\"1\":{\"30\":1,\"37\":2,\"38\":1,\"40\":1,\"44\":1,\"63\":2}}],[\"create\",{\"1\":{\"3\":2,\"11\":1,\"32\":1,\"33\":1,\"36\":1,\"37\":1,\"39\":1,\"63\":6,\"66\":1,\"80\":1,\"85\":1}}],[\"critical\",{\"1\":{\"32\":1,\"46\":1}}],[\"cron=\",{\"1\":{\"33\":1}}],[\"crontab\",{\"1\":{\"24\":1}}],[\"cron\",{\"1\":{\"24\":7,\"63\":1,\"72\":1,\"74\":3,\"76\":3}}],[\"custom\",{\"0\":{\"12\":1},\"1\":{\"39\":1,\"41\":2,\"44\":1,\"48\":1,\"60\":2,\"62\":1,\"73\":1,\"93\":2}}],[\"currently\",{\"1\":{\"22\":1,\"73\":1,\"76\":1,\"90\":1}}],[\"current\",{\"1\":{\"9\":1,\"22\":1,\"31\":1,\"32\":1,\"36\":1,\"37\":1,\"38\":3,\"39\":1,\"50\":1,\"52\":1,\"55\":2,\"60\":1,\"62\":1,\"63\":3,\"80\":1}}],[\"came\",{\"1\":{\"93\":1}}],[\"cached\",{\"1\":{\"81\":2}}],[\"cache\",{\"1\":{\"81\":1}}],[\"cache=false\",{\"1\":{\"81\":1}}],[\"case\",{\"1\":{\"75\":1,\"76\":1,\"84\":1}}],[\"cases\",{\"1\":{\"20\":1,\"43\":1,\"51\":1}}],[\"cast\",{\"1\":{\"57\":2}}],[\"casts\",{\"0\":{\"57\":1},\"1\":{\"57\":1}}],[\"caught\",{\"1\":{\"51\":1}}],[\"calculate\",{\"1\":{\"43\":1}}],[\"calling\",{\"1\":{\"52\":1,\"66\":1,\"68\":1,\"76\":1,\"93\":1}}],[\"called\",{\"1\":{\"40\":1,\"53\":1,\"74\":1,\"78\":2,\"87\":1,\"93\":2}}],[\"calls\",{\"1\":{\"36\":2}}],[\"call\",{\"1\":{\"27\":1,\"31\":1,\"36\":2,\"38\":1,\"39\":1,\"40\":2,\"46\":1,\"47\":1,\"57\":1,\"66\":5,\"67\":1,\"72\":1,\"76\":1,\"78\":1,\"92\":2}}],[\"capable\",{\"1\":{\"23\":1}}],[\"careful\",{\"1\":{\"10\":1,\"20\":1,\"72\":2}}],[\"cancelled\",{\"1\":{\"63\":2}}],[\"cancellederror\",{\"1\":{\"63\":3}}],[\"cancel\",{\"1\":{\"63\":3}}],[\"cancels\",{\"1\":{\"33\":1}}],[\"cancelation\",{\"1\":{\"33\":1}}],[\"cannot\",{\"1\":{\"11\":1,\"20\":1,\"40\":1,\"45\":1,\"49\":1,\"60\":1,\"66\":1,\"80\":2,\"81\":1}}],[\"can\",{\"1\":{\"2\":1,\"4\":1,\"5\":1,\"6\":3,\"7\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":2,\"17\":1,\"18\":3,\"21\":2,\"24\":4,\"25\":2,\"27\":3,\"28\":2,\"30\":4,\"31\":2,\"32\":1,\"33\":1,\"35\":4,\"36\":4,\"37\":1,\"38\":5,\"40\":2,\"43\":3,\"44\":1,\"47\":1,\"48\":3,\"49\":1,\"50\":4,\"51\":6,\"52\":2,\"53\":1,\"55\":1,\"56\":1,\"63\":4,\"65\":2,\"66\":4,\"67\":5,\"68\":1,\"69\":2,\"70\":1,\"71\":3,\"72\":3,\"73\":3,\"74\":2,\"75\":1,\"76\":7,\"78\":6,\"79\":2,\"80\":4,\"81\":2,\"82\":5,\"83\":1,\"84\":2,\"85\":1,\"87\":2,\"90\":3,\"91\":1,\"92\":1,\"93\":4}}],[\"clear\",{\"1\":{\"93\":1}}],[\"close\",{\"1\":{\"39\":1}}],[\"closure\",{\"1\":{\"28\":1}}],[\"closing\",{\"1\":{\"27\":1}}],[\"cloned\",{\"1\":{\"4\":1}}],[\"class\",{\"0\":{\"82\":1},\"1\":{\"27\":4,\"30\":5,\"31\":1,\"32\":2,\"33\":2,\"46\":2,\"47\":1,\"51\":1,\"52\":1,\"60\":1,\"69\":2,\"70\":1,\"71\":1,\"74\":1,\"76\":1,\"82\":1,\"85\":2}}],[\"classes\",{\"1\":{\"25\":3,\"40\":1,\"79\":1,\"82\":3}}],[\"clien\",{\"1\":{\"36\":1}}],[\"client\",{\"1\":{\"10\":1,\"18\":1,\"39\":9,\"45\":1,\"51\":1,\"78\":3}}],[\"click\",{\"1\":{\"30\":1}}],[\"cli\",{\"0\":{\"30\":1,\"53\":1},\"1\":{\"24\":1,\"26\":1,\"30\":2,\"43\":1,\"50\":2,\"53\":1,\"58\":1,\"66\":1,\"67\":3}}],[\"covered\",{\"1\":{\"74\":1}}],[\"coroutine\",{\"1\":{\"63\":1}}],[\"correct\",{\"1\":{\"38\":1,\"49\":1,\"67\":2,\"71\":1,\"88\":1,\"90\":1}}],[\"correctly\",{\"1\":{\"24\":1,\"48\":1}}],[\"core\",{\"1\":{\"12\":1,\"21\":1,\"25\":1,\"43\":1,\"53\":1,\"65\":1}}],[\"cool\",{\"1\":{\"24\":1,\"27\":1,\"32\":1,\"40\":2,\"45\":1,\"50\":1,\"65\":1,\"66\":1,\"68\":1,\"72\":1,\"76\":1,\"78\":1}}],[\"couldn\",{\"1\":{\"44\":1}}],[\"course\",{\"1\":{\"18\":1,\"72\":1,\"80\":1}}],[\"count=3\",{\"1\":{\"17\":1}}],[\"code\",{\"1\":{\"16\":1,\"31\":1,\"59\":1,\"63\":1,\"66\":2,\"67\":2,\"78\":2,\"79\":1,\"80\":1,\"81\":1,\"93\":1}}],[\"component\",{\"1\":{\"45\":1}}],[\"components\",{\"0\":{\"7\":1}}],[\"comparison\",{\"1\":{\"44\":1}}],[\"compatible\",{\"1\":{\"27\":1}}],[\"completion\",{\"1\":{\"79\":1,\"80\":3}}],[\"completed\",{\"1\":{\"36\":1,\"83\":1,\"84\":1}}],[\"complete\",{\"1\":{\"36\":1,\"38\":1,\"51\":1,\"67\":2}}],[\"completely\",{\"1\":{\"33\":1}}],[\"complex\",{\"1\":{\"35\":1,\"63\":1,\"73\":1}}],[\"comes\",{\"1\":{\"25\":1,\"53\":1}}],[\"common\",{\"1\":{\"81\":3}}],[\"communication\",{\"1\":{\"35\":1,\"43\":1}}],[\"communicate\",{\"1\":{\"10\":1,\"35\":1}}],[\"commit\",{\"1\":{\"5\":3,\"84\":1}}],[\"commands\",{\"1\":{\"53\":2}}],[\"command\",{\"1\":{\"4\":2,\"5\":1,\"6\":2,\"30\":1,\"36\":3,\"46\":1,\"50\":1,\"63\":2,\"67\":2,\"72\":2,\"75\":1,\"84\":1}}],[\"convert\",{\"1\":{\"83\":1}}],[\"conventions\",{\"0\":{\"29\":1},\"1\":{\"29\":1}}],[\"convinient\",{\"1\":{\"74\":1,\"75\":1}}],[\"conftest\",{\"1\":{\"91\":1}}],[\"conflicts\",{\"1\":{\"73\":1}}],[\"configuration\",{\"1\":{\"60\":1}}],[\"configures\",{\"1\":{\"62\":1}}],[\"configure\",{\"1\":{\"60\":1,\"62\":1}}],[\"configured\",{\"1\":{\"5\":1,\"18\":1,\"56\":1}}],[\"constructor\",{\"1\":{\"82\":1}}],[\"constraint\",{\"1\":{\"68\":1}}],[\"consumers\",{\"1\":{\"35\":1}}],[\"considers\",{\"1\":{\"24\":1}}],[\"consider\",{\"1\":{\"1\":1,\"44\":1}}],[\"connectionpool\",{\"1\":{\"80\":1}}],[\"connections\",{\"1\":{\"27\":1}}],[\"connection\",{\"1\":{\"27\":1,\"40\":1,\"78\":1,\"80\":2,\"91\":1}}],[\"continue\",{\"1\":{\"67\":1}}],[\"control\",{\"1\":{\"52\":1,\"81\":1}}],[\"contributors\",{\"1\":{\"3\":2}}],[\"contributions\",{\"1\":{\"3\":1}}],[\"contribution\",{\"0\":{\"3\":1}}],[\"contexts\",{\"1\":{\"52\":1}}],[\"context\",{\"0\":{\"52\":1},\"1\":{\"37\":1,\"39\":6,\"41\":4,\"52\":4,\"76\":3,\"78\":1,\"79\":1,\"80\":2,\"86\":3,\"87\":1,\"93\":5}}],[\"contents\",{\"0\":{\"26\":1}}],[\"ci\",{\"1\":{\"3\":2}}],[\"celery\",{\"1\":{\"1\":1,\"35\":1,\"44\":1,\"71\":1}}],[\"avoid\",{\"1\":{\"75\":1}}],[\"available\",{\"0\":{\"7\":1,\"8\":1,\"16\":1,\"19\":1,\"22\":1},\"1\":{\"7\":4,\"18\":1,\"32\":1,\"37\":1,\"66\":1,\"72\":2,\"76\":2,\"87\":1}}],[\"ago\",{\"1\":{\"75\":1}}],[\"again\",{\"1\":{\"67\":1}}],[\"against\",{\"1\":{\"4\":1,\"6\":1}}],[\"amqp\",{\"1\":{\"67\":4,\"72\":2}}],[\"amount\",{\"1\":{\"60\":2,\"68\":1,\"80\":1}}],[\"api\",{\"1\":{\"63\":2}}],[\"app=app\",{\"1\":{\"39\":1}}],[\"append\",{\"1\":{\"37\":1}}],[\"application\",{\"1\":{\"37\":2,\"38\":8,\"39\":4,\"40\":2,\"41\":2,\"62\":1,\"63\":1,\"87\":1}}],[\"applications\",{\"1\":{\"37\":1}}],[\"app\",{\"1\":{\"35\":1,\"37\":4,\"38\":1,\"39\":3,\"40\":7,\"41\":4,\"93\":1}}],[\"approved\",{\"1\":{\"3\":1}}],[\"autocompleted\",{\"1\":{\"80\":2}}],[\"autocompletion\",{\"1\":{\"80\":1}}],[\"autocompetion\",{\"1\":{\"79\":1}}],[\"automatic\",{\"1\":{\"57\":1}}],[\"automatically\",{\"1\":{\"41\":1,\"50\":2,\"93\":1}}],[\"auto\",{\"0\":{\"55\":1},\"1\":{\"55\":1,\"80\":3}}],[\"autouse\",{\"1\":{\"41\":1,\"93\":1}}],[\"autouse=true\",{\"1\":{\"41\":1,\"93\":1}}],[\"adopt\",{\"1\":{\"43\":1}}],[\"advice\",{\"1\":{\"41\":1}}],[\"adaptive\",{\"1\":{\"34\":1}}],[\"adds\",{\"1\":{\"36\":1,\"38\":1,\"73\":2}}],[\"added\",{\"1\":{\"33\":1,\"73\":1,\"91\":1,\"93\":1}}],[\"addition\",{\"1\":{\"76\":1}}],[\"additional\",{\"1\":{\"24\":1,\"47\":1,\"52\":1,\"74\":1,\"76\":1}}],[\"adding\",{\"0\":{\"38\":1,\"87\":1},\"1\":{\"18\":1,\"23\":1,\"51\":1,\"78\":1}}],[\"addr=\",{\"1\":{\"18\":1}}],[\"add\",{\"1\":{\"3\":1,\"11\":1,\"17\":2,\"24\":1,\"27\":1,\"30\":4,\"33\":1,\"34\":2,\"36\":1,\"37\":2,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"47\":1,\"48\":2,\"50\":1,\"53\":1,\"63\":1,\"66\":4,\"67\":6,\"68\":1,\"72\":1,\"76\":3,\"78\":2,\"80\":1,\"84\":1,\"87\":4,\"92\":3,\"93\":3}}],[\"aaa\",{\"1\":{\"30\":2}}],[\"aaaaa\",{\"1\":{\"17\":1}}],[\"await\",{\"1\":{\"27\":2,\"36\":6,\"39\":2,\"40\":2,\"47\":3,\"48\":5,\"51\":1,\"63\":14,\"66\":4,\"67\":9,\"72\":2,\"76\":7,\"92\":4,\"93\":3}}],[\"achieve\",{\"1\":{\"88\":1}}],[\"achieved\",{\"1\":{\"78\":1}}],[\"according\",{\"1\":{\"72\":1}}],[\"access\",{\"1\":{\"36\":1,\"78\":1,\"80\":1}}],[\"action\",{\"1\":{\"59\":1}}],[\"actions\",{\"1\":{\"33\":2,\"36\":1,\"51\":1}}],[\"actively\",{\"1\":{\"44\":1}}],[\"actually\",{\"1\":{\"91\":1}}],[\"actual\",{\"1\":{\"20\":1,\"90\":1,\"91\":1}}],[\"acknowledge\",{\"1\":{\"60\":1}}],[\"acknowledged\",{\"1\":{\"56\":3}}],[\"acknowledgements\",{\"0\":{\"56\":1},\"1\":{\"56\":1,\"60\":1}}],[\"acknowledgement\",{\"0\":{\"28\":1},\"1\":{\"60\":1}}],[\"ack=message\",{\"1\":{\"28\":1}}],[\"ack\",{\"1\":{\"28\":2,\"56\":2,\"60\":1}}],[\"acking\",{\"1\":{\"28\":1}}],[\"ackablemessage\",{\"1\":{\"27\":2,\"28\":3}}],[\"atomic\",{\"1\":{\"84\":1}}],[\"attempts\",{\"1\":{\"51\":1}}],[\"at\",{\"1\":{\"18\":1,\"30\":1,\"38\":1,\"50\":1,\"66\":1,\"67\":2,\"70\":1,\"71\":1,\"72\":2,\"78\":2,\"83\":2}}],[\"aiopika\",{\"1\":{\"67\":1}}],[\"aiopikabroker\",{\"0\":{\"13\":1},\"1\":{\"67\":7,\"72\":4}}],[\"aiotasks\",{\"1\":{\"44\":1}}],[\"aiohttp\",{\"0\":{\"37\":1},\"1\":{\"37\":8,\"38\":8,\"39\":4}}],[\"aiogram\",{\"0\":{\"36\":1},\"1\":{\"36\":14}}],[\"aio\",{\"1\":{\"13\":2,\"65\":1,\"67\":6,\"72\":2}}],[\"article\",{\"1\":{\"63\":1}}],[\"articles\",{\"1\":{\"41\":1}}],[\"arq\",{\"1\":{\"44\":1}}],[\"arg2=\",{\"1\":{\"76\":4}}],[\"arg2\",{\"1\":{\"76\":6}}],[\"arg1\",{\"1\":{\"76\":2}}],[\"arg\",{\"1\":{\"60\":1}}],[\"argument\",{\"1\":{\"30\":1,\"38\":1,\"62\":1}}],[\"argumentparser\",{\"1\":{\"30\":2}}],[\"arguments\",{\"1\":{\"24\":1,\"30\":3,\"38\":1,\"47\":1,\"93\":2}}],[\"argparse\",{\"1\":{\"30\":1}}],[\"args=\",{\"1\":{\"33\":1}}],[\"args\",{\"1\":{\"24\":3,\"30\":4,\"36\":2,\"60\":1,\"63\":1,\"72\":1,\"76\":1}}],[\"architecture\",{\"0\":{\"45\":1},\"1\":{\"10\":1,\"66\":1}}],[\"are\",{\"0\":{\"80\":1},\"1\":{\"9\":1,\"10\":1,\"12\":1,\"19\":1,\"22\":1,\"27\":1,\"29\":2,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"40\":1,\"45\":2,\"46\":1,\"48\":1,\"51\":3,\"60\":1,\"67\":1,\"78\":2,\"81\":2,\"83\":1,\"91\":1}}],[\"ability\",{\"1\":{\"44\":1,\"52\":1,\"87\":1}}],[\"abilities\",{\"1\":{\"12\":1,\"21\":1}}],[\"abc\",{\"1\":{\"25\":1,\"27\":1,\"30\":2,\"31\":1,\"32\":2,\"33\":1,\"46\":1,\"49\":1,\"51\":2}}],[\"abstractions\",{\"1\":{\"43\":1}}],[\"abstract\",{\"1\":{\"25\":3,\"27\":1,\"30\":1,\"31\":1,\"33\":1,\"46\":1}}],[\"abort\",{\"1\":{\"44\":1}}],[\"about\",{\"1\":{\"12\":1,\"21\":1,\"30\":1,\"32\":1,\"35\":1,\"37\":1,\"41\":1,\"50\":1,\"63\":1,\"66\":2,\"67\":2}}],[\"above\",{\"1\":{\"6\":1,\"80\":1}}],[\"able\",{\"1\":{\"1\":1,\"33\":3,\"38\":2,\"52\":1,\"63\":1,\"85\":1}}],[\"after\",{\"1\":{\"4\":2,\"17\":1,\"18\":1,\"30\":1,\"31\":1,\"33\":1,\"36\":1,\"37\":1,\"38\":1,\"41\":1,\"51\":6,\"56\":1,\"62\":1,\"63\":2,\"65\":1,\"67\":3,\"80\":1,\"83\":2,\"91\":1,\"93\":1}}],[\"alert\",{\"1\":{\"68\":1}}],[\"although\",{\"1\":{\"35\":1}}],[\"alter\",{\"1\":{\"27\":1}}],[\"always\",{\"1\":{\"20\":1,\"31\":1,\"72\":1}}],[\"along\",{\"1\":{\"11\":1,\"27\":1,\"35\":1}}],[\"allows\",{\"1\":{\"17\":1,\"35\":2,\"36\":1,\"38\":1,\"57\":1,\"63\":1,\"88\":1}}],[\"allow\",{\"1\":{\"16\":1}}],[\"all\",{\"1\":{\"3\":1,\"4\":2,\"5\":2,\"9\":1,\"10\":2,\"11\":1,\"24\":2,\"25\":1,\"30\":2,\"36\":1,\"37\":1,\"38\":2,\"45\":2,\"50\":2,\"51\":1,\"55\":2,\"59\":1,\"60\":1,\"62\":1,\"63\":1,\"67\":2,\"73\":2,\"75\":1,\"81\":1,\"93\":3}}],[\"also\",{\"1\":{\"1\":1,\"6\":1,\"11\":1,\"30\":2,\"31\":1,\"38\":1,\"39\":1,\"40\":1,\"48\":2,\"52\":2,\"58\":1,\"63\":2,\"66\":2,\"67\":1,\"70\":3,\"76\":1,\"81\":2,\"82\":1}}],[\"almost\",{\"1\":{\"1\":1,\"35\":1}}],[\"annotations\",{\"1\":{\"85\":1}}],[\"annotate\",{\"1\":{\"40\":1}}],[\"annotated\",{\"1\":{\"40\":1,\"80\":1}}],[\"annoying\",{\"1\":{\"58\":1}}],[\"another\",{\"1\":{\"41\":1,\"43\":1,\"85\":1,\"90\":1}}],[\"anywhere\",{\"1\":{\"92\":1}}],[\"anyio\",{\"1\":{\"91\":2,\"92\":2,\"93\":2}}],[\"anything\",{\"1\":{\"20\":1,\"49\":1,\"51\":1,\"76\":1}}],[\"any\",{\"1\":{\"1\":1,\"6\":1,\"20\":1,\"24\":3,\"38\":2,\"40\":2,\"44\":1,\"57\":1,\"66\":1,\"67\":1,\"69\":2,\"71\":1,\"80\":2,\"84\":1}}],[\"and\",{\"0\":{\"11\":1,\"77\":1},\"1\":{\"1\":2,\"3\":1,\"6\":1,\"10\":1,\"12\":1,\"20\":1,\"21\":1,\"24\":1,\"27\":2,\"29\":1,\"30\":1,\"32\":1,\"33\":1,\"34\":4,\"35\":4,\"36\":1,\"37\":2,\"38\":3,\"39\":1,\"40\":6,\"43\":3,\"44\":2,\"45\":3,\"46\":2,\"47\":2,\"48\":1,\"49\":3,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"57\":1,\"63\":5,\"65\":1,\"66\":4,\"67\":2,\"70\":3,\"71\":3,\"72\":2,\"73\":1,\"75\":2,\"76\":3,\"79\":1,\"80\":2,\"81\":2,\"82\":1,\"83\":2,\"84\":1,\"85\":1,\"87\":1,\"91\":2,\"92\":6,\"93\":1}}],[\"an\",{\"1\":{\"1\":1,\"3\":1,\"36\":1,\"38\":2,\"40\":1,\"46\":1,\"47\":1,\"50\":1,\"55\":1,\"63\":1,\"66\":2,\"67\":1,\"71\":1,\"74\":4,\"76\":3,\"78\":1,\"82\":1,\"83\":1,\"87\":1,\"90\":2,\"91\":3}}],[\"aside\",{\"1\":{\"73\":1}}],[\"assert\",{\"1\":{\"92\":2,\"93\":2}}],[\"assemble\",{\"1\":{\"73\":1}}],[\"assume\",{\"1\":{\"50\":1,\"80\":1}}],[\"assumes\",{\"1\":{\"6\":1,\"74\":1}}],[\"assign\",{\"1\":{\"48\":1,\"63\":1}}],[\"assigned\",{\"1\":{\"47\":1,\"76\":1}}],[\"asynchronous\",{\"1\":{\"83\":1}}],[\"asynchronously\",{\"1\":{\"83\":1}}],[\"asyncresultbackend\",{\"1\":{\"32\":3,\"49\":1}}],[\"asyncgenerator\",{\"1\":{\"27\":2,\"28\":1,\"39\":1}}],[\"asyncbroker\",{\"1\":{\"27\":3,\"46\":2,\"87\":1,\"91\":2}}],[\"async\",{\"0\":{\"11\":1,\"91\":1},\"1\":{\"11\":2,\"17\":1,\"24\":1,\"27\":4,\"28\":1,\"31\":1,\"32\":5,\"33\":7,\"35\":1,\"36\":5,\"38\":1,\"39\":1,\"40\":3,\"44\":1,\"47\":4,\"48\":10,\"51\":4,\"57\":1,\"60\":2,\"63\":3,\"66\":2,\"67\":4,\"72\":2,\"76\":2,\"80\":1,\"91\":2,\"92\":5,\"93\":3}}],[\"asyncio\",{\"0\":{\"0\":1},\"1\":{\"1\":1,\"36\":4,\"39\":1,\"44\":1,\"47\":3,\"48\":3,\"51\":2,\"63\":14,\"66\":2,\"67\":4,\"72\":1,\"91\":1}}],[\"ask\",{\"1\":{\"3\":1}}],[\"as\",{\"0\":{\"82\":1},\"1\":{\"1\":1,\"5\":1,\"12\":1,\"18\":1,\"21\":1,\"23\":1,\"24\":1,\"27\":3,\"29\":1,\"30\":1,\"31\":1,\"35\":2,\"38\":2,\"39\":3,\"40\":7,\"41\":1,\"50\":1,\"52\":1,\"57\":3,\"61\":1,\"63\":5,\"65\":2,\"67\":1,\"71\":2,\"72\":1,\"76\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":2,\"88\":1,\"91\":2,\"92\":2,\"93\":1}}],[\"a\",{\"0\":{\"1\":1,\"82\":1},\"1\":{\"1\":3,\"3\":2,\"5\":2,\"6\":1,\"7\":1,\"9\":1,\"11\":2,\"12\":1,\"17\":3,\"21\":1,\"23\":1,\"24\":1,\"27\":10,\"28\":4,\"30\":1,\"31\":2,\"32\":9,\"33\":6,\"35\":5,\"36\":3,\"37\":2,\"38\":5,\"39\":5,\"40\":7,\"41\":4,\"43\":2,\"44\":4,\"46\":2,\"47\":5,\"50\":5,\"51\":2,\"52\":4,\"55\":1,\"57\":1,\"60\":2,\"62\":2,\"63\":20,\"66\":6,\"67\":2,\"68\":2,\"70\":2,\"71\":7,\"72\":5,\"73\":2,\"74\":2,\"75\":2,\"76\":2,\"78\":3,\"80\":2,\"81\":2,\"84\":1,\"85\":1,\"87\":1,\"91\":1,\"92\":3,\"93\":4}}],[\"illustration\",{\"1\":{\"63\":1,\"93\":1}}],[\"imemory\",{\"1\":{\"91\":1}}],[\"immediately\",{\"1\":{\"62\":1}}],[\"imagine\",{\"1\":{\"41\":1,\"72\":1}}],[\"implements\",{\"1\":{\"29\":1,\"30\":1}}],[\"implement\",{\"1\":{\"25\":1,\"27\":1,\"29\":1,\"31\":1,\"32\":1,\"33\":6,\"43\":1,\"46\":2,\"49\":1,\"51\":1,\"63\":2,\"70\":1,\"71\":1,\"72\":2}}],[\"implementations\",{\"1\":{\"70\":2}}],[\"implementation\",{\"1\":{\"1\":1,\"69\":1,\"70\":1,\"71\":1,\"79\":1}}],[\"importing\",{\"0\":{\"55\":1}}],[\"important\",{\"1\":{\"32\":1,\"39\":1,\"40\":1,\"41\":1,\"51\":1,\"66\":1}}],[\"import\",{\"1\":{\"11\":1,\"17\":1,\"18\":1,\"23\":2,\"24\":3,\"27\":2,\"30\":3,\"32\":3,\"33\":2,\"35\":3,\"36\":11,\"37\":2,\"38\":1,\"39\":1,\"40\":6,\"41\":1,\"47\":2,\"50\":2,\"51\":3,\"55\":1,\"61\":1,\"62\":1,\"63\":11,\"66\":3,\"67\":7,\"72\":5,\"76\":2,\"91\":2,\"92\":5,\"93\":6}}],[\"imported\",{\"1\":{\"11\":1}}],[\"i\",{\"1\":{\"36\":1,\"66\":1,\"67\":1,\"93\":1}}],[\"ide\",{\"1\":{\"80\":1}}],[\"idea\",{\"1\":{\"43\":1}}],[\"id\",{\"1\":{\"32\":10,\"33\":2,\"36\":3,\"47\":1,\"76\":8}}],[\"ignored\",{\"1\":{\"58\":1}}],[\"ignore\",{\"1\":{\"27\":1,\"30\":1,\"32\":2}}],[\"if\",{\"1\":{\"3\":1,\"4\":1,\"6\":2,\"10\":2,\"17\":1,\"18\":1,\"24\":1,\"27\":2,\"28\":2,\"29\":4,\"31\":1,\"32\":2,\"33\":1,\"35\":1,\"36\":5,\"39\":1,\"40\":4,\"41\":1,\"43\":1,\"44\":1,\"45\":1,\"50\":4,\"51\":2,\"57\":2,\"58\":1,\"60\":2,\"62\":1,\"63\":3,\"66\":5,\"67\":5,\"68\":1,\"70\":1,\"71\":1,\"72\":3,\"73\":2,\"74\":2,\"75\":3,\"76\":2,\"78\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":4,\"87\":1,\"88\":1,\"90\":1,\"91\":3,\"92\":2,\"93\":2}}],[\"itself\",{\"1\":{\"93\":1}}],[\"its\",{\"1\":{\"4\":1,\"35\":1,\"38\":1,\"40\":1,\"51\":1}}],[\"it\",{\"1\":{\"1\":5,\"3\":1,\"4\":2,\"5\":1,\"6\":3,\"9\":2,\"10\":2,\"11\":2,\"17\":1,\"20\":1,\"21\":1,\"23\":1,\"24\":3,\"27\":2,\"28\":1,\"29\":2,\"30\":1,\"31\":1,\"32\":3,\"33\":4,\"35\":3,\"36\":3,\"37\":2,\"38\":4,\"39\":1,\"40\":5,\"41\":4,\"43\":2,\"45\":1,\"46\":2,\"47\":2,\"48\":2,\"49\":2,\"50\":2,\"51\":2,\"52\":3,\"55\":2,\"56\":2,\"57\":1,\"58\":1,\"59\":1,\"61\":1,\"62\":2,\"63\":7,\"65\":1,\"66\":7,\"67\":1,\"68\":1,\"70\":3,\"71\":3,\"72\":4,\"73\":3,\"74\":2,\"75\":3,\"76\":4,\"79\":1,\"81\":1,\"82\":3,\"84\":1,\"91\":2,\"92\":5,\"93\":8}}],[\"indicates\",{\"1\":{\"90\":1}}],[\"input\",{\"1\":{\"57\":1}}],[\"inside\",{\"1\":{\"52\":1,\"63\":1}}],[\"instead\",{\"1\":{\"44\":1,\"63\":1,\"67\":1,\"76\":1}}],[\"instances\",{\"1\":{\"63\":1,\"72\":1}}],[\"instance\",{\"1\":{\"36\":3,\"47\":1,\"52\":1,\"72\":1,\"74\":1,\"76\":2}}],[\"installed\",{\"1\":{\"6\":1,\"50\":1}}],[\"install\",{\"1\":{\"2\":2,\"4\":7,\"5\":2,\"10\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"18\":2,\"21\":2,\"23\":1,\"35\":2,\"36\":2,\"37\":2,\"38\":2,\"50\":1,\"58\":1,\"65\":1,\"67\":3,\"70\":2,\"91\":1}}],[\"installation\",{\"0\":{\"2\":1,\"65\":1},\"1\":{\"5\":1,\"36\":1,\"37\":1,\"38\":1,\"65\":1,\"67\":2}}],[\"instructions\",{\"1\":{\"4\":1}}],[\"infinite\",{\"1\":{\"36\":1,\"46\":1}}],[\"info\",{\"1\":{\"32\":1,\"36\":3,\"50\":2,\"60\":1,\"62\":1,\"67\":1}}],[\"information\",{\"1\":{\"23\":1,\"27\":1,\"32\":2,\"51\":1,\"63\":1,\"66\":2,\"67\":1,\"74\":1}}],[\"injected\",{\"1\":{\"40\":2}}],[\"injection\",{\"0\":{\"93\":1},\"1\":{\"37\":2,\"39\":1,\"40\":2,\"44\":1,\"80\":1}}],[\"inject\",{\"1\":{\"31\":1}}],[\"incoming\",{\"1\":{\"30\":1,\"57\":1}}],[\"includes\",{\"1\":{\"19\":1}}],[\"into\",{\"1\":{\"88\":1}}],[\"introduce\",{\"1\":{\"72\":1}}],[\"introduction\",{\"0\":{\"42\":1}}],[\"integrate\",{\"1\":{\"79\":1}}],[\"integration\",{\"0\":{\"38\":1},\"1\":{\"35\":1,\"36\":5,\"38\":1,\"40\":1}}],[\"integrations\",{\"0\":{\"34\":1},\"1\":{\"34\":2}}],[\"intensive\",{\"1\":{\"36\":1}}],[\"interpreted\",{\"1\":{\"90\":1}}],[\"internals\",{\"1\":{\"67\":1}}],[\"internal\",{\"1\":{\"66\":1}}],[\"interservice\",{\"1\":{\"43\":1}}],[\"interact\",{\"1\":{\"33\":3}}],[\"interface\",{\"1\":{\"24\":1,\"50\":1,\"87\":1,\"91\":1}}],[\"int\",{\"1\":{\"29\":1,\"36\":1,\"57\":2,\"66\":2,\"67\":4,\"72\":4,\"76\":1,\"92\":10}}],[\"initially\",{\"1\":{\"47\":1}}],[\"initialize\",{\"1\":{\"36\":1,\"37\":1,\"78\":1}}],[\"initialization\",{\"1\":{\"36\":1,\"38\":1}}],[\"init\",{\"1\":{\"27\":2,\"36\":3,\"37\":1,\"38\":1,\"40\":2,\"41\":1,\"93\":1}}],[\"invoking\",{\"1\":{\"24\":3}}],[\"inmemory\",{\"1\":{\"41\":1,\"47\":1,\"91\":1}}],[\"inmemoryresultbackend\",{\"1\":{\"9\":1,\"49\":1}}],[\"inmemorybroker\",{\"0\":{\"9\":1},\"1\":{\"39\":2,\"41\":1,\"47\":3,\"49\":1,\"66\":6,\"67\":1,\"91\":2,\"92\":1}}],[\"in\",{\"0\":{\"1\":1},\"1\":{\"1\":1,\"3\":2,\"4\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"12\":1,\"19\":1,\"20\":1,\"21\":1,\"23\":1,\"24\":1,\"25\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":2,\"31\":1,\"32\":3,\"33\":2,\"34\":1,\"35\":1,\"36\":2,\"37\":2,\"38\":3,\"40\":11,\"41\":3,\"43\":2,\"45\":1,\"46\":2,\"48\":1,\"49\":1,\"50\":5,\"51\":4,\"55\":2,\"56\":1,\"58\":1,\"60\":2,\"61\":1,\"62\":1,\"63\":5,\"66\":5,\"67\":2,\"68\":1,\"71\":2,\"72\":1,\"73\":1,\"74\":2,\"75\":2,\"76\":4,\"78\":1,\"79\":1,\"80\":3,\"81\":2,\"82\":2,\"83\":1,\"84\":4,\"90\":1,\"91\":3,\"92\":1,\"93\":3}}],[\"isn\",{\"1\":{\"47\":1}}],[\"issue\",{\"1\":{\"3\":1,\"63\":1}}],[\"is\",{\"0\":{\"1\":1,\"43\":1},\"1\":{\"3\":1,\"4\":1,\"9\":1,\"10\":1,\"11\":1,\"17\":1,\"21\":1,\"23\":1,\"24\":1,\"25\":1,\"27\":2,\"28\":1,\"30\":1,\"32\":6,\"33\":4,\"34\":1,\"35\":4,\"36\":7,\"37\":1,\"38\":4,\"39\":3,\"40\":4,\"41\":2,\"43\":2,\"46\":1,\"47\":3,\"48\":1,\"49\":1,\"50\":1,\"51\":3,\"52\":1,\"53\":2,\"55\":2,\"56\":6,\"57\":2,\"58\":2,\"60\":5,\"61\":1,\"62\":3,\"63\":8,\"66\":4,\"67\":5,\"68\":1,\"69\":1,\"70\":1,\"72\":1,\"76\":3,\"78\":2,\"79\":2,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":2,\"85\":1,\"90\":2,\"91\":3,\"93\":2}}]],\"serializationVersion\":2}}")).map(([e,t])=>[e,zt(t,{fields:["h","t","c"],storeFields:["h","t","c"]})]));self.onmessage=({data:{type:e="all",query:t,locale:s,options:n,id:o}})=>{const u=bt[s];e==="suggest"?self.postMessage([e,o,tt(t,u,n)]):e==="search"?self.postMessage([e,o,Z(t,u,n)]):self.postMessage({suggestions:[e,o,tt(t,u,n)],results:[e,o,Z(t,u,n)]})}; +const V=Object.entries,et=Object.fromEntries,st="ENTRIES",L="KEYS",T="VALUES",_="";class D{set;_type;_path;constructor(t,s){const n=t._tree,o=Array.from(n.keys());this.set=t,this._type=s,this._path=o.length>0?[{node:n,keys:o}]:[]}next(){const t=this.dive();return this.backtrack(),t}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:t,keys:s}=E(this._path);if(E(s)===_)return{done:!1,value:this.result()};const n=t.get(E(s));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const t=E(this._path).keys;t.pop(),!(t.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:t})=>E(t)).filter(t=>t!==_).join("")}value(){return E(this._path).node.get(_)}result(){switch(this._type){case T:return this.value();case L:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const E=e=>e[e.length-1],nt=(e,t,s)=>{const n=new Map;if(t===void 0)return n;const o=t.length+1,u=o+s,i=new Uint8Array(u*o).fill(s+1);for(let r=0;r{const d=u*i;t:for(const c of e.keys())if(c===_){const a=o[d-1];a<=s&&n.set(r,[e.get(c),a])}else{let a=u;for(let h=0;hs)continue t}R(e.get(c),t,s,n,o,a,i,r+c)}};class C{_tree;_prefix;_size=void 0;constructor(t=new Map,s=""){this._tree=t,this._prefix=s}atPrefix(t){if(!t.startsWith(this._prefix))throw new Error("Mismatched prefix");const[s,n]=x(this._tree,t.slice(this._prefix.length));if(s===void 0){const[o,u]=O(n);for(const i of o.keys())if(i!==_&&i.startsWith(u)){const r=new Map;return r.set(i.slice(u.length),o.get(i)),new C(r,t)}}return new C(s,t)}clear(){this._size=void 0,this._tree.clear()}delete(t){return this._size=void 0,ot(this._tree,t)}entries(){return new D(this,st)}forEach(t){for(const[s,n]of this)t(s,n,this)}fuzzyGet(t,s){return nt(this._tree,t,s)}get(t){const s=k(this._tree,t);return s!==void 0?s.get(_):void 0}has(t){const s=k(this._tree,t);return s!==void 0&&s.has(_)}keys(){return new D(this,L)}set(t,s){if(typeof t!="string")throw new Error("key must be a string");return this._size=void 0,I(this._tree,t).set(_,s),this}get size(){if(this._size)return this._size;this._size=0;const t=this.entries();for(;!t.next().done;)this._size+=1;return this._size}update(t,s){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=I(this._tree,t);return n.set(_,s(n.get(_))),this}fetch(t,s){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=I(this._tree,t);let o=n.get(_);return o===void 0&&n.set(_,o=s()),o}values(){return new D(this,T)}[Symbol.iterator](){return this.entries()}static from(t){const s=new C;for(const[n,o]of t)s.set(n,o);return s}static fromObject(t){return C.from(Object.entries(t))}}const x=(e,t,s=[])=>{if(t.length===0||e==null)return[e,s];for(const n of e.keys())if(n!==_&&t.startsWith(n))return s.push([e,n]),x(e.get(n),t.slice(n.length),s);return s.push([e,t]),x(void 0,"",s)},k=(e,t)=>{if(t.length===0||e==null)return e;for(const s of e.keys())if(s!==_&&t.startsWith(s))return k(e.get(s),t.slice(s.length))},I=(e,t)=>{const s=t.length;t:for(let n=0;e&&n{const[s,n]=x(e,t);if(s!==void 0){if(s.delete(_),s.size===0)W(n);else if(s.size===1){const[o,u]=s.entries().next().value;q(n,o,u)}}},W=e=>{if(e.length===0)return;const[t,s]=O(e);if(t.delete(s),t.size===0)W(e.slice(0,-1));else if(t.size===1){const[n,o]=t.entries().next().value;n!==_&&q(e.slice(0,-1),n,o)}},q=(e,t,s)=>{if(e.length===0)return;const[n,o]=O(e);n.set(o+t,s),n.delete(o)},O=e=>e[e.length-1],ut=(e,t)=>{const s=e._idToShortId.get(t);if(s!=null)return e._storedFields.get(s)},it=/[\n\r -#%-*,-/:;?@[-\]_{}\u00A0\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u1680\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2000-\u200A\u2010-\u2029\u202F-\u2043\u2045-\u2051\u2053-\u205F\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u3000-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]+/u,M="or",$="and",rt="and_not",ct=(e,t)=>{e.includes(t)||e.push(t)},N=(e,t)=>{for(const s of t)e.includes(s)||e.push(s)},P=({score:e},{score:t})=>t-e,lt=()=>new Map,b=e=>{const t=new Map;for(const s of Object.keys(e))t.set(parseInt(s,10),e[s]);return t},G=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,ht={[M]:(e,t)=>{for(const s of t.keys()){const n=e.get(s);if(n==null)e.set(s,t.get(s));else{const{score:o,terms:u,match:i}=t.get(s);n.score=n.score+o,n.match=Object.assign(n.match,i),N(n.terms,u)}}return e},[$]:(e,t)=>{const s=new Map;for(const n of t.keys()){const o=e.get(n);if(o==null)continue;const{score:u,terms:i,match:r}=t.get(n);N(o.terms,i),s.set(n,{score:o.score+u,terms:o.terms,match:Object.assign(o.match,r)})}return s},[rt]:(e,t)=>{for(const s of t.keys())e.delete(s);return e}},dt=(e,t,s,n,o,u)=>{const{k:i,b:r,d}=u;return Math.log(1+(s-t+.5)/(t+.5))*(d+e*(i+1)/(e+i*(1-r+r*n/o)))},at=e=>(t,s,n)=>{const o=typeof e.fuzzy=="function"?e.fuzzy(t,s,n):e.fuzzy||!1,u=typeof e.prefix=="function"?e.prefix(t,s,n):e.prefix===!0;return{term:t,fuzzy:o,prefix:u}},H=(e,t,s,n)=>{for(const o of Object.keys(e._fieldIds))if(e._fieldIds[o]===s){e._options.logger("warn",`SlimSearch: document with ID ${e._documentIds.get(t)} has changed before removal: term "${n}" was not present in field "${o}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}},ft=(e,t,s,n)=>{if(!e._index.has(n)){H(e,s,t,n);return}const o=e._index.fetch(n,lt),u=o.get(t);u==null||u.get(s)==null?H(e,s,t,n):u.get(s)<=1?u.size<=1?o.delete(t):u.delete(s):u.set(s,u.get(s)-1),e._index.get(n).size===0&&e._index.delete(n)},gt={k:1.2,b:.7,d:.5},mt={idField:"id",extractField:(e,t)=>e[t],tokenize:e=>e.split(it),processTerm:e=>e.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(e,t)=>{typeof console?.[e]=="function"&&console[e](t)},autoVacuum:!0},J={combineWith:M,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:gt},pt={combineWith:$,prefix:(e,t,s)=>t===s.length-1},Ft={batchSize:1e3,batchWait:10},U={minDirtFactor:.1,minDirtCount:20},_t={...Ft,...U},K=Symbol("*"),yt=(e,t)=>{const s=new Map,n={...e._options.searchOptions,...t};for(const[o,u]of e._documentIds){const i=n.boostDocument?n.boostDocument(u,"",e._storedFields.get(o)):1;s.set(o,{score:i,terms:[],match:{}})}return s},X=(e,t=M)=>{if(e.length===0)return new Map;const s=t.toLowerCase(),n=ht[s];if(!n)throw new Error(`Invalid combination operator: ${t}`);return e.reduce(n)||new Map},S=(e,t,s,n,o,u,i,r,d=new Map)=>{if(o==null)return d;for(const c of Object.keys(u)){const a=u[c],h=e._fieldIds[c],g=o.get(h);if(g==null)continue;let m=g.size;const p=e._avgFieldLength[h];for(const l of g.keys()){if(!e._documentIds.has(l)){ft(e,h,l,s),m-=1;continue}const f=i?i(e._documentIds.get(l),s,e._storedFields.get(l)):1;if(!f)continue;const y=g.get(l),F=e._fieldLength.get(l)[h],v=dt(y,m,e._documentCount,F,p,r),z=n*a*f*v,A=d.get(l);if(A){A.score+=z,ct(A.terms,t);const w=G(A.match,s);w?w.push(c):A.match[s]=[c]}else d.set(l,{score:z,terms:[t],match:{[s]:[c]}})}}return d},At=(e,t,s)=>{const n={...e._options.searchOptions,...s},o=(n.fields||e._options.fields).reduce((l,f)=>({...l,[f]:G(n.boost,f)||1}),{}),{boostDocument:u,weights:i,maxFuzzy:r,bm25:d}=n,{fuzzy:c,prefix:a}={...J.weights,...i},h=e._index.get(t.term),g=S(e,t.term,t.term,1,h,o,u,d);let m,p;if(t.prefix&&(m=e._index.atPrefix(t.term)),t.fuzzy){const l=t.fuzzy===!0?.2:t.fuzzy,f=l<1?Math.min(r,Math.round(t.term.length*l)):l;f&&(p=e._index.fuzzyGet(t.term,f))}if(m)for(const[l,f]of m){const y=l.length-t.term.length;if(!y)continue;p?.delete(l);const F=a*l.length/(l.length+.3*y);S(e,t.term,l,F,f,o,u,d,g)}if(p)for(const l of p.keys()){const[f,y]=p.get(l);if(!y)continue;const F=c*l.length/(l.length+y);S(e,t.term,l,F,f,o,u,d,g)}return g},Y=(e,t,s={})=>{if(t===K)return yt(e,s);if(typeof t!="string"){const a={...s,...t,queries:void 0},h=t.queries.map(g=>Y(e,g,a));return X(h,a.combineWith)}const{tokenize:n,processTerm:o,searchOptions:u}=e._options,i={tokenize:n,processTerm:o,...u,...s},{tokenize:r,processTerm:d}=i,c=r(t).flatMap(a=>d(a)).filter(a=>!!a).map(at(i)).map(a=>At(e,a,i));return X(c,i.combineWith)},Q=(e,t,s={})=>{const n=Y(e,t,s),o=[];for(const[u,{score:i,terms:r,match:d}]of n){const c=r.length||1,a={id:e._documentIds.get(u),score:i*c,terms:Object.keys(d),queryTerms:r,match:d};Object.assign(a,e._storedFields.get(u)),(s.filter==null||s.filter(a))&&o.push(a)}return t===K&&s.boostDocument==null&&e._options.searchOptions.boostDocument==null||o.sort(P),o},Ct=(e,t,s={})=>{s={...e._options.autoSuggestOptions,...s};const n=new Map;for(const{score:u,terms:i}of Q(e,t,s)){const r=i.join(" "),d=n.get(r);d!=null?(d.score+=u,d.count+=1):n.set(r,{score:u,terms:i,count:1})}const o=[];for(const[u,{score:i,terms:r,count:d}]of n)o.push({suggestion:u,terms:r,score:i/d});return o.sort(P),o};class Et{_options;_index;_documentCount;_documentIds;_idToShortId;_fieldIds;_fieldLength;_avgFieldLength;_nextId;_storedFields;_dirtCount;_currentVacuum;_enqueuedVacuum;_enqueuedVacuumConditions;constructor(t){if(t?.fields==null)throw new Error('SlimSearch: option "fields" must be provided');const s=t.autoVacuum==null||t.autoVacuum===!0?_t:t.autoVacuum;this._options={...mt,...t,autoVacuum:s,searchOptions:{...J,...t.searchOptions||{}},autoSuggestOptions:{...pt,...t.autoSuggestOptions||{}}},this._index=new C,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=U,this.addFields(this._options.fields)}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}get documentCount(){return this._documentCount}get termCount(){return this._index.size}toJSON(){const t=[];for(const[s,n]of this._index){const o={};for(const[u,i]of n)o[u]=Object.fromEntries(i);t.push([s,o])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:t,serializationVersion:2}}addFields(t){for(let s=0;s{if(c!==1&&c!==2)throw new Error("SlimSearch: cannot deserialize an index created with an incompatible version");const h=new Et(a);h._documentCount=t,h._nextId=s,h._documentIds=b(n),h._idToShortId=new Map,h._fieldIds=o,h._fieldLength=b(u),h._avgFieldLength=i,h._storedFields=b(r),h._dirtCount=d||0,h._index=new C;for(const[g,m]of h._documentIds)h._idToShortId.set(m,g);for(const[g,m]of e){const p=new Map;for(const l of Object.keys(m)){let f=m[l];c===1&&(f=f.ds),p.set(parseInt(l,10),b(f))}h._index.set(g,p)}return h},B=(e,t)=>{const s=e.toLowerCase(),n=t.toLowerCase(),o=[];let u=0,i=0;const r=(c,a=!1)=>{let h="";i===0?h=c.length>20?`… ${c.slice(-20)}`:c:a?h=c.length+i>100?`${c.slice(0,100-i)}… `:c:h=c.length>20?`${c.slice(0,20)} … ${c.slice(-20)}`:c,h&&o.push(h),i+=h.length,a||(o.push(["mark",t]),i+=t.length,i>=100&&o.push(" …"))};let d=s.indexOf(n,u);if(d===-1)return null;for(;d>=0;){const c=d+n.length;if(r(e.slice(u,d)),u=c,i>100)break;d=s.indexOf(n,u)}return i<100&&r(e.slice(u),!0),o},wt=(e,t)=>t.contents.reduce((s,[,n])=>s+n,0)-e.contents.reduce((s,[,n])=>s+n,0),xt=(e,t)=>Math.max(...t.contents.map(([,s])=>s))-Math.max(...e.contents.map(([,s])=>s)),Z=(e,t,s={})=>{const n={};return Q(t,e,{boost:{h:2,t:1,c:4},prefix:!0,...s}).forEach(o=>{const{id:u,terms:i,score:r}=o,d=u.includes("@"),c=u.includes("#"),[a,h]=u.split(/[#@]/),g=Number(a),m=i.sort((l,f)=>l.length-f.length).filter((l,f)=>i.slice(f+1).every(y=>!y.includes(l))),{contents:p}=n[g]??={title:"",contents:[]};if(d)p.push([{type:"customField",id:g,index:h,display:m.map(l=>o.c.map(f=>B(f,l))).flat().filter(l=>l!==null)},r]);else{const l=m.map(f=>B(o.h,f)).filter(f=>f!==null);if(l.length&&p.push([{type:c?"heading":"title",id:g,...c&&{anchor:h},display:l},r]),"t"in o)for(const f of o.t){const y=m.map(F=>B(f,F)).filter(F=>F!==null);y.length&&p.push([{type:"text",id:g,...c&&{anchor:h},display:y},r])}}}),V(n).sort(([,o],[,u])=>"max"==="total"?wt(o,u):xt(o,u)).map(([o,{title:u,contents:i}])=>{if(!u){const r=ut(t,o);r&&(u=r.h)}return{title:u,contents:i.map(([r])=>r)}})},tt=(e,t,s={})=>{const n=Ct(t,e,{fuzzy:.2,maxFuzzy:3,...s}).map(({suggestion:o})=>o);return e.includes(" ")?n:n.filter(o=>!o.includes(" "))},bt=et(V(JSON.parse("{\"/\":{\"documentCount\":95,\"nextId\":95,\"documentIds\":{\"0\":\"0\",\"1\":\"0#what-is-taskiq-in-a-nutshell\",\"2\":\"0#installation\",\"3\":\"1\",\"4\":\"1#setting-up-environment\",\"5\":\"1#linting\",\"6\":\"1#testing\",\"7\":\"2\",\"8\":\"3\",\"9\":\"3#inmemorybroker\",\"10\":\"3#zeromqbroker\",\"11\":\"3#async-shared-broker-and-shared-tasks\",\"12\":\"3#custom-brokers\",\"13\":\"3#aiopikabroker-for-rabbitmq\",\"14\":\"3#redis-broker\",\"15\":\"3#nats-broker\",\"16\":\"4\",\"17\":\"4#simple-retry-middleware\",\"18\":\"4#prometheus-middleware\",\"19\":\"5\",\"20\":\"5#dummyresultbackend\",\"21\":\"5#redis-result-backend\",\"22\":\"6\",\"23\":\"6#redisschedulesource\",\"24\":\"6#labelschedulesource\",\"25\":\"7\",\"26\":\"7#contents\",\"27\":\"8\",\"28\":\"8#acknowledgement\",\"29\":\"8#conventions\",\"30\":\"9\",\"31\":\"10\",\"32\":\"11\",\"33\":\"12\",\"34\":\"13\",\"35\":\"14\",\"36\":\"15\",\"37\":\"16\",\"38\":\"16#adding-taskiq-integration\",\"39\":\"16#testing\",\"40\":\"17\",\"41\":\"17#testing\",\"42\":\"18\",\"43\":\"18#what-is-taskiq\",\"44\":\"18#why-not-use-existing-libraries\",\"45\":\"19\",\"46\":\"19#broker\",\"47\":\"19#kicker\",\"48\":\"19#messages\",\"49\":\"19#result-backend\",\"50\":\"19#workers\",\"51\":\"19#middlewares\",\"52\":\"19#context\",\"53\":\"20\",\"54\":\"20#worker\",\"55\":\"20#auto-importing\",\"56\":\"20#acknowledgements\",\"57\":\"20#type-casts\",\"58\":\"20#hot-reload\",\"59\":\"20#graceful-reload-available-only-on-unix-systems\",\"60\":\"20#other-parameters\",\"61\":\"20#scheduler\",\"62\":\"20#parameters\",\"63\":\"21\",\"64\":\"22\",\"65\":\"22#installation\",\"66\":\"22#running-tasks\",\"67\":\"22#distributed-run\",\"68\":\"22#timeouts\",\"69\":\"23\",\"70\":\"23#serializers\",\"71\":\"23#formatters\",\"72\":\"24\",\"73\":\"24#multiple-sources\",\"74\":\"24#working-with-timezones\",\"75\":\"24#skipping-first-run\",\"76\":\"24#dynamic-scheduling\",\"77\":\"25\",\"78\":\"25#state\",\"79\":\"25#dependencies\",\"80\":\"25#how-dependencies-are-useful\",\"81\":\"25#how-do-dependencies-work\",\"82\":\"25#class-as-a-dependency\",\"83\":\"25#generator-dependencies\",\"84\":\"25#exception-handling\",\"85\":\"25#generics\",\"86\":\"25#default-dependencies\",\"87\":\"25#adding-first-level-dependencies\",\"88\":\"26\",\"89\":\"26#preparations\",\"90\":\"26#environment-setup\",\"91\":\"26#async-tests\",\"92\":\"26#testing-tasks\",\"93\":\"26#dependency-injection\",\"94\":\"27\"},\"fieldIds\":{\"h\":0,\"t\":1,\"c\":2},\"fieldLength\":{\"0\":[4],\"1\":[6,52],\"2\":[1,12],\"3\":[2,77],\"4\":[3,48],\"5\":[1,30],\"6\":[1,55],\"7\":[2,22],\"8\":[2,10],\"9\":[1,33],\"10\":[1,73],\"11\":[5,54],\"12\":[2,31],\"13\":[4,8],\"14\":[2,7],\"15\":[2,7],\"16\":[2,16],\"17\":[3,65],\"18\":[2,55],\"19\":[3,17],\"20\":[1,31],\"21\":[3,33],\"22\":[3,17],\"23\":[1,51],\"24\":[1,99],\"25\":[2,27],\"26\":[2,7],\"27\":[1,120],\"28\":[1,66],\"29\":[1,54],\"30\":[1,117],\"31\":[1,68],\"32\":[2,121],\"33\":[2,114],\"34\":[2,37],\"35\":[3,97],\"36\":[3,188],\"37\":[3,77],\"38\":[3,137],\"39\":[1,95],\"40\":[3,183],\"41\":[1,92],\"42\":[1],\"43\":[3,79],\"44\":[6,86],\"45\":[2,54],\"46\":[1,61],\"47\":[1,84],\"48\":[1,70],\"49\":[2,55],\"50\":[1,106],\"51\":[1,130],\"52\":[1,70],\"53\":[1,37],\"54\":[1,27],\"55\":[2,58],\"56\":[1,37],\"57\":[2,72],\"58\":[2,58],\"59\":[8,46],\"60\":[2,111],\"61\":[1,30],\"62\":[1,71],\"63\":[2,193],\"64\":[2],\"65\":[1,45],\"66\":[2,177],\"67\":[2,177],\"68\":[1,52],\"69\":[3,36],\"70\":[1,92],\"71\":[1,74],\"72\":[2,158],\"73\":[2,85],\"74\":[3,73],\"75\":[3,71],\"76\":[2,180],\"77\":[3],\"78\":[1,77],\"79\":[1,50],\"80\":[4,111],\"81\":[4,84],\"82\":[4,48],\"83\":[2,36],\"84\":[2,62],\"85\":[1,26],\"86\":[2,12],\"87\":[4,44],\"88\":[3,31],\"89\":[1],\"90\":[2,59],\"91\":[2,95],\"92\":[2,78],\"93\":[2,146],\"94\":[1,3]},\"averageFieldLength\":[2.094736842105264,68.22413011452095],\"storedFields\":{\"0\":{\"h\":\"Task manager for asyncio\"},\"1\":{\"h\":\"What is taskiq in a nutshell\",\"t\":[\"Consider taskiq as an asyncio celery implementation. It uses almost the same patterns, but it's more modern and flexible.\",\"It's not a drop-in replacement for any other task manager. It has a different ecosystem of libraries and a different set of features. Also, it doesn't work for synchronous projects. You won't be able to send tasks synchronously.\"]},\"2\":{\"h\":\"Installation\",\"t\":[\"You can install taskiq with pip or your favorite dependency manager:\",\"pip install taskiq\\n\"]},\"3\":{\"h\":\"Contribution guide\",\"t\":[\"We love contributions. This guide is for all folks who want to make taskiq better together. We have several rules for contributors:\",\"Please do not add malware.\",\"Please make sure that your request solves the problem.\",\"If you struggle with something or feel frustrated, you either create an issue, create a discussions. page or publish a draft PR and ask your question in the description.\",\"We have lots of tests in CI. But since CI runs from first-time contributors should be approved, you better test locally. It just takes less time to prepare PR for merging.\"]},\"4\":{\"h\":\"Setting up environment\",\"t\":[\"We use poetry for managing dependencies. To install it, please follow the official guide in documentation.\",\"After you have cloned the taskiq repo, install dependencies using this command:\",\"poetry install \",\"It will install all required dependencies. If you want to run pytest against different python environments, please install pyenv using instructions from its readme.\",\"After pyenv is ready, you can install all python versions using this command:\",\"pyenv install \"]},\"5\":{\"h\":\"Linting\",\"t\":[\"We have pre-commit configured with all our settings. We highly recommend you to install it as a git hook using pre-commit install command.\",\"But even without installation, you can run all lints manually:\",\"pre-commit run -a \"]},\"6\":{\"h\":\"Testing\",\"t\":[\"You can run pytest without any parameters and it will do the thing.\",\"pytest \",\"If you want to speedup testings, you can run it with -n option from pytest-xdist to run tests in parallel.\",\"pytest -n 2 \",\"Also we use tox to test against different environments. You can publish a PR to run pytest with different python versions, but if you want to do it locally, just run tox command.\",\"tox \",\"Tox assumes that you've installed python versions using pyenv with command above.\"]},\"7\":{\"h\":\"Available components\",\"t\":[\"In this section, you can find a list of officially supported plugins for the taskiq.\",\"Available brokers\",\"Available middlewares\",\"Available result backends\",\"Available schedule sources\"]},\"8\":{\"h\":\"Available brokers\",\"t\":[\"In this section we'll list officially supported brokers.\"]},\"9\":{\"h\":\"InMemoryBroker\",\"t\":[\"This is a special broker for local development. It uses the same functions to execute tasks, but all tasks are executed locally in the current thread. By default it uses InMemoryResultBackend but this can be overridden.\"]},\"10\":{\"h\":\"ZeroMQBroker\",\"t\":[\"This broker uses ZMQ to communicate between worker and client processes. It's suitable for small projects with only ONE worker process, because of the ZMQ architecture.\",\"It publishes messages on the local port. All worker processes are reading messages from this port. If you run many worker processes, all tasks will be executed N times, where N is the total number of worker processes.\",\"Be careful!\",\"If you choose this type of broker, please run taskiq with -w 1 parameter, otherwise you may encounter undefined behavior.\",\"To run this broker please install the pyzmq lib. Or you can taskiq with zmq extra.\"]},\"11\":{\"h\":\"Async shared broker and shared tasks\",\"t\":[\"This is also a special broker. You cannot use it directly. It's used to create shared tasks. These tasks can be imported along with user defined tasks. To define a shared task please use this broker.\",\"from taskiq.brokers.shared_broker import async_shared_broker @async_shared_broker.task def my_task() -> bool: return True \",\"To kiq this task you have to options:\",\"Explicitly define broker using kicker for this kiq;\",\"Add default broker for all shared tasks.\"]},\"12\":{\"h\":\"Custom brokers\",\"t\":[\"These brokers are not parts of the core taskiq lib. You can install them as a separate packages.\",\"You can read more about parameters and abilities of these brokers in README.md of each repo.\"]},\"13\":{\"h\":\"AioPikaBroker (for RabbitMQ)\",\"t\":[\"Project link: taskiq-aio-pika.\",\"pip install taskiq-aio-pika \"]},\"14\":{\"h\":\"Redis broker\",\"t\":[\"Project link: taskiq-redis.\",\"pip install taskiq-redis \"]},\"15\":{\"h\":\"NATS broker\",\"t\":[\"Project link: taskiq-nats.\",\"pip install taskiq-nats \"]},\"16\":{\"h\":\"Available middlewares\",\"t\":[\"Middlewares allow you to execute code when specific event occurs. Taskiq has several default middlewares.\"]},\"17\":{\"h\":\"Simple retry middleware\",\"t\":[\"This middleware allows you to restart functions on errors. If exception was raised during task execution, the task would be resent with same parameters.\",\"To enable this middleware, add it to the list of middlewares for a broker.\",\"from taskiq import ZeroMQBroker, SimpleRetryMiddleware broker = ZeroMQBroker().with_middlewares( SimpleRetryMiddleware(default_retry_count=3), ) \",\"After that you can add a label to task that you want to restart on error.\",\" @broker.task(retry_on_error=True, max_retries=20) async def test(): raise Exception(\\\"AAAAA!\\\") \",\"retry_on_error enables retries for a task. max_retries is the maximum number of times,.\"]},\"18\":{\"h\":\"Prometheus middleware\",\"t\":[\"You can enable prometheus metrics for workers by adding PrometheusMiddleware. To do so, you need to install prometheus_client package or you can install metrics extras for taskiq.\",\"from taskiq import ZeroMQBroker, PrometheusMiddleware broker = ZeroMQBroker().with_middlewares( PrometheusMiddleware(server_addr=\\\"0.0.0.0\\\", server_port=9000), ) \",\"After that, metrics will be available at port 9000. Of course, this parameter can be configured.\\nIf you have other metrics, they'll be shown as well.\"]},\"19\":{\"h\":\"Available result backends\",\"t\":[\"Result backends are used to store execution results. This includes:\",\"return value;\",\"Execution time in seconds.\"]},\"20\":{\"h\":\"DummyResultBackend\",\"t\":[\"This result backend doesn't do anything. It doesn't store results and cannot be used in cases, where you need actual results.\",\"This broker will always return None for any return_value. Please be careful.\"]},\"21\":{\"h\":\"Redis result backend\",\"t\":[\"This result backend is not part of the core taskiq library. You can install it as a separate package taskiq-redis.\",\"pip install taskiq-redis \",\"You can read more about parameters and abilities of this broker in README.md.\"]},\"22\":{\"h\":\"Available schedule sources\",\"t\":[\"These objects are used to fetch current schedule for tasks. Currently we have only one schedule source.\"]},\"23\":{\"h\":\"RedisScheduleSource\",\"t\":[\"This source is capable of adding new schedules in runtime. It uses Redis as a storage for schedules. To use this source you need to install taskiq-redis package.\",\"from taskiq_redis import RedisScheduleSource from taskiq import TaskiqScheduler redis_source = RedisScheduleSource(\\\"redis://localhost:6379/0\\\") scheduler = TaskiqScheduler(broker, sources=[redis_source]) \",\"For more information on how to use dynamic schedule sources read Dynamic scheduling section.\"]},\"24\":{\"h\":\"LabelScheduleSource\",\"t\":[\"This source parses labels of tasks, and if it finds a schedule label, it considers this task as scheduled.\",\"The format of the schedule label is the following:\",\"@broker.task( schedule=[ { \\\"cron\\\": \\\"* * * * *\\\", # type: str, either cron or time shoule be specified. \\\"cron_offset\\\": None # type: str | timedelta | None, can be ommited. \\\"time\\\": None # type: datetime | None, either cron or time shoule be specified. \\\"args\\\": [], # type List[Any] | None, can be omitted. \\\"kwargs\\\": {}, # type: Dict[str, Any] | None, can be omitted. \\\"labels\\\": {}, # type: Dict[str, Any] | None, can be omitted. } ] ) async def my_task(): ... \",\"Parameters:\",\"cron - crontab string when to run the task.\",\"cron_offset - timezone offset for cron values. Explained here\",\"time - specific time when send the task.\",\"args - args to use, when invoking the task.\",\"kwargs - key-word arguments to use when invoking the task.\",\"labels - additional labels to use when invoking the task.\",\"To enable this source, just add it to the list of sources:\",\"from taskiq.scheduler import TaskiqScheduler from taskiq.schedule_sources import LabelScheduleSource broker = ... scheduler = TaskiqScheduler( broker=broker, sources=[LabelScheduleSource(broker)], ) \",\"Cool notice!\",\"In order to resolve all labels correctly, don't forget to import\\nall task modules using CLI interface.\"]},\"25\":{\"h\":\"Extending taskiq\",\"t\":[\"Taskiq is super extendable. The core library comes with different abstract classes. You can implement these abstract classes to extend functionality.\",\"All abstract classes can be found in taskiq.abc package.\"]},\"26\":{\"h\":\"Contents:\",\"t\":[\"Brokers\",\"Middlewares\",\"Result backends\",\"CLI\",\"Schedule sources\"]},\"27\":{\"h\":\"Brokers\",\"t\":[\"To add a new broker you need to implement two methods kick and listen of the taskiq.abc.broker.AsyncBroker abstract class. But along with them we have helper methods. Such as shutdown and startup.\",\"Here is a template for new brokers:\",\"from typing import AsyncGenerator, Union from taskiq import AckableMessage, AsyncBroker, BrokerMessage class MyBroker(AsyncBroker): def __init__(self) -> None: # Please call this super method to set default values to # many different fields. super().__init__() async def startup(self) -> None: # Here you can do some startup magic. # Like opening a connection. return await super().startup() async def shutdown(self) -> None: # Here you can perform shutdown operations. # Like closing connections. return await super().shutdown() async def kick(self, message: BrokerMessage) -> None: # Send a message.message. pass async def listen(self) -> AsyncGenerator[Union[bytes, AckableMessage], None]: while True: # Get new message. new_message: bytes = ... # type: ignore # Yield it! yield new_message \",\"The kick method takes a BrokerMessage as a parameter. The BrokerMessage class is a handy helper class for brokers. You can use information from the BrokerMessage to alter the delivery method.\",\"\\\"cool warning!\\\"\",\"As a broker developer, please send only raw bytes from the message field of a BrokerMessage if possible. Serializing it to the string may result in a problem if message bytes are not utf-8 compatible.\"]},\"28\":{\"h\":\"Acknowledgement\",\"t\":[\"The listen method should yield raw bytes of a message. But if your broker supports acking or rejecting messages, the broker should return taskiq.AckableMessage with required fields.\",\"For example:\",\" async def listen(self) -> AsyncGenerator[AckableMessage, None]: for message in self.my_channel: yield AckableMessage( data=message.bytes, # Ack is a function that takes no parameters. # So you either set here method of a message, # or you can make a closure. ack=message.ack # Can be set to None if broker doesn't support it. reject=message.reject ) \"]},\"29\":{\"h\":\"Conventions\",\"t\":[\"For brokers, we have several conventions. It's good if your broker implements them. These rules are optional, and it's ok if your broker doesn't implement them.\",\"If the message has the delay label with int or float number, this task's execution must be delayed with the same number of seconds as in the delay label.\",\"If the message has the priority label, this message must be sent with priority. Tasks with\\nhigher priorities are executed sooner.\"]},\"30\":{\"h\":\"CLI\",\"t\":[\"You can easily add new subcommands to taskiq. All default subcommands also use this mechanism, since it's easy to use.\",\"At first you need to add a class that implements taskiq.abc.cmd.TaskiqCMD abstract class.\",\"from argparse import ArgumentParser from typing import Sequence from taskiq.abc.cmd import TaskiqCMD class MyCommand(TaskiqCMD): short_help = \\\"Demo command\\\" def exec(self, args: Sequence[str]) -> None: parser = ArgumentParser() parser.add_argument( \\\"--test\\\", dest=\\\"test\\\", default=\\\"default\\\", help=\\\"My test parameter.\\\", ) parsed = parser.parse_args(args) print(parsed) \",\"In the exec method, you should parse incoming arguments. But since all CLI arguments to taskiq are shifted you can ignore the args parameter.\",\"Also, you can use your favorite tool to build CLI, like click or typer.\",\"After you have such class, you need to add entrypoint that points to that class.\",\"You can read more about entry points in python documentation. The subcommand name is the same as the name of the entry point you've created.\",\"$ taskiq demo --help usage: demo [-h] [--test TEST] optional arguments: -h, --help show this help message and exit --test TEST My test parameter. \",\"$ taskiq demo --test aaa Namespace(test='aaa') \"]},\"31\":{\"h\":\"Middlewares\",\"t\":[\"Middlewares are super helpful. You can inject some code before or after task's execution.\",\"Middlewares must implement taskiq.abc.middleware.TaskiqMiddleware abstract class. Every method of a middleware can be either sync or async. Taskiq will execute it as you expect.\",\"For example:\",\"Also, middlewares always have reference to the current broker in self.broker field. If you want to kick a message during the execution of some middleware hooks, you may use self.broker to do so.\",\"Taskiq-pipelines uses middlewares to\\ncall next tasks.\"]},\"32\":{\"h\":\"Result backend\",\"t\":[\"Result backends are used to store information about task execution. To create new result_backend you have to implement taskiq.abc.result_backend.AsyncResultBackend class.\",\"Here's a minimal example of a result backend:\",\"from typing import TypeVar from taskiq import TaskiqResult from taskiq.abc.result_backend import AsyncResultBackend _ReturnType = TypeVar(\\\"_ReturnType\\\") class MyResultBackend(AsyncResultBackend[_ReturnType]): async def startup(self) -> None: \\\"\\\"\\\"Do something when starting broker.\\\"\\\"\\\" async def shutdown(self) -> None: \\\"\\\"\\\"Do something on shutdown.\\\"\\\"\\\" async def set_result( self, task_id: str, result: TaskiqResult[_ReturnType], ) -> None: \\\"\\\"\\\" Set result in your backend. :param task_id: current task id. :param result: result of execution. \\\"\\\"\\\" async def get_result( self, task_id: str, with_logs: bool = False, ) -> TaskiqResult[_ReturnType]: \\\"\\\"\\\" Here you must retrieve result by id. Logs is a part of a result. Here we have a parameter whether you want to fetch result with logs or not, because logs can have a lot of info and sometimes it's critical to get only needed information. :param task_id: id of a task. :param with_logs: whether to fetch logs. :return: result. \\\"\\\"\\\" return ... # type: ignore async def is_result_ready( self, task_id: str, ) -> bool: \\\"\\\"\\\" Check if result exists. This function must check whether result is available in your result backend without fetching the result. :param task_id: id of a task. :return: True if result is ready. \\\"\\\"\\\" return ... # type: ignore \",\"Cool tip!\",\"It's a good practice to skip fetching logs from the storage unless with_logs=True is explicitly specified.\",\"Important note!\",\"with_logs param is now deprecated. It will be removed in future releases.\"]},\"33\":{\"h\":\"Schedule source\",\"t\":[\"Schedule sources are used to get schedule for tasks. To create new schedule source you have to implement the taskiq.abc.schedule_source.ScheduleSource abstract class.\",\"Here's a minimal example of a schedule source:\",\"from typing import List from taskiq import ScheduledTask, ScheduleSource class MyScheduleSource(ScheduleSource): async def startup(self) -> None: \\\"\\\"\\\"Do something when starting broker.\\\"\\\"\\\" async def shutdown(self) -> None: \\\"\\\"\\\"Do something on shutdown.\\\"\\\"\\\" async def get_schedules(self) -> List[\\\"ScheduledTask\\\"]: # Here you must return list of scheduled tasks from your source. return [ ScheduledTask( task_name=\\\"\\\", labels={}, args=[], kwargs={}, cron=\\\"* * * * *\\\", ), ] # This method is optional. You may not implement this. # It's just a helper to people to be able to interact with your source. async def add_schedule(self, schedule: \\\"ScheduledTask\\\") -> None: print(\\\"New schedule added:\\\", schedule) # This method is completely optional, but if you want to support # schedule cancelation, you must implement it. async def delete_schedule(self, schedule_id: str) -> None: print(\\\"Deleting schedule:\\\", schedule_id) # This method is optional. You may not implement this. # It's just a helper to people to be able to interact with your source. async def pre_send(self, task: \\\"ScheduledTask\\\") -> None: \\\"\\\"\\\" Actions to execute before task will be sent to broker. This method may raise ScheduledTaskCancelledError. This cancels the task execution. :param task: task that will be sent \\\"\\\"\\\" # This method is optional. You may not implement this. # It's just a helper to people to be able to interact with your source. async def post_send(self, task: \\\"ScheduledTask\\\") -> None: \\\"\\\"\\\" Actions to execute after task was sent to broker. :param task: task that just have sent \\\"\\\"\\\" \",\"You can implement a schedule source that write schedules in the database and have delayed tasks in runtime.\"]},\"34\":{\"h\":\"Framework integrations\",\"t\":[\"Taskiq is meant to be simple and adaptive. That's why we try to add different integrations to make development with taskiq and your favorite framework easy and fun!\",\"Integrations with frameworks add two things:\",\"Startup and Shutdown events;\",\"Dependencies to use in your handler.\"]},\"35\":{\"h\":\"Taskiq + FastStream\",\"t\":[\"FastStream is a library that allows you to write consumers and producers for different message brokers almost like taskiq. But the differense is that taskiq is more focused on tasks for a specific project and more like celery but async, while FastStream is more focused on events and defining how different systems communicate with each other using distributed brokers.\",\"If you want to declare communication between different projects you can use taskiq, but it might be a bit more complex than using FastStream.\",\"Although these libraries solve different problems, they have integration between each other, so you can use FastStream as a broker for taskiq. It allows FastStream to use taskiq's scheduler along with its own features.\",\"To use FastStream as a broker for taskiq you need to install the taskiq-faststream library:\",\"pip install \\\"taskiq-faststream\\\" \",\"And you can use it like this:\",\"from faststream import FastStream from faststream.kafka import KafkaBroker from taskiq_faststream import BrokerWrapper broker = KafkaBroker(\\\"localhost:9092\\\") app = FastStream(broker) taskiq_broker = BrokerWrapper(broker) \",\"You can read more about scheduling tasks for FastStream in the FastStream documentation.\"]},\"36\":{\"h\":\"Taskiq + Aiogram\",\"t\":[\"Taskiq-Aiogram is a nice integration with one of the best telegram bot libraries - aiogram.\",\"This integration allows you to easily send delayed messages or run intensive functions without blocking the message handing.\",\"This integration adds three main dependencies which you can use in your taskiq functions:\",\"aiogram.Bot - the bot instance that you can use to send messages or perform other actions. If multiple bots listen to the same dispatcher, this dependency will be resolved to the latest bot passed in the taskiq_aiogram.init function.\",\"aiogram.Dispatcher - current dispatcher instance.\",\"List[aiogram.Bot] - list of all bots that were passed to the taskiq_aiogram.init function.\",\"To enable the integration, please install the taskiq-aiogram library:\",\"pip install \\\"taskiq-aiogram\\\" \",\"After the installation is complete, add an initialization function call to your broker's main file so it becomes something like this:\",\"import asyncio import taskiq_aiogram from aiogram import Bot from taskiq import TaskiqDepends from taskiq_redis import ListQueueBroker broker = ListQueueBroker(\\\"redis://localhost\\\") # This line is going to initialize everything. taskiq_aiogram.init( broker, # This is path to the dispatcher. \\\"bot:dp\\\", # This is path to the bot instance. \\\"bot:bot\\\", # You can specify more bots here. ) @broker.task(task_name=\\\"my_task\\\") async def my_task(chat_id: int, bot: Bot = TaskiqDepends()) -> None: print(\\\"I'm a task\\\") await asyncio.sleep(4) await bot.send_message(chat_id, \\\"task completed\\\") \",\"Let's see how to use this integration.\",\"import asyncio import logging import sys from aiogram import Bot, Dispatcher, types from aiogram.filters import Command from tkq import broker, my_task dp = Dispatcher() bot = Bot(token=\\\"TOKEN\\\") # Taskiq calls this function when starting the worker. @dp.startup() async def setup_taskiq(bot: Bot, *_args, **_kwargs): # Here we check if it's a clien-side, # Because otherwise you're going to # create infinite loop of startup events. if not broker.is_worker_process: logging.info(\\\"Setting up taskiq\\\") await broker.startup() # Taskiq calls this function when shutting down the worker. @dp.shutdown() async def shutdown_taskiq(bot: Bot, *_args, **_kwargs): if not broker.is_worker_process: logging.info(\\\"Shutting down taskiq\\\") await broker.shutdown() ## Simple command to handle @dp.message(Command(\\\"task\\\")) async def message(message: types.Message): await my_task.kiq(message.chat.id) ## Main function that starts the bot. async def main(): await dp.start_polling(bot) if __name__ == \\\"__main__\\\": logging.basicConfig(level=logging.INFO, stream=sys.stdout) asyncio.run(main()) \",\"That's it. Now you can easily call tasks from your bots and access bots from within your tasks.\"]},\"37\":{\"h\":\"Taskiq + AioHTTP\",\"t\":[\"AioHTTP is a framework for building robust applications. We created several libraries to make the experience with AioHTTP even better.\",\"We created a library aiohttp-deps to add FastAPI-like dependency injection in AioHTTP.\",\"To install it, simply run:\",\"pip install \\\"aiohttp-deps\\\" \",\"After the installation, please add startup event to your application to initialize dependencies context.\",\"from aiohttp import web import aiohttp_deps app = web.Application() # This startup event makes all the magic happen. # It parses current handlers and create dependency graphs for them. app.on_startup.append(aiohttp_deps.init) web.run_app(app) \",\"You can read more about dependency injection and available dependencies in the project's README.md.\"]},\"38\":{\"h\":\"Adding taskiq integration\",\"t\":[\"We highly recommend using aiohttp with aiohttp-deps because it allows us to reuse the same dependencies for your handlers and tasks. First of all, you should install the taskiq-aiohttp library.\",\"pip install \\\"taskiq-aiohttp\\\" \",\"After the installation is complete, add an initialization function call to your broker's main file so it becomes something like this:\",\"import taskiq_aiohttp broker = MyBroker() # The second argument is a path to web.Application variable. # Also you can provide here a factory function that takes no # arguments and returns an application. This function can be async. taskiq_aiohttp.init(broker, \\\"my_project.main:app\\\") \",\"From this point, you'll be able to reuse the same dependencies as with aiohttp-deps. Let's take a look at this function:\",\"In this example, we depend on the current application. We can use its state in a current task or any other dependency. We can take db_pool from your application's state, which is the same pool, as the one you've created on AiohTTP's startup. But this application is only a mock of your application. It has correct types and all your variables that you filled on startup, but it doesn't handle any request. This integration adds two main dependencies:\",\"web.Application - current application.\",\"web.Request - mocked request. This request only exists to be able to use the same dependencies.\",\"You can find more detailed examples in the examples repo.\"]},\"39\":{\"h\":\"Testing\",\"t\":[\"Writing tests for AioHTTP with taskiq is as easy as writing tests for the aiohttp application. The only difference is that, if you want to use InMemoryBroker, then you need to add context for dependency injection. It's easier to call populate_context when creating a test_client fixture.\",\"import taskiq_aiohttp @pytest.fixture async def test_client( app: web.Application, ) -> AsyncGenerator[TestClient, None]: \\\"\\\"\\\" Create a test client. This function creates a TestServer and a test client for the application. Also this fixture populates context with needed variables. :param app: current application. :yield: ready to use client. \\\"\\\"\\\" loop = asyncio.get_running_loop() server = TestServer(app) client = TestClient(server, loop=loop) await client.start_server() # This is important part. # Since InMemoryBroker doesn't # run as a worker process, we have to populate # broker's context by hand. taskiq_aiohttp.populate_context( broker=broker, server=server.runner.server, app=app, loop=loop, ) yield client broker.custom_dependency_context = {} await client.close() \"]},\"40\":{\"h\":\"Taskiq + FastAPI\",\"t\":[\"FastAPI is a highly popular async web framework in Python. It has gained its popularity because of two things:\",\"It's easy to use;\",\"Cool dependency injection.\",\"In taskiq, we try to make our libraries easy to use, and We have a dependency injection too. So we have created the library \\\"taskiq-fastapi\\\" to make integration with FastAPI as smooth as possible.\",\"Let's see what we got here. In this library, we provide users with only one public function called init. It takes a broker and a string path (as in uvicorn) to the fastapi application (or factory function). People should call this function in their main broker file.\",\"from taskiq import ZeroMQBroker import taskiq_fastapi broker = ZeroMQBroker() taskiq_fastapi.init(broker, \\\"my_package.application:app\\\") \",\"There are two rules to make everything work as you expect:\",\"Add TaskiqDepends as a default value for every parameter with Request or HTTPConnection types in base dependencies. Or if you use Annotated, please annotate these types with TaskiqDepends.\",\"Use only TaskiqDepends in tasks.\",\"Cool and important note!\",\"The Request or HTTPConnection that you'll get injected in your task is not the same request or connection you have had in your handler when you were sending the task!\",\"Many fastapi dependency functions depend on fastapi.Request. We provide a mocked request to such dependencies. But taskiq cannot resolve dependencies until you explicitly specify that this parameter must be injected.\",\"As an example. If you previously had a dependency like this:\",\"from fastapi import Request from typing import Any def get_redis_pool(request: Request) -> Any: return request.app.state.redis_pool \",\"To make it resolvable in taskiq, people should mark default fastapi dependencies (such as Request and HTTPConnection) with TaskiqDepends. Like this:\",\"Also you want to call startup of your brokers somewhere.\",\"from fastapi import FastAPI from your_project.taskiq import broker app = FastAPI() @app.on_event(\\\"startup\\\") async def app_startup(): if not broker.is_worker_process: await broker.startup() @app.on_event(\\\"shutdown\\\") async def app_shutdown(): if not broker.is_worker_process: await broker.shutdown() \",\"And that's it. Now you can use your taskiq tasks with functions and classes that depend on FastAPI dependenices. You can find bigger examples in the examples repo.\"]},\"41\":{\"h\":\"Testing\",\"t\":[\"Testing is no different from general testing advice from articles about testing. But if you use InMemoryBroker in your tests, you need to provide it with a custom dependency context because it doesn't run as a worker process.\",\"Let's imagine that you have a fixture of your application. It returns a new fastapi application to use in tests.\",\" @pytest.fixture def fastapi_app() -> FastAPI: return get_app() \",\"Right after this fixture, we define another one.\",\"import taskiq_fastapi @pytest.fixture(autouse=True) def init_taskiq_deps(fastapi_app: FastAPI): # This is important part. Here we add dependency context, # this thing helps in resolving dependencies for tasks # for inmemory broker. taskiq_fastapi.populate_dependency_context(broker, fastapi_app) yield broker.custom_dependency_context = {} \",\"This fixture has autouse flag, which means it would run on every test automatically.\"]},\"42\":{\"h\":\"Introduction\"},\"43\":{\"h\":\"What is taskiq\",\"t\":[\"Taskiq is a library that helps you send and process python functions in a distributed manner. For example, you have many heavy to calculate functions you want to execute on another server. You can implement interservice communication by yourself, or you can use Taskiq to make the job done easily.\",\"The core library doesn't have much functionality. It provides two built-in brokers, CLI, basic functionality for creating distributed tasks, and abstractions to extend the taskiq. The main idea of taskiq is to make it modular and easy to extend. We have libraries for many possible use cases, but if you lack something, you can adopt taskiq to fit your needs.\"]},\"44\":{\"h\":\"Why not use existing libraries?\",\"t\":[\"We created this project because we couldn't find any project that can execute and send async functions using distributed queues like RabbitMQ.\",\"You might have seen projects built on top of asyncio that solve a similar problem, but here's a comparison table of the taskiq and other projects.\",\"Feature name\",\"Taskiq\",\"Arq\",\"AioTasks\",\"Actively maintained\",\"✅\",\"✅\",\"❌\",\"Multiple broker backends\",\"✅\",\"❌\",\"✅\",\"Multiple result backends\",\"✅\",\"❌\",\"❌\",\"Have a rich documentation\",\"✅\",\"❌\",\"❌\",\"Startup & Shutdown events\",\"✅\",\"✅\",\"❌\",\"Have ability to abort tasks\",\"❌\",\"✅\",\"❌\",\"Custom serializers\",\"✅\",\"✅\",\"❌\",\"Dependency injection\",\"✅\",\"❌\",\"❌\",\"Task pipelines\",\"✅\",\"✅\",\"❌\",\"Task schedules\",\"✅\",\"✅\",\"❌\",\"Global middlewares\",\"✅\",\"❌\",\"❌\",\"If you have a fully synchronous project, consider using celery or dramatiq instead.\"]},\"45\":{\"h\":\"Architecture overview\",\"t\":[\"Taskiq has very simple structure. On the client side all messages are sent by kickers using brokers. On the worker side all messages received by the broker and results are stored in result backends.\",\"On the sequence diagram it looks like this:\",\"Cool tip!\",\"If you use dark theme and cannot see words on diagram, try switching to light theme and back to dark.\",\"Let's discuss every component.\"]},\"46\":{\"h\":\"Broker\",\"t\":[\"Brokers are the most critical element of the taskiq. Every broker must implement the AsyncBroker abstract class from taskiq.abc.broker to make things work.\",\"AsyncBroker class has two main methods to implement:\",\"kick\",\"listen\",\"The kick method puts the message in the external system. For example, it may call the PUB command in Redis.\",\"The listen is a method with an infinite loop that reads messages from the external system and creates a task for processing messages. For example, it subscribes to the Redis channel and waits for new messages.\"]},\"47\":{\"h\":\"Kicker\",\"t\":[\"Kicker is an object that used to form a message for broker. This class isn't extendable. To form a message kicker uses labels, task name and arguments.\",\"When you call the task.kiq on a task, it generates a Kicker instance and is a shortening for the task.kicker().kiq(...). You can use kicker to change broker, add labels, or even change task_id.\",\"import asyncio from taskiq.brokers.inmemory_broker import InMemoryBroker broker = InMemoryBroker() second_broker = InMemoryBroker() @broker.task async def my_async_task() -> None: \\\"\\\"\\\"My lovely task.\\\"\\\"\\\" await asyncio.sleep(1) print(\\\"Hello\\\") async def main(): # This task was initially assigned to broker, # but this time it is going to be sent using # the second broker with additional label `delay=1`. task = await my_async_task.kicker().with_broker(second_broker).with_labels(delay=1).kiq() print(await task.get_result()) asyncio.run(main()) \"]},\"48\":{\"h\":\"Messages\",\"t\":[\"Every message has labels. You can define labels using task decorator, or you can add them using kicker.\",\"For example:\",\" @broker.task(my_label=1, label2=\\\"something\\\") async def my_async_task() -> None: \\\"\\\"\\\"My lovely task.\\\"\\\"\\\" await asyncio.sleep(1) print(\\\"Hello\\\") async def main(): await my_async_task.kiq() \",\"It's equivalent to this\",\" @broker.task async def my_async_task() -> None: \\\"\\\"\\\"My lovely task.\\\"\\\"\\\" await asyncio.sleep(1) print(\\\"Hello\\\") async def main(): await my_async_task.kicker().with_labels( my_label=1, label2=\\\"something\\\", ).kiq() \",\"Also you can assign custom task names using decorator. This is useful to be sure that task names are unique and resolved correctly. Also it may be useful to balance message routing in some brokers.\",\"for example:\",\"@broker.task(task_name=\\\"my_tasks.add_one\\\", label1=1) async def my_async_task() -> None: \\\"\\\"\\\"My lovely task.\\\"\\\"\\\" await asyncio.sleep(1) print(\\\"Hello\\\") \"]},\"49\":{\"h\":\"Result backend\",\"t\":[\"Result backend is used to store and get results of the execution. Results have type TaskiqResult from taskiq.result.\",\"Every ResultBackend must implement AsyncResultBackend from taskiq.abc.result_backend. By default, brokers use DummyResultBackend. It doesn't do anything and cannot be used in real-world scenarios. But some brokers can override it. For example InMemoryBroker by default uses InMemoryResultBackend and returns correct results.\"]},\"50\":{\"h\":\"Workers\",\"t\":[\"Taskiq has a command line interface to run workers. It's simple to get it to work.\",\"You have to provide a path to your broker. As an example, if you want to start listening to new tasks with a broker that is stored in a variable my broker in the module my_project.broker run this in your terminal:\",\"taskiq worker my_project.broker:mybroker \",\"taskiq can discover task modules to import automatically, if you add the -fsd (file system discover) option.\",\"Let's assume we have project with the following structure:\",\"test_project ├── broker.py ├── submodule │ └── tasks.py └── utils └── tasks.py \",\"You can specify all tasks modules to import manually.\",\"taskiq worker test_project.broker:broker test_project.submodule.tasks test_project.utils.tasks \",\"Or you can let taskiq find all python modules named tasks in current directory recursively.\",\"taskiq worker test_project.broker:broker -fsd \",\"If you have uvloop installed, taskiq will automatically install new policies to event loop. You can get more info about the CLI in the CLI section.\",\"Cool info\",\"By default we start two processes, if you want to change this value, please take a look at --help.\"]},\"51\":{\"h\":\"Middlewares\",\"t\":[\"Middlewares are used to modify message, or take some actions before or after task is complete.\",\"You can write your own middlewares by subclassing the taskiq.abc.middleware.TaskiqMiddleware.\",\"Every hook can be sync or async. Taskiq will execute it.\",\"For example, this is a valid middleware.\",\"import asyncio from taskiq.abc.middleware import TaskiqMiddleware from taskiq.message import TaskiqMessage class MyMiddleware(TaskiqMiddleware): async def pre_send(self, message: \\\"TaskiqMessage\\\") -> TaskiqMessage: await asyncio.sleep(1) message.labels[\\\"my_label\\\"] = \\\"my_value\\\" return message def post_send(self, message: \\\"TaskiqMessage\\\") -> None: print(f\\\"Message {message} was sent.\\\") \",\"Here are methods you can implement in the order they are executed:\",\"pre_send - executed on the client side before the message is sent. Here you can modify the message.\",\"post_send - executed right after the message was sent.\",\"pre_execute - executed on the worker side after the message was received by a worker and before its execution.\",\"on_error - executed after the task was executed if the exception was found.\",\"post_execute - executed after the message was executed.\",\"post_save - executed after the result was saved in the result backend.\",\"You can use sync or async hooks without changing anything, but adding async to the hook signature.\",\"important note\",\"If exception happens in middlewares it won't be caught. Please ensure that you have try\\\\except for all edge cases of your middleware.\",\"Middlewares can store information in message.labels for later use. For example SimpleRetryMiddleware uses labels to remember number of failed attempts.\"]},\"52\":{\"h\":\"Context\",\"t\":[\"Context is a useful class with some additional functions. You can use context to get broker that runs this task, from inside of the task.\",\"Or it has ability to control the flow of execution. Here's example of how to get the context.\",\"Also through contexts you can reject or requeue a task. It's easy as this:\",\"Calling requeue or reject stops task execution and either drops the message, or puts it back to the queue.\",\"Also, with context you'll be able to get current message that was received by the broker\\nor even instance of a broker who received a message. This may be useful for lib developers.\"]},\"53\":{\"h\":\"CLI\",\"t\":[\"Core library comes with CLI program called taskiq, which is used to run different subcommands.\",\"By default taskiq is shipped with only two commands: worker and scheduler. You can search for more taskiq plugins using pypi. Some plugins may add new commands to taskiq.\"]},\"54\":{\"h\":\"Worker\",\"t\":[\"To run worker process, you have to specify the broker you want to use and modules with defined tasks. Like this:\",\"taskiq worker mybroker:broker_var my_project.module1 my_project.module2 \"]},\"55\":{\"h\":\"Auto importing\",\"t\":[\"Enumerating all modules with tasks is not an option sometimes. That's why taskiq can auto-discover tasks in current directory recursively.\",\"We have two options for this:\",\"--tasks-pattern or -tp. It's a glob pattern of files to import. By default it is **/tasks.py which searches for all tasks.py files. May be specified multiple times.\",\"--fs-discover or -fsd. This option enables search of task files in current directory recursively, using the given pattern.\"]},\"56\":{\"h\":\"Acknowledgements\",\"t\":[\"The taskiq supports three types of acknowledgements:\",\"when_received - task is acknowledged when it is received by the worker.\",\"when_executed - task is acknowledged right after it is executed by the worker.\",\"when_saved - task is acknowledged when the result of execution is saved in the result backend.\",\"This can be configured using --ack-type parameter. For example:\",\"taskiq worker --ack-type when_executed mybroker:broker \"]},\"57\":{\"h\":\"Type casts\",\"t\":[\"One of features taskiq have is automatic type casts. For example you have a type-hinted task like this:\",\"async def task(val: int) -> int: return val + 1 \",\"If you'll call task.kiq(\\\"2\\\") you'll get 3 as the returned value. Because we parse signatures of tasks and cast incoming parameters to target types. If type-cast fails you won't throw any error. It just leave the value as is. That functionality allows you to use pydantic models, or dataclasses as the input parameters.\",\"To disable this pass the --no-parse option to the taskiq.\"]},\"58\":{\"h\":\"Hot reload\",\"t\":[\"This is annoying to restart workers every time you modify tasks. That's why taskiq supports hot-reload. Reload is unavailable by default. To enable this feature install taskiq with reload extra.\",\"To enable this option simply pass the --reload or -r option to worker taskiq CLI.\",\"Also this option supports .gitignore files. If you have such file in your directory, it won't reload worker when you modify ignored files. To disable this functionality pass --do-not-use-gitignore option.\"]},\"59\":{\"h\":\"Graceful reload (available only on Unix systems)\",\"t\":[\"To perform graceful reload, send SIGHUP signal to the main worker process. This action will reload all workers with new code. It's useful for deployment that requires zero downtime, but don't use orchestration tools like Kubernetes.\",\"taskiq worker my_module:broker kill -HUP
\"]},\"60\":{\"h\":\"Other parameters\",\"t\":[\"--no-configure-logging - disables default logging configuration for workers.\",\"--log-level is used to set a log level (default INFO).\",\"--max-async-tasks - maximum number of simultaneously running async tasks.\",\"--max-prefetch - number of tasks to be prefetched before execution. (Useful for systems with high message rates, but brokers should support acknowledgements).\",\"--max-threadpool-threads - number of threads for sync function exection.\",\"--no-propagate-errors - if this parameter is enabled, exceptions won't be thrown in generator dependencies.\",\"--receiver - python path to custom receiver class.\",\"--receiver_arg - custom args for receiver.\",\"--ack-type - Type of acknowledgement. This parameter is used to set when to acknowledge the task. Possible values are when_received, when_executed, when_saved. Default is when_saved.\",\"max-tasks-per-child - maximum number of tasks to be executed by a single worker process before restart.\",\"--shutdown-timeout - maximum amount of time for graceful broker's shutdown in seconds.\",\"--wait-tasks-timeout - if cannot read new messages from the broker or maximum number of tasks is reached, worker will wait for all current tasks to finish. This parameter sets the maximum amount of time to wait until shutdown.\"]},\"61\":{\"h\":\"Scheduler\",\"t\":[\"Scheduler is used to schedule tasks as described in Scheduling tasks section.\",\"To run it simply run\",\"taskiq scheduler [optional module to import]... \",\"For example\",\"taskiq scheduler my_project.broker:scheduler my_project.module1 my_project.module2 \"]},\"62\":{\"h\":\"Parameters\",\"t\":[\"Path to scheduler is the only required argument.\",\"--tasks-pattern or -tp. It's a glob pattern of files to import. By default it is **/tasks.py which searches for all tasks.py files. May be specified multiple times.\",\"--fs-discover or -fsd. This option enables search of task files in current directory recursively, using the given pattern.\",\"--no-configure-logging - use this parameter if your application configures custom logging.\",\"--log-level is used to set a log level (default INFO).\",\"--skip-first-run - skip first run of scheduler. This option skips running tasks immediately after scheduler start.\"]},\"63\":{\"h\":\"Dynamic Environments\",\"t\":[\"This article is for people who want to:\",\"Create brokers dynamically.\",\"Register tasks, and run them inside their code.\",\"Implement more complex logic.\",\"Taskiq allows you to set up broker instances throughout your application and register tasks for dynamic execution. However, tasks created this way won't be found by the taskiq worker command.\",\"To define tasks and assign them to a broker, use register_task method.\",\"import asyncio from taskiq_redis import ListQueueBroker async def main() -> None: # Here we define a broker. dyn_broker = ListQueueBroker(\\\"redis://localhost\\\") await dyn_broker.startup() # Now we register lambda as a task. dyn_task = dyn_broker.register_task( lambda x: print(\\\"A\\\", x), task_name=\\\"dyn_task\\\", ) # now we can send it. await dyn_task.kiq(x=1) await dyn_broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \",\"In this example, the task is defined using a lambda within the main function. As the lambda is not visible outside of the main function scope, the task is not executable by taskiq worker command.\",\"To overcome this issue, you can:\",\"Create a dynamic worker task within the current event loop.\",\"Implement your own broker listener with the information about all of your tasks.\",\"Here's an example of a dynamic worker task creation:\",\"import asyncio from taskiq_redis import ListQueueBroker from taskiq.api import run_receiver_task async def main() -> None: # Here we define a broker. dyn_broker = ListQueueBroker(\\\"redis://localhost\\\") await dyn_broker.startup() worker_task = asyncio.create_task(run_receiver_task(dyn_broker)) # Now we register lambda as a task. dyn_task = dyn_broker.register_task( lambda x: print(\\\"A\\\", x), task_name=\\\"dyn_task\\\", ) # Now we can send it. await dyn_task.kiq(x=1) await asyncio.sleep(2) worker_task.cancel() try: await worker_task except asyncio.CancelledError: print(\\\"Worker successfully exited.\\\") await dyn_broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \",\"In this example, a named dynamic lambda task is created and registered in a broker, similar to the previous example. The difference is the creation of a new receiver coroutine for the worker task. It will listen to the new messages and execute them. The worker task will be executed in the current event loop. After exiting the scope, the worker task will get cancelled. For illustration purposes it is cancelled explicitly.\",\"It's possible to run a scheduler in the current event loop as well:\",\"import asyncio import datetime from taskiq_redis import ListQueueBroker from taskiq import TaskiqScheduler from taskiq.api import run_receiver_task, run_scheduler_task from taskiq.schedule_sources import LabelScheduleSource async def main() -> None: # Here we define a broker. dyn_broker = ListQueueBroker(\\\"redis://localhost\\\") dyn_scheduler = TaskiqScheduler(dyn_broker, [LabelScheduleSource(dyn_broker)]) await dyn_broker.startup() # Now we register lambda as a task. dyn_task = dyn_broker.register_task( lambda x: print(\\\"A\\\", x), task_name=\\\"dyn_task\\\", # We add a schedule when to run task. schedule=[ { # Here we also can specify cron instead of time. \\\"time\\\": datetime.datetime.utcnow() + datetime.timedelta(seconds=2), \\\"args\\\": [22], }, ], ) # We create scheduler after the task declaration, # so we don't have to wait a minute before it gets to the task. # However, defining a scheduler before the task declaration is also possible. # But we have to wait till it gets to task execution for the second time. worker_task = asyncio.create_task(run_receiver_task(dyn_broker)) scheduler_task = asyncio.create_task(run_scheduler_task(dyn_scheduler)) # We still able to send the task. await dyn_task.kiq(x=1) await asyncio.sleep(10) worker_task.cancel() try: await worker_task except asyncio.CancelledError: print(\\\"Worker successfully exited.\\\") scheduler_task.cancel() try: await scheduler_task except asyncio.CancelledError: print(\\\"Scheduler successfully exited.\\\") await dyn_broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \"]},\"64\":{\"h\":\"Getting started\"},\"65\":{\"h\":\"Installation\",\"t\":[\"You can install taskiq from pypi or directly from git using pip:\",\"After installation of the core library, you need to find the broker that fits you. You can do it using PyPI search.\",\"Cool tip!\",\"We highly recommend taskiq-aio-pika or taskiq-nats as the broker and taskiq-redis as the result backend for production use.\"]},\"66\":{\"h\":\"Running tasks\",\"t\":[\"Now you need to create a python module with broker declaration. It's just a plain python file with the variable of your broker. For this particular example, I'm going to use the InMemoryBroker.\",\"Important note\",\"The InMemoryBroker doesn't send any data over the network, and you cannot use this broker in a real-world scenario, but it's still useful for local development if you do not want to set up a taskiq worker.\",\"# broker.py from taskiq import InMemoryBroker broker = InMemoryBroker() \",\"And that's it. Now let's add some tasks and the main function. You can add tasks in separate modules. You can find more information about that further. Also, we call the startup method at the beginning of the main function.\",\"# broker.py import asyncio from taskiq import InMemoryBroker broker = InMemoryBroker() @broker.task async def add_one(value: int) -> int: return value + 1 async def main() -> None: # Never forget to call startup in the beginning. await broker.startup() # Send the task to the broker. task = await add_one.kiq(1) # Wait for the result. result = await task.wait_result(timeout=2) print(f\\\"Task execution took: {result.execution_time} seconds.\\\") if not result.is_err: print(f\\\"Returned value: {result.return_value}\\\") else: print(\\\"Error found while executing task.\\\") await broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \",\"Cool warning!\",\"Calling the startup method is necessary. If you don't call it, you may get an undefined behaviour.\",\"If you run this code, you will get this in your terminal:\",\"❯ python mybroker.py Task execution took: 7.3909759521484375e-06 seconds. Returned value: 2 \",\"Ok, the code of the task execution is a little bit fancier than an ordinary function call, but it's still relatively simple to understand. To send a task to the broker, you need to call the .kiq method on the function, it returns the TaskiqTask object that can check whether the result is ready or not. Also it has methods to wait for the result to become available.\",\"You can get more information about taskiq types, CLI and internal structure in the \\\"Architecture overview\\\" section.\"]},\"67\":{\"h\":\"Distributed run\",\"t\":[\"Now let's change InMemoryBroker to some distributed broker instead. In this example we are going to use broker that works with rabbitMQ.\",\"At first we must install the taskiq-aio-pika lib.\",\"pip install taskiq-aio-pika \",\"After the installation, replace the broker we defined earlier with the broker from the taskiq-aio-pika.\",\"from taskiq_aio_pika import AioPikaBroker broker = AioPikaBroker('amqp://guest:guest@localhost:5672') \",\"Also, AioPika broker requires to call startup before using it. Add this line at the beginning of the main function.\",\"await broker.startup() \",\"That's all you need to do.\",\"Complete code\",\"# broker.py import asyncio from taskiq_aio_pika import AioPikaBroker broker = AioPikaBroker(\\\"amqp://guest:guest@localhost:5672\\\") @broker.task async def add_one(value: int) -> int: return value + 1 async def main() -> None: await broker.startup() # Send the task to the broker. task = await add_one.kiq(1) # Wait for the result. result = await task.wait_result(timeout=2) print(f\\\"Task execution took: {result.execution_time} seconds.\\\") if not result.is_err: print(f\\\"Returned value: {result.return_value}\\\") else: print(\\\"Error found while executing task.\\\") await broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \",\"Let's run the worker process. First of all, we need rabbitMQ up and running. I highly recommend you use docker.\",\"Now we need to start worker process by running taskiq cli command. You can get more info about the CLI in the CLI section.\",\"taskiq worker broker:broker \",\"After the worker is up, we can run our script as an ordinary python file and see how the worker executes tasks.\",\"$ python broker.py Task execution took: 0.0 seconds. Returned value: None \",\"But the printed result value is not correct. That happens because we didn't provide any result backend that can store results of task execution. To store results, we can use the taskiq-redis library.\",\"pip install taskiq-redis \",\"After the installation, add a new result backend to the broker.\",\"from taskiq_redis import RedisAsyncResultBackend broker = AioPikaBroker( \\\"amqp://guest:guest@localhost:5672\\\", ).with_result_backend(RedisAsyncResultBackend(\\\"redis://localhost\\\")) \",\"Now we need to start redis.\",\"Complete code\",\"# broker.py import asyncio from taskiq_aio_pika import AioPikaBroker from taskiq_redis import RedisAsyncResultBackend broker = AioPikaBroker( \\\"amqp://guest:guest@localhost:5672\\\", ).with_result_backend(RedisAsyncResultBackend(\\\"redis://localhost\\\")) @broker.task async def add_one(value: int) -> int: return value + 1 async def main() -> None: await broker.startup() # Send the task to the broker. task = await add_one.kiq(1) # Wait for the result. result = await task.wait_result(timeout=2) print(f\\\"Task execution took: {result.execution_time} seconds.\\\") if not result.is_err: print(f\\\"Returned value: {result.return_value}\\\") else: print(\\\"Error found while executing task.\\\") await broker.shutdown() if __name__ == \\\"__main__\\\": asyncio.run(main()) \",\"Let's run taskiq once again. The command is the same.\",\"taskiq worker broker:broker \",\"Now, if we run this file with python, we can get the correct results with a valid execution time.\",\"$ python broker.py Task execution took: 1.0013580322265625e-05 seconds. Returned value: 2 \",\"Continue reading to get more information about taskiq internals.\"]},\"68\":{\"h\":\"Timeouts\",\"t\":[\"If you want to restrict amount of time you want to run task, just add timeout label to the task.\",\"You can do it either with decorator or when calling the task.\",\"Cool alert\",\"We use run_in_executor method to run sync functions. Timeouts will raise a TimeoutException, but\\nsynchronous function may not stop from execution. This is a constraint of python.\"]},\"69\":{\"h\":\"Taskiq message format\",\"t\":[\"Taskiq doesn't force you to use any specific message format. We define default message format, but you can use any format you want.\",\"The default message format is:\",\"But this can be easily changed by creating your own implementation of the TaskiqFormatter class or TaskiqSerializer class.\"]},\"70\":{\"h\":\"Serializers\",\"t\":[\"Serializers define the format of the message but not the structure. For example, if you want to use msgpack or ORJson to serialize your message, you should update the serializer of your broker.\",\"Be default, Taskiq uses JSON serializer. But we also have some implementations of other serializers:\",\"ORJSONSerializer - faster JSON implementation. Also, it supports datetime and UUID serialization.\",\"MSGPackSerializer - MsgPack format serializer. It might be useful to send less data over the network.\",\"CBORSerializer - CBOR format serializer. It is also has a smaller size than JSON.\",\"To define your own serializer, you have to subclass the TaskiqSerializer class and implement dumpb and loadb methods. You can take a look at the existing implementations from the taskiq.serializers module.\",\"To install taskiq with libraries for non-JSON serializers, you should install taskiq with extras.\"]},\"71\":{\"h\":\"Formatters\",\"t\":[\"Formatters define the format of the message. It might be useful if you'd like to send a task to a celery worker for a different project. You can do it in seriazier as well, but formatters give you correct type hints.\",\"By default we use a formatter that dumps the message to dict and serializes it using serializer. But you can define your own formatter to send a message in any format you want. To define a new formatter, you have to subclass the TaskiqFormatter class and implement dumps and loads methods.\\nAs an example, you can take a look at the JSONFormatter from taskiq.formatters implementation.\"]},\"72\":{\"h\":\"Scheduling tasks\",\"t\":[\"Sometimes you may want to execute some tasks according to some schedule. For example, you maybe want to call a function every day at 2 pm.\",\"That's not a problem if you use taskiq. We have primitives that can help you to solve your problems.\",\"Let's imagine we have a module, as shown below, and we want to execute the heavy_task every 5 minutes. What should we do?\",\"from taskiq_aio_pika import AioPikaBroker broker = AioPikaBroker(\\\"amqp://guest:guest@localhost:5672/\\\") @broker.task async def heavy_task(value: int) -> int: return value + 1 \",\"Of course we can implement loop like this:\",\" while True: await heavy_task.kiq(1) await asyncio.sleep(timedelta(minutes=5).total_seconds) \",\"But if you have many schedules it may be a little painful to implement. So let me introduce you the TaskiqScheduler. Let's add scheduler to our module.\",\"from taskiq_aio_pika import AioPikaBroker from taskiq.schedule_sources import LabelScheduleSource from taskiq import TaskiqScheduler broker = AioPikaBroker(\\\"amqp://guest:guest@localhost:5672/\\\") scheduler = TaskiqScheduler( broker=broker, sources=[LabelScheduleSource(broker)], ) @broker.task(schedule=[{\\\"cron\\\": \\\"*/5 * * * *\\\", \\\"args\\\": [1]}]) async def heavy_task(value: int) -> int: return value + 1 \",\"That's it.\",\"Now we need to start our scheduler with the taskiq scheduler command. Like this:\",\"taskiq scheduler module:scheduler \",\"Be careful!\",\"Please always run only one instance of the scheduler! If you run more than one scheduler at a time, please be careful since it may execute one task N times, where N is the number of running scheduler instances.\",\"This command will import the scheduler you defined and start sending tasks to your broker.\",\"Cool tip!\",\"The scheduler doesn't execute tasks. It only sends them.\",\"You can check list of available schedule sources in the Available schedule sources section.\"]},\"73\":{\"h\":\"Multiple sources\",\"t\":[\"Sometimes you may want to use multiple sources to assemble a schedule for tasks. The TaskiqScheduler can do so. But it's obvious how to merge schedules from different sources.\",\"That's why you can pass a custom merge function to resolve all possible conflicts or if you want to have more complex logic aside from sources. For example, filter out some task schedules.\",\"Currently we have only two default functions to merge tasks. You can find them in the taskiq.scheduler.merge_functions module.\",\"preserve_all - simply adds new schedules to the old ones.\",\"only_unique - adds schedule only if it was not added by previous sources.\",\"Every time we update schedule it gets task from the source and executes this function to merge them together.\"]},\"74\":{\"h\":\"Working with timezones\",\"t\":[\"Sometimes, you want to be specific in terms of time zones. We have you covered. Our ScheduledTask model has fields for that. Use these fields or not, it's up to the specific schedule source.\",\"Taskiq scheduler assumes that if time has no specific timezone, it's in UTC. Sometimes, this behavior might not be convinient for developers.\",\"For the time field of ScheduledTask we use timezone information from datetime to check if a task should run.\",\"For cron tasks, we have an additional field called cron_offset that can be used to specify an offset of the cron task. An offset can be a string like Europe/Berlin or an instance of the timedelta class.\"]},\"75\":{\"h\":\"Skipping first run\",\"t\":[\"By default, when you start the scheduler it will get all tasks from the schedule source and check whether they should have been executed in this minute. If tasks should have been executed, they will be executed.\",\"This behaviour might be not convinient for some developers. For example, if you have a task that should be executed on every minute, it will be executed once you start the scheduler, even if it was executed a few seconds ago.\",\"To avoid this behaviour, you can pass the --skip-first-run flag to the taskiq scheduler command. In this case, the scheduler will wait until the start of the next minute and then start executing tasks.\",\"taskiq scheduler module:scheduler --skip-first-run \"]},\"76\":{\"h\":\"Dynamic scheduling\",\"t\":[\"Sometimes you may want to add new schedules to the scheduler on the fly. For example, you may want to run a specific function in several minutes from now. You can easily do it with ScheduleSources that support dynamic scheduling. Currently we suggest to use the RedisScheduleSource for that purpose. List of schedulers with dynamic task addition will be extended in the future. For list of available schedule sources see Available schedule sources.\",\"Here's an example of using redis schedule source:\",\"from taskiq_redis import ListQueueBroker, RedisScheduleSource from taskiq import TaskiqScheduler # Here's the broker that is going to execute tasks broker = ListQueueBroker(\\\"redis://localhost:6379/0\\\") # Here's the source that is used to store scheduled tasks redis_source = RedisScheduleSource(\\\"redis://localhost:6379/0\\\") # And here's the scheduler that is used to query scheduled sources scheduler = TaskiqScheduler(broker, sources=[redis_source]) @broker.task async def my_task(arg1: int, arg2: str) -> None: \\\"\\\"\\\"Example task.\\\"\\\"\\\" print(\\\"Hello from my_task!\\\", arg1, arg2) # noqa: T201 \",\"Now we can use this source to add new schedules in runtime. Here's an example:\",\" await redis_source.startup() await my_task.schedule_by_time( redis_source, # It's better to use UTC time, or add tzinfo to datetime. datetime.datetime.utcnow() + datetime.timedelta(minutes=1, seconds=5), # You can pass args and kwargs here as usual 11, arg2=\\\"arg2\\\", ) \",\"Or if you want to use cron schedules instead, just use schedule_by_cron method.\",\" await my_task.schedule_by_cron( redis_source, \\\"*/5 * * * *\\\", 11, arg2=\\\"arg2\\\", ) \",\"If you want to pass additional labels, you can call these methods on the Kicker instance.\",\" schedule = ( await my_task.kicker() .with_labels(label1=\\\"value\\\") .schedule_by_time( redis_source, datetime.datetime.utcnow() + datetime.timedelta(seconds=10), 11, arg2=\\\"arg2\\\", ) ) \",\"Cool warning!\",\"The with_broker method won't do anything in this case, since we have a broker assigned to each scheduler.\",\"Each of these methods return you an instance of the CreatedSchedule class. This object has unique schedule ID and some helper methods. For example, you can use the unschedule method to remove the schedule from the source.\",\" schedule = await my_task.schedule_by_time( redis_source, datetime.datetime.utcnow() + datetime.timedelta(minutes=1, seconds=5), 11, arg2=\\\"arg2\\\", ) await schedule.unschedule() \",\"Or it can be done manually, by calling delete_schedule on schedule source providing it whith schedule_id.\",\" await redis_source.delete_schedule(schedule.schedule_id) \",\"Also, you can get schedule_id from the tasks's labels.\",\"@broker.task async def my_task(context: Context = TaskiqDepends()) -> None: schedule_id = context.message.labels.get(\\\"schedule_id\\\") print(\\\"Schedule ID:\\\", schedule_id) \"]},\"77\":{\"h\":\"State and Dependencies\"},\"78\":{\"h\":\"State\",\"t\":[\"The TaskiqState is a global variable where you can keep the variables you want to use later. For example, you want to open a database connection pool at a broker's startup.\",\"This can be achieved by adding event handlers.\",\"You can use one of these events:\",\"WORKER_STARTUP\",\"CLIENT_STARTUP\",\"WORKER_SHUTDOWN\",\"CLIENT_SHUTDOWN\",\"Worker events are called when you start listening to the broker messages using taskiq. Client events are called when you call the startup method of your broker from your code.\",\"This is an example of code using event handlers:\",\"Cool tip!\",\"If you want to add handlers programmatically, you can use the broker.add_event_handler function.\",\"As you can see in this example, this worker will initialize the Redis pool at the startup. You can access the state from the context.\"]},\"79\":{\"h\":\"Dependencies\",\"t\":[\"Using context directly is nice, but this way you won't get code-completion.\",\"That's why we suggest you try TaskiqDependencies. The implementation is very similar to FastApi's dependencies. You can use classes, functions, and generators as dependencies.\",\"We use the taskiq-dependencies package to provide autocompetion. You can easily integrate it in your own project.\"]},\"80\":{\"h\":\"How dependencies are useful\",\"t\":[\"You can use dependencies for better autocompletion and reduce the amount of code you write. Since the state is generic, we cannot guess the types of the state fields. Dependencies can be annotated with type hints and therefore provide better auto-completion.\",\"Let's assume that you've stored a Redis connection pool in the state as in the example above.\",\"@broker.on_event(TaskiqEvents.WORKER_STARTUP) async def startup(state: TaskiqState) -> None: # Here we store connection pool on startup for later use. state.redis = ConnectionPool.from_url(\\\"redis://localhost/1\\\") \",\"You can access this variable by using the current execution context directly, like this:\",\"If you hit the TAB button after the context.state. expression, your IDE won't give you any auto-completion. But we can create a dependency function to add auto-completion.\",\"Now, this dependency injection will be autocompleted. But, of course, state fields cannot be autocompleted, even in dependencies. But this way, you won't make any typos while writing tasks.\"]},\"81\":{\"h\":\"How do dependencies work\",\"t\":[\"We build a graph of dependencies on startup. If the parameter of the function has the default value of TaskiqDepends this parameter will be treated as a dependency.\",\"Dependencies can also depend on something. Also dependencies are optimized to not evaluate things many times.\",\"For example:\",\"In this code, the dependency common_dep is going to be evaluated only once and the dep1 and the dep2 are going to receive the same value. You can control this behavior by using the use_cache=False parameter to you dependency. This parameter will force the dependency to reevaluate all it's subdependencies.\",\"In this example we cannot predict the result. Since the dep2 doesn't use cache for the common_dep function.\",\"The graph for cached dependencies looks like this:\",\"The dependencies graph for my_task where dep2 doesn't use cached value for common_dep looks like this:\"]},\"82\":{\"h\":\"Class as a dependency\",\"t\":[\"You can use classes as dependencies, and they can also use other dependencies too.\",\"Let's see an example:\",\"As you can see, the dependency for my_task function is declared with TaskiqDependency(). It's because you can omit the class if it's declared in type-hint for the parameter. This feature doesn't work with dependency functions, it's only for classes.\",\"You can pass dependencies for classes in the constructor.\"]},\"83\":{\"h\":\"Generator dependencies\",\"t\":[\"Generator dependencies are used to perform startup before task execution and teardown after the task execution.\",\"In this example, we can do something at startup before the execution and at shutdown after the task is completed.\",\"If you want to do something asynchronously, convert this function to an asynchronous generator. Like this:\"]},\"84\":{\"h\":\"Exception handling\",\"t\":[\"Generator dependencies can handle exceptions that happen in tasks. This feature is handy if you want your system to be more atomic.\",\"For example, if you open a database transaction in your dependency and want to commit it only if the function you execute is completed successfully.\",\"If you don't want to propagate exceptions in dependencies, you can add --no-propagate-errors option to worker command.\",\"taskiq worker my_file:broker --no-propagate-errors \",\"In this case, no exception will ever going to be propagated to any dependency.\"]},\"85\":{\"h\":\"Generics\",\"t\":[\"Taskiq supports generic dependencies. You can create a generic class that is generic over another class and takskiq will be able to resolve generics based on type annotations.\"]},\"86\":{\"h\":\"Default dependencies\",\"t\":[\"By default taskiq has only two dependencies:\",\"Context from taskiq.context.Context\",\"TaskiqState from taskiq.state.TaskiqState\"]},\"87\":{\"h\":\"Adding first-level dependencies\",\"t\":[\"You can expand default list of available dependencies for you application. Taskiq have an ability to add new first-level dependencies using brokers.\",\"The AsyncBroker interface has a function called add_dependency_context and you can add\\nmore default dependencies to the taskiq. This may be useful for libraries if you want to\\nadd new dependencies to users.\"]},\"88\":{\"h\":\"Testing with taskiq\",\"t\":[\"Every time we write programs, we want them to be correct. To achieve this, we use tests. Taskiq allows you to write tests easily as if tasks were normal functions.\",\"Let's dive into examples.\"]},\"89\":{\"h\":\"Preparations\"},\"90\":{\"h\":\"Environment setup\",\"t\":[\"For testing you maybe don't want to use actual distributed broker. But still you want to validate your logic. Since python is an interpreted language, you can easily replace you broker with another one if the expression is correct.\",\"We can set an environment variable, that indicates that currently we're running in testing environment.\",\"Or we can even tell pytest to set this environment for us, just before executing tests using pytest-env plugin.\"]},\"91\":{\"h\":\"Async tests\",\"t\":[\"Since taskiq is fully async, we suggest using anyio to run async functions in pytest. Install the lib and place this fixture somewhere in your root conftest.py file.\",\"@pytest.fixture def anyio_backend(): return 'asyncio' \",\"After the preparations are done, we need to modify the broker's file in your project.\",\"import os from taskiq import AsyncBroker, InMemoryBroker, ZeroMQBroker env = os.environ.get(\\\"ENVIRONMENT\\\") broker: AsyncBroker = ZeroMQBroker() if env and env == \\\"pytest\\\": broker = InMemoryBroker() \",\"As you can see, we added an if statement. If the expression is true, we replace our broker with an imemory broker. The main point here is to not have an actual connection during testing. It's useful because inmemory broker has the same interface as a real broker, but it doesn't send tasks actually.\"]},\"92\":{\"h\":\"Testing tasks\",\"t\":[\"Let's define a task.\",\"from your_project.taskiq import broker @broker.task async def parse_int(val: str) -> int: return int(val) \",\"This simple task may be defined anywhere in your project. If you want to test it, just import it and call as a normal function.\",\"import pytest from your_project.tasks import parse_int @pytest.mark.anyio async def test_task(): assert await parse_int(\\\"11\\\") == 11 \",\"And that's it. Test should pass.\",\"What if you want to test a function that uses task. Let's define such function.\",\"from your_project.taskiq import broker @broker.task async def parse_int(val: str) -> int: return int(val) async def parse_and_add_one(val: str) -> int: task = await parse_int.kiq(val) result = await task.wait_result() return result.return_value + 1 \",\"And since we replaced our broker with InMemoryBroker, we can just call it. It would work as you expect and tests should pass.\",\"@pytest.mark.anyio async def test_add_one(): assert await parse_and_add_one(\\\"11\\\") == 12 \"]},\"93\":{\"h\":\"Dependency injection\",\"t\":[\"If you use dependencies in your tasks, you may think that this can become a problem. But it's not. Here's what we came up with. We added a method called add_dependency_context to the broker. It sets base dependencies for dependency resolution. You can use it for tests.\",\"Let's add a task that depends on Path. I guess this example is not meant to be used in production code bases, but it's suitable for illustration purposes.\",\"To test the task itself, it's not different to the example without dependencies, but we jsut need to pass all expected dependencies manually as function's arguments or key-word arguments.\",\"import pytest from your_project.taskiq import broker from pathlib import Path @pytest.mark.anyio async def test_modify_path(): modified = await modify_path(Path.cwd()) assert str(modified).endswith(\\\"taskiq.py\\\") \",\"But what if we want to test task execution? Well, you don't need to provide dependencies manually, you must mutate dependency_context before calling a task. We suggest to do it in fixtures.\",\"import pytest from your_project.taskiq import broker from pathlib import Path # We use autouse, so this fixture # is called automatically before all tests. @pytest.fixture(scope=\\\"function\\\", autouse=True) async def init_taskiq_dependencies(): # Here we use Path, but you can use other # pytest fixtures here. E.G. FastAPI app. broker.add_dependency_context({Path: Path.cwd()}) yield # After the test we clear all custom dependencies. broker.custom_dependency_context = {} \",\"This fixture will update dependency context for our broker before every test. Now tasks with dependencies can be used. Let's try it out.\",\"@pytest.mark.anyio async def test_modify_path(): task = await modify_path.kiq() result = await task.wait_result() assert str(result.return_value).endswith(\\\"taskiq.py\\\") \",\"This should pass. And that's it for now.\"]},\"94\":{\"h\":\"\",\"t\":[\"404 Not Found\"]}},\"dirtCount\":0,\"index\":[[\"5\",{\"1\":{\"72\":2,\"76\":1}}],[\"5672\",{\"1\":{\"67\":4,\"72\":2}}],[\"7\",{\"1\":{\"66\":1}}],[\"x=1\",{\"1\":{\"63\":3}}],[\"x\",{\"1\":{\"63\":6}}],[\"xdist\",{\"1\":{\"6\":1}}],[\"\",{\"1\":{\"11\":1,\"27\":5,\"28\":1,\"30\":1,\"32\":5,\"33\":7,\"36\":1,\"39\":1,\"40\":1,\"41\":1,\"47\":1,\"48\":3,\"51\":2,\"57\":1,\"63\":3,\"66\":2,\"67\":4,\"72\":2,\"76\":2,\"80\":1,\"92\":3}}],[\"12\",{\"1\":{\"92\":1}}],[\"11\",{\"1\":{\"76\":4,\"92\":3}}],[\"10\",{\"1\":{\"63\":1}}],[\"1\",{\"1\":{\"10\":1,\"47\":1,\"48\":3,\"51\":1,\"57\":1,\"66\":2,\"67\":5,\"72\":4,\"80\":1,\"92\":1}}],[\"zones\",{\"1\":{\"74\":1}}],[\"zero\",{\"1\":{\"59\":1}}],[\"zeromqbroker\",{\"0\":{\"10\":1},\"1\":{\"17\":2,\"18\":2,\"40\":2,\"91\":2}}],[\"zmq\",{\"1\":{\"10\":3}}],[\"22\",{\"1\":{\"63\":1}}],[\"2\",{\"1\":{\"6\":1,\"57\":1,\"63\":1,\"66\":1,\"67\":1,\"72\":1}}],[\"g\",{\"1\":{\"93\":1}}],[\"guess\",{\"1\":{\"80\":1,\"93\":1}}],[\"guest\",{\"1\":{\"67\":8,\"72\":4}}],[\"guide\",{\"0\":{\"3\":1},\"1\":{\"3\":1,\"4\":1}}],[\"graph\",{\"1\":{\"81\":3}}],[\"graphs\",{\"1\":{\"37\":1}}],[\"graceful\",{\"0\":{\"59\":1},\"1\":{\"59\":1,\"60\":1}}],[\"give\",{\"1\":{\"71\":1,\"80\":1}}],[\"given\",{\"1\":{\"55\":1,\"62\":1}}],[\"gitignore\",{\"1\":{\"58\":2}}],[\"git\",{\"1\":{\"5\":1,\"65\":1}}],[\"glob\",{\"1\":{\"55\":1,\"62\":1}}],[\"global\",{\"1\":{\"44\":1,\"78\":1}}],[\"generics\",{\"0\":{\"85\":1},\"1\":{\"85\":1}}],[\"generic\",{\"1\":{\"80\":1,\"85\":3}}],[\"generators\",{\"1\":{\"79\":1}}],[\"generator\",{\"0\":{\"83\":1},\"1\":{\"60\":1,\"83\":2,\"84\":1}}],[\"generates\",{\"1\":{\"47\":1}}],[\"general\",{\"1\":{\"41\":1}}],[\"getting\",{\"0\":{\"64\":1}}],[\"gets\",{\"1\":{\"63\":2,\"73\":1}}],[\"get\",{\"1\":{\"27\":1,\"32\":2,\"33\":2,\"39\":1,\"40\":2,\"41\":1,\"47\":1,\"49\":1,\"50\":2,\"52\":3,\"57\":1,\"63\":1,\"66\":3,\"67\":3,\"75\":1,\"76\":2,\"79\":1,\"91\":1}}],[\"gained\",{\"1\":{\"40\":1}}],[\"got\",{\"1\":{\"40\":1}}],[\"going\",{\"1\":{\"36\":2,\"47\":1,\"66\":1,\"67\":1,\"76\":1,\"81\":2,\"84\":1}}],[\"good\",{\"1\":{\"29\":1,\"32\":1}}],[\"hup\",{\"1\":{\"59\":1}}],[\"hit\",{\"1\":{\"80\":1}}],[\"hint\",{\"1\":{\"82\":1}}],[\"hints\",{\"1\":{\"71\":1,\"80\":1}}],[\"hinted\",{\"1\":{\"57\":1}}],[\"high\",{\"1\":{\"60\":1}}],[\"higher\",{\"1\":{\"29\":1}}],[\"highly\",{\"1\":{\"5\":1,\"38\":1,\"40\":1,\"65\":1,\"67\":1}}],[\"httpconnection\",{\"1\":{\"40\":3}}],[\"h\",{\"1\":{\"30\":2}}],[\"hello\",{\"1\":{\"47\":1,\"48\":3,\"76\":1}}],[\"helps\",{\"1\":{\"41\":1,\"43\":1}}],[\"helpful\",{\"1\":{\"31\":1}}],[\"help=\",{\"1\":{\"30\":1}}],[\"help\",{\"1\":{\"30\":4,\"50\":1,\"72\":1}}],[\"helper\",{\"1\":{\"27\":2,\"33\":3,\"76\":1}}],[\"heavy\",{\"1\":{\"43\":1,\"72\":4}}],[\"here\",{\"1\":{\"24\":1,\"27\":3,\"28\":1,\"32\":3,\"33\":2,\"36\":2,\"38\":1,\"40\":1,\"41\":1,\"44\":1,\"51\":2,\"52\":1,\"63\":5,\"76\":6,\"80\":1,\"91\":1,\"93\":3}}],[\"hot\",{\"0\":{\"58\":1},\"1\":{\"58\":1}}],[\"however\",{\"1\":{\"63\":2}}],[\"how\",{\"0\":{\"80\":1,\"81\":1},\"1\":{\"23\":1,\"35\":1,\"36\":1,\"52\":1,\"67\":1,\"73\":1}}],[\"hooks\",{\"1\":{\"31\":1,\"51\":1}}],[\"hook\",{\"1\":{\"5\":1,\"51\":2}}],[\"had\",{\"1\":{\"40\":2}}],[\"happens\",{\"1\":{\"51\":1,\"67\":1}}],[\"happen\",{\"1\":{\"37\":1,\"84\":1}}],[\"handling\",{\"0\":{\"84\":1}}],[\"handle\",{\"1\":{\"36\":1,\"38\":1,\"84\":1}}],[\"handlers\",{\"1\":{\"37\":1,\"38\":1,\"78\":3}}],[\"handler\",{\"1\":{\"34\":1,\"40\":1,\"78\":1}}],[\"hand\",{\"1\":{\"39\":1}}],[\"handing\",{\"1\":{\"36\":1}}],[\"handy\",{\"1\":{\"27\":1,\"84\":1}}],[\"have\",{\"1\":{\"3\":2,\"4\":1,\"5\":1,\"11\":1,\"18\":1,\"22\":1,\"27\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":3,\"33\":3,\"35\":1,\"39\":1,\"40\":3,\"41\":1,\"43\":3,\"44\":4,\"49\":1,\"50\":3,\"51\":1,\"54\":1,\"55\":1,\"57\":2,\"58\":1,\"63\":2,\"70\":2,\"71\":1,\"72\":3,\"73\":2,\"74\":2,\"75\":3,\"76\":1,\"87\":1,\"91\":1}}],[\"has\",{\"1\":{\"1\":1,\"16\":1,\"29\":2,\"38\":1,\"40\":1,\"41\":1,\"45\":1,\"46\":1,\"48\":1,\"50\":1,\"52\":1,\"66\":1,\"70\":1,\"74\":2,\"76\":1,\"81\":1,\"86\":1,\"87\":1,\"91\":1}}],[\"url\",{\"1\":{\"80\":1}}],[\"uuid\",{\"1\":{\"70\":1}}],[\"uvloop\",{\"1\":{\"50\":1}}],[\"uvicorn\",{\"1\":{\"40\":1}}],[\"utc\",{\"1\":{\"74\":1,\"76\":1}}],[\"utcnow\",{\"1\":{\"63\":1,\"76\":3}}],[\"utils\",{\"1\":{\"50\":2}}],[\"utf\",{\"1\":{\"27\":1}}],[\"unschedule\",{\"1\":{\"76\":2}}],[\"understand\",{\"1\":{\"66\":1}}],[\"undefined\",{\"1\":{\"10\":1,\"66\":1}}],[\"unavailable\",{\"1\":{\"58\":1}}],[\"unix\",{\"0\":{\"59\":1}}],[\"unique\",{\"1\":{\"48\":1,\"73\":1,\"76\":1}}],[\"union\",{\"1\":{\"27\":2}}],[\"until\",{\"1\":{\"40\":1,\"60\":1,\"75\":1}}],[\"unless\",{\"1\":{\"32\":1}}],[\"usual\",{\"1\":{\"76\":1}}],[\"us\",{\"1\":{\"38\":1,\"90\":1}}],[\"usage\",{\"1\":{\"30\":1}}],[\"using\",{\"1\":{\"4\":3,\"5\":1,\"6\":1,\"11\":1,\"24\":1,\"35\":2,\"38\":1,\"44\":2,\"45\":1,\"47\":1,\"48\":3,\"53\":1,\"55\":1,\"56\":1,\"62\":1,\"63\":1,\"65\":2,\"67\":1,\"71\":1,\"76\":1,\"78\":2,\"79\":1,\"80\":1,\"81\":1,\"87\":1,\"90\":1,\"91\":1}}],[\"useful\",{\"0\":{\"80\":1},\"1\":{\"48\":2,\"52\":2,\"59\":1,\"60\":1,\"66\":1,\"70\":1,\"71\":1,\"87\":1,\"91\":1}}],[\"users\",{\"1\":{\"40\":1,\"87\":1}}],[\"user\",{\"1\":{\"11\":1}}],[\"used\",{\"1\":{\"11\":1,\"19\":1,\"20\":1,\"22\":1,\"32\":1,\"33\":1,\"47\":1,\"49\":2,\"51\":1,\"53\":1,\"60\":2,\"61\":1,\"62\":1,\"74\":1,\"76\":2,\"83\":1,\"93\":2}}],[\"use\",{\"0\":{\"44\":1},\"1\":{\"4\":1,\"6\":1,\"11\":2,\"23\":2,\"24\":3,\"27\":1,\"30\":3,\"31\":1,\"34\":1,\"35\":5,\"36\":3,\"38\":2,\"39\":2,\"40\":5,\"41\":2,\"43\":2,\"45\":1,\"47\":1,\"49\":1,\"51\":2,\"52\":1,\"54\":1,\"57\":1,\"58\":1,\"59\":1,\"62\":1,\"63\":1,\"65\":1,\"66\":2,\"67\":3,\"68\":1,\"69\":2,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"74\":2,\"76\":6,\"78\":3,\"79\":2,\"80\":2,\"81\":3,\"82\":2,\"88\":1,\"90\":1,\"93\":5}}],[\"uses\",{\"1\":{\"1\":1,\"9\":2,\"10\":1,\"23\":1,\"31\":1,\"47\":1,\"49\":1,\"51\":1,\"70\":1,\"92\":1}}],[\"update\",{\"1\":{\"70\":1,\"73\":1,\"93\":1}}],[\"up\",{\"0\":{\"4\":1},\"1\":{\"36\":1,\"63\":1,\"66\":1,\"67\":2,\"74\":1,\"93\":1}}],[\"e\",{\"1\":{\"93\":1}}],[\"evaluated\",{\"1\":{\"81\":1}}],[\"evaluate\",{\"1\":{\"81\":1}}],[\"ever\",{\"1\":{\"84\":1}}],[\"everything\",{\"1\":{\"36\":1,\"40\":1}}],[\"every\",{\"1\":{\"31\":1,\"40\":1,\"41\":1,\"45\":1,\"46\":1,\"48\":1,\"49\":1,\"51\":1,\"58\":1,\"72\":2,\"73\":1,\"75\":1,\"88\":1,\"93\":1}}],[\"events\",{\"1\":{\"34\":1,\"35\":1,\"36\":1,\"44\":1,\"78\":3}}],[\"event\",{\"1\":{\"16\":1,\"37\":2,\"40\":2,\"50\":1,\"63\":3,\"78\":3,\"80\":1}}],[\"even\",{\"1\":{\"5\":1,\"37\":1,\"47\":1,\"52\":1,\"75\":1,\"80\":1,\"90\":1}}],[\"europe\",{\"1\":{\"74\":1}}],[\"else\",{\"1\":{\"66\":1,\"67\":2}}],[\"element\",{\"1\":{\"46\":1}}],[\"err\",{\"1\":{\"66\":1,\"67\":2}}],[\"error=true\",{\"1\":{\"17\":1}}],[\"error\",{\"1\":{\"17\":2,\"51\":1,\"57\":1,\"66\":1,\"67\":2}}],[\"errors\",{\"1\":{\"17\":1,\"60\":1,\"84\":2}}],[\"edge\",{\"1\":{\"51\":1}}],[\"equivalent\",{\"1\":{\"48\":1}}],[\"earlier\",{\"1\":{\"67\":1}}],[\"easier\",{\"1\":{\"39\":1}}],[\"easily\",{\"1\":{\"30\":1,\"36\":2,\"43\":1,\"69\":1,\"76\":1,\"79\":1,\"88\":1,\"90\":1}}],[\"easy\",{\"1\":{\"30\":1,\"34\":1,\"39\":1,\"40\":2,\"43\":1,\"52\":1}}],[\"each\",{\"1\":{\"12\":1,\"35\":2,\"76\":2}}],[\"except\",{\"1\":{\"51\":1,\"63\":3}}],[\"exceptions\",{\"1\":{\"60\":1,\"84\":2}}],[\"exception\",{\"0\":{\"84\":1},\"1\":{\"17\":2,\"51\":2,\"84\":1}}],[\"existing\",{\"0\":{\"44\":1},\"1\":{\"70\":1}}],[\"exists\",{\"1\":{\"32\":1,\"38\":1}}],[\"exiting\",{\"1\":{\"63\":1}}],[\"exited\",{\"1\":{\"63\":3}}],[\"exit\",{\"1\":{\"30\":1}}],[\"expand\",{\"1\":{\"87\":1}}],[\"expression\",{\"1\":{\"80\":1,\"90\":1,\"91\":1}}],[\"experience\",{\"1\":{\"37\":1}}],[\"expected\",{\"1\":{\"93\":1}}],[\"expect\",{\"1\":{\"31\":1,\"40\":1,\"92\":1}}],[\"explained\",{\"1\":{\"24\":1}}],[\"explicitly\",{\"1\":{\"11\":1,\"32\":1,\"40\":1,\"63\":1}}],[\"exection\",{\"1\":{\"60\":1}}],[\"exec\",{\"1\":{\"30\":2}}],[\"executor\",{\"1\":{\"68\":1}}],[\"executing\",{\"1\":{\"66\":1,\"67\":2,\"75\":1,\"90\":1}}],[\"execution\",{\"1\":{\"17\":1,\"19\":2,\"29\":1,\"31\":2,\"32\":2,\"33\":1,\"49\":1,\"51\":1,\"52\":2,\"56\":1,\"60\":1,\"63\":2,\"66\":4,\"67\":8,\"68\":1,\"80\":1,\"83\":3,\"93\":1}}],[\"executable\",{\"1\":{\"63\":1}}],[\"executes\",{\"1\":{\"67\":1,\"73\":1}}],[\"executed\",{\"1\":{\"9\":1,\"10\":1,\"29\":1,\"51\":9,\"56\":3,\"60\":2,\"63\":1,\"75\":6}}],[\"execute\",{\"1\":{\"9\":1,\"16\":1,\"31\":1,\"33\":2,\"43\":1,\"44\":1,\"51\":3,\"63\":1,\"72\":4,\"76\":1,\"84\":1}}],[\"examples\",{\"1\":{\"38\":2,\"40\":2,\"88\":1}}],[\"example\",{\"1\":{\"28\":1,\"31\":1,\"32\":1,\"33\":1,\"38\":1,\"40\":1,\"43\":1,\"46\":2,\"48\":2,\"49\":1,\"50\":1,\"51\":2,\"52\":1,\"56\":1,\"57\":1,\"61\":1,\"63\":4,\"66\":1,\"67\":1,\"70\":1,\"71\":1,\"72\":1,\"73\":1,\"75\":1,\"76\":5,\"78\":3,\"80\":1,\"81\":2,\"82\":1,\"83\":1,\"84\":1,\"93\":2}}],[\"external\",{\"1\":{\"46\":2}}],[\"extended\",{\"1\":{\"76\":1}}],[\"extend\",{\"1\":{\"25\":1,\"43\":2}}],[\"extendable\",{\"1\":{\"25\":1,\"47\":1}}],[\"extending\",{\"0\":{\"25\":1}}],[\"extras\",{\"1\":{\"18\":1,\"70\":1}}],[\"extra\",{\"1\":{\"10\":1,\"58\":1}}],[\"endswith\",{\"1\":{\"93\":2}}],[\"environ\",{\"1\":{\"91\":1}}],[\"environments\",{\"0\":{\"63\":1},\"1\":{\"4\":1,\"6\":1}}],[\"environment\",{\"0\":{\"4\":1,\"90\":1},\"1\":{\"90\":3,\"91\":1}}],[\"env\",{\"1\":{\"90\":1,\"91\":3}}],[\"enumerating\",{\"1\":{\"55\":1}}],[\"ensure\",{\"1\":{\"51\":1}}],[\"entry\",{\"1\":{\"30\":2}}],[\"entrypoint\",{\"1\":{\"30\":1}}],[\"enabled\",{\"1\":{\"60\":1}}],[\"enables\",{\"1\":{\"17\":1,\"55\":1,\"62\":1}}],[\"enable\",{\"1\":{\"17\":1,\"18\":1,\"24\":1,\"36\":1,\"58\":2}}],[\"encounter\",{\"1\":{\"10\":1}}],[\"either\",{\"1\":{\"3\":1,\"24\":2,\"28\":1,\"31\":1,\"52\":1,\"68\":1}}],[\"ecosystem\",{\"1\":{\"1\":1}}],[\"r\",{\"1\":{\"58\":1}}],[\"root\",{\"1\":{\"91\":1}}],[\"routing\",{\"1\":{\"48\":1}}],[\"robust\",{\"1\":{\"37\":1}}],[\"rich\",{\"1\":{\"44\":1}}],[\"right\",{\"1\":{\"41\":1,\"51\":1,\"56\":1}}],[\"rates\",{\"1\":{\"60\":1}}],[\"raw\",{\"1\":{\"27\":1,\"28\":1}}],[\"raise\",{\"1\":{\"17\":1,\"33\":1,\"68\":1}}],[\"raised\",{\"1\":{\"17\":1}}],[\"rabbitmq\",{\"0\":{\"13\":1},\"1\":{\"44\":1,\"67\":2}}],[\"runner\",{\"1\":{\"39\":1}}],[\"running\",{\"0\":{\"66\":1},\"1\":{\"39\":1,\"60\":1,\"62\":1,\"67\":2,\"72\":1,\"90\":1}}],[\"runtime\",{\"1\":{\"23\":1,\"33\":1,\"76\":1}}],[\"run\",{\"0\":{\"67\":1,\"75\":1},\"1\":{\"4\":1,\"5\":2,\"6\":5,\"10\":3,\"24\":1,\"36\":2,\"37\":2,\"39\":1,\"41\":2,\"47\":1,\"50\":2,\"53\":1,\"54\":1,\"61\":2,\"62\":2,\"63\":12,\"66\":2,\"67\":6,\"68\":3,\"72\":2,\"74\":1,\"75\":2,\"76\":1,\"91\":1}}],[\"runs\",{\"1\":{\"3\":1,\"52\":1}}],[\"rules\",{\"1\":{\"3\":1,\"29\":1,\"40\":1}}],[\"reevaluate\",{\"1\":{\"81\":1}}],[\"reduce\",{\"1\":{\"80\":1}}],[\"redisasyncresultbackend\",{\"1\":{\"67\":4}}],[\"redisschedulesource\",{\"0\":{\"23\":1},\"1\":{\"23\":2,\"76\":3}}],[\"redis\",{\"0\":{\"14\":1,\"21\":1},\"1\":{\"14\":2,\"21\":2,\"23\":6,\"36\":2,\"40\":2,\"46\":2,\"63\":6,\"65\":1,\"67\":7,\"76\":12,\"78\":1,\"80\":3}}],[\"registered\",{\"1\":{\"63\":1}}],[\"register\",{\"1\":{\"63\":9}}],[\"relatively\",{\"1\":{\"66\":1}}],[\"reload\",{\"0\":{\"58\":1,\"59\":1},\"1\":{\"58\":5,\"59\":2}}],[\"releases\",{\"1\":{\"32\":1}}],[\"remove\",{\"1\":{\"76\":1}}],[\"removed\",{\"1\":{\"32\":1}}],[\"remember\",{\"1\":{\"51\":1}}],[\"reached\",{\"1\":{\"60\":1}}],[\"real\",{\"1\":{\"49\":1,\"66\":1,\"91\":1}}],[\"reads\",{\"1\":{\"46\":1}}],[\"read\",{\"1\":{\"12\":1,\"21\":1,\"23\":1,\"30\":1,\"35\":1,\"37\":1,\"60\":1}}],[\"reading\",{\"1\":{\"10\":1,\"67\":1}}],[\"ready\",{\"1\":{\"4\":1,\"32\":2,\"39\":1,\"66\":1}}],[\"readme\",{\"1\":{\"4\":1,\"12\":1,\"21\":1,\"37\":1}}],[\"receive\",{\"1\":{\"81\":1}}],[\"receiver\",{\"1\":{\"60\":4,\"63\":5}}],[\"received\",{\"1\":{\"45\":1,\"51\":1,\"52\":2,\"56\":2,\"60\":1}}],[\"recursively\",{\"1\":{\"50\":1,\"55\":2,\"62\":1}}],[\"recommend\",{\"1\":{\"5\":1,\"38\":1,\"65\":1,\"67\":1}}],[\"reuse\",{\"1\":{\"38\":2}}],[\"re\",{\"1\":{\"36\":1,\"90\":1}}],[\"reference\",{\"1\":{\"31\":1}}],[\"reject\",{\"1\":{\"28\":1,\"52\":2}}],[\"reject=message\",{\"1\":{\"28\":1}}],[\"rejecting\",{\"1\":{\"28\":1}}],[\"resolution\",{\"1\":{\"93\":1}}],[\"resolving\",{\"1\":{\"41\":1}}],[\"resolvable\",{\"1\":{\"40\":1}}],[\"resolved\",{\"1\":{\"36\":1,\"48\":1}}],[\"resolve\",{\"1\":{\"24\":1,\"40\":1,\"73\":1,\"85\":1}}],[\"restrict\",{\"1\":{\"68\":1}}],[\"restart\",{\"1\":{\"17\":2,\"58\":1,\"60\":1}}],[\"resent\",{\"1\":{\"17\":1}}],[\"resultbackend\",{\"1\":{\"49\":1}}],[\"results\",{\"1\":{\"19\":1,\"20\":2,\"45\":1,\"49\":3,\"67\":3}}],[\"result\",{\"0\":{\"19\":1,\"21\":1,\"32\":1,\"49\":1},\"1\":{\"7\":1,\"19\":1,\"20\":1,\"21\":1,\"26\":1,\"27\":1,\"32\":21,\"44\":1,\"45\":1,\"47\":1,\"49\":3,\"51\":2,\"56\":2,\"65\":1,\"66\":8,\"67\":17,\"81\":1,\"92\":3,\"93\":3}}],[\"retrieve\",{\"1\":{\"32\":1}}],[\"retries\",{\"1\":{\"17\":2}}],[\"retries=20\",{\"1\":{\"17\":1}}],[\"retry\",{\"0\":{\"17\":1},\"1\":{\"17\":3}}],[\"returned\",{\"1\":{\"57\":1,\"66\":2,\"67\":4}}],[\"returns\",{\"1\":{\"38\":1,\"41\":1,\"49\":1,\"66\":1}}],[\"returntype\",{\"1\":{\"32\":5}}],[\"return\",{\"1\":{\"11\":1,\"19\":1,\"20\":2,\"27\":2,\"28\":1,\"32\":4,\"33\":2,\"40\":1,\"41\":1,\"51\":1,\"57\":1,\"66\":2,\"67\":4,\"72\":2,\"76\":1,\"91\":1,\"92\":4,\"93\":1}}],[\"requires\",{\"1\":{\"59\":1,\"67\":1}}],[\"required\",{\"1\":{\"4\":1,\"28\":1,\"62\":1}}],[\"requeue\",{\"1\":{\"52\":2}}],[\"request\",{\"1\":{\"3\":1,\"38\":4,\"40\":10}}],[\"replaced\",{\"1\":{\"92\":1}}],[\"replace\",{\"1\":{\"67\":1,\"90\":1,\"91\":1}}],[\"replacement\",{\"1\":{\"1\":1}}],[\"repo\",{\"1\":{\"4\":1,\"12\":1,\"38\":1,\"40\":1}}],[\"level\",{\"0\":{\"87\":1},\"1\":{\"60\":2,\"62\":2,\"87\":1}}],[\"level=logging\",{\"1\":{\"36\":1}}],[\"leave\",{\"1\":{\"57\":1}}],[\"let\",{\"1\":{\"36\":1,\"38\":1,\"40\":1,\"41\":1,\"45\":1,\"50\":2,\"66\":1,\"67\":3,\"72\":3,\"80\":1,\"82\":1,\"88\":1,\"92\":2,\"93\":2}}],[\"less\",{\"1\":{\"3\":1,\"70\":1}}],[\"language\",{\"1\":{\"90\":1}}],[\"lambda\",{\"1\":{\"63\":9}}],[\"later\",{\"1\":{\"51\":1,\"78\":1,\"80\":1}}],[\"latest\",{\"1\":{\"36\":1}}],[\"lack\",{\"1\":{\"43\":1}}],[\"label1=\",{\"1\":{\"76\":1}}],[\"label1=1\",{\"1\":{\"48\":1}}],[\"label2=\",{\"1\":{\"48\":2}}],[\"label=1\",{\"1\":{\"48\":2}}],[\"labels=\",{\"1\":{\"33\":1}}],[\"labels\",{\"1\":{\"24\":5,\"47\":3,\"48\":3,\"51\":3,\"76\":4}}],[\"labelschedulesource\",{\"0\":{\"24\":1},\"1\":{\"24\":2,\"63\":2,\"72\":2}}],[\"label\",{\"1\":{\"17\":1,\"24\":2,\"29\":3,\"47\":1,\"51\":1,\"68\":1}}],[\"ll\",{\"1\":{\"8\":1,\"18\":1,\"38\":1,\"40\":1,\"52\":1,\"57\":2}}],[\"little\",{\"1\":{\"66\":1,\"72\":1}}],[\"light\",{\"1\":{\"45\":1}}],[\"like\",{\"1\":{\"27\":2,\"30\":1,\"35\":3,\"36\":1,\"37\":1,\"38\":1,\"40\":2,\"44\":1,\"45\":1,\"54\":1,\"57\":1,\"59\":1,\"71\":1,\"72\":2,\"74\":1,\"80\":1,\"81\":2,\"83\":1}}],[\"line\",{\"1\":{\"36\":1,\"50\":1,\"67\":1}}],[\"link\",{\"1\":{\"13\":1,\"14\":1,\"15\":1}}],[\"lints\",{\"1\":{\"5\":1}}],[\"linting\",{\"0\":{\"5\":1}}],[\"library\",{\"1\":{\"21\":1,\"25\":1,\"35\":2,\"36\":1,\"37\":1,\"38\":1,\"40\":2,\"43\":2,\"53\":1,\"65\":1,\"67\":1}}],[\"libraries\",{\"0\":{\"44\":1},\"1\":{\"1\":1,\"35\":1,\"36\":1,\"37\":1,\"40\":1,\"43\":1,\"70\":1,\"87\":1}}],[\"lib\",{\"1\":{\"10\":1,\"12\":1,\"52\":1,\"67\":1,\"91\":1}}],[\"listqueuebroker\",{\"1\":{\"36\":2,\"63\":6,\"76\":2}}],[\"listener\",{\"1\":{\"63\":1}}],[\"listening\",{\"1\":{\"50\":1,\"78\":1}}],[\"listen\",{\"1\":{\"27\":2,\"28\":2,\"36\":1,\"46\":2,\"63\":1}}],[\"list\",{\"1\":{\"7\":1,\"8\":1,\"17\":1,\"24\":2,\"33\":3,\"36\":2,\"72\":1,\"76\":2,\"87\":1}}],[\"loads\",{\"1\":{\"71\":1}}],[\"loadb\",{\"1\":{\"70\":1}}],[\"looks\",{\"1\":{\"45\":1,\"81\":2}}],[\"look\",{\"1\":{\"38\":1,\"50\":1,\"70\":1,\"71\":1}}],[\"loop=loop\",{\"1\":{\"39\":2}}],[\"loop\",{\"1\":{\"36\":1,\"39\":2,\"46\":1,\"50\":1,\"63\":3,\"72\":1}}],[\"logic\",{\"1\":{\"63\":1,\"73\":1,\"90\":1}}],[\"log\",{\"1\":{\"60\":2,\"62\":2}}],[\"logging\",{\"1\":{\"36\":4,\"60\":2,\"62\":2}}],[\"logs=true\",{\"1\":{\"32\":1}}],[\"logs\",{\"1\":{\"32\":8}}],[\"lot\",{\"1\":{\"32\":1}}],[\"lots\",{\"1\":{\"3\":1}}],[\"localhost\",{\"1\":{\"23\":1,\"35\":1,\"36\":1,\"63\":3,\"67\":6,\"72\":2,\"76\":2,\"80\":1}}],[\"local\",{\"1\":{\"9\":1,\"10\":1,\"66\":1}}],[\"locally\",{\"1\":{\"3\":1,\"6\":1,\"9\":1}}],[\"lovely\",{\"1\":{\"47\":1,\"48\":3}}],[\"love\",{\"1\":{\"3\":1}}],[\"bigger\",{\"1\":{\"40\":1}}],[\"bit\",{\"1\":{\"35\":1,\"66\":1}}],[\"balance\",{\"1\":{\"48\":1}}],[\"back\",{\"1\":{\"45\":1,\"52\":1}}],[\"backend\",{\"0\":{\"21\":1,\"32\":1,\"49\":1},\"1\":{\"20\":1,\"21\":1,\"32\":6,\"49\":2,\"51\":1,\"56\":1,\"65\":1,\"67\":4,\"91\":1}}],[\"backends\",{\"0\":{\"19\":1},\"1\":{\"7\":1,\"19\":1,\"26\":1,\"32\":1,\"44\":2,\"45\":1}}],[\"basic\",{\"1\":{\"43\":1}}],[\"basicconfig\",{\"1\":{\"36\":1}}],[\"bases\",{\"1\":{\"93\":1}}],[\"based\",{\"1\":{\"85\":1}}],[\"base\",{\"1\":{\"40\":1,\"93\":1}}],[\"blocking\",{\"1\":{\"36\":1}}],[\"bots\",{\"1\":{\"36\":5}}],[\"bot\",{\"1\":{\"36\":22}}],[\"bool\",{\"1\":{\"11\":1,\"32\":2}}],[\"built\",{\"1\":{\"43\":1,\"44\":1}}],[\"building\",{\"1\":{\"37\":1}}],[\"build\",{\"1\":{\"30\":1,\"81\":1}}],[\"button\",{\"1\":{\"80\":1}}],[\"but\",{\"1\":{\"1\":1,\"3\":1,\"5\":1,\"6\":1,\"9\":2,\"27\":1,\"28\":1,\"30\":1,\"33\":1,\"35\":3,\"38\":2,\"40\":1,\"41\":1,\"43\":1,\"44\":1,\"47\":1,\"49\":1,\"51\":1,\"59\":1,\"60\":1,\"63\":1,\"66\":2,\"67\":1,\"68\":1,\"69\":2,\"70\":2,\"71\":2,\"72\":1,\"73\":1,\"79\":1,\"80\":3,\"90\":1,\"91\":1,\"93\":5}}],[\"bytes\",{\"1\":{\"27\":4,\"28\":2}}],[\"by\",{\"1\":{\"9\":1,\"18\":1,\"32\":1,\"39\":1,\"43\":1,\"45\":2,\"49\":2,\"50\":1,\"51\":2,\"52\":1,\"53\":1,\"55\":1,\"56\":2,\"58\":1,\"60\":1,\"62\":1,\"63\":2,\"67\":1,\"69\":1,\"71\":1,\"73\":1,\"75\":1,\"76\":6,\"78\":1,\"80\":1,\"81\":1,\"86\":1}}],[\"brokerwrapper\",{\"1\":{\"35\":2}}],[\"brokermessage\",{\"1\":{\"27\":6}}],[\"broker=broker\",{\"1\":{\"24\":1,\"39\":1,\"72\":1}}],[\"broker\",{\"0\":{\"11\":1,\"14\":1,\"15\":1,\"46\":1},\"1\":{\"9\":1,\"10\":3,\"11\":7,\"17\":3,\"18\":1,\"20\":1,\"21\":1,\"23\":1,\"24\":3,\"27\":3,\"28\":3,\"29\":2,\"31\":3,\"32\":1,\"33\":3,\"35\":6,\"36\":9,\"38\":3,\"39\":2,\"40\":9,\"41\":3,\"44\":1,\"45\":1,\"46\":2,\"47\":10,\"48\":3,\"50\":10,\"52\":3,\"54\":2,\"56\":1,\"59\":1,\"60\":2,\"61\":1,\"63\":23,\"65\":2,\"66\":12,\"67\":27,\"70\":1,\"72\":6,\"76\":7,\"78\":4,\"80\":1,\"84\":1,\"90\":2,\"91\":7,\"92\":5,\"93\":6}}],[\"brokers\",{\"0\":{\"8\":1,\"12\":1,\"27\":1},\"1\":{\"7\":1,\"8\":1,\"11\":1,\"12\":2,\"26\":1,\"27\":2,\"29\":1,\"35\":2,\"40\":1,\"43\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":2,\"60\":1,\"63\":1,\"87\":1}}],[\"been\",{\"1\":{\"75\":2}}],[\"berlin\",{\"1\":{\"74\":1}}],[\"below\",{\"1\":{\"72\":1}}],[\"behaviour\",{\"1\":{\"66\":1,\"75\":2}}],[\"behavior\",{\"1\":{\"10\":1,\"74\":1,\"81\":1}}],[\"beginning\",{\"1\":{\"66\":2,\"67\":1}}],[\"become\",{\"1\":{\"66\":1,\"93\":1}}],[\"becomes\",{\"1\":{\"36\":1,\"38\":1}}],[\"because\",{\"1\":{\"10\":1,\"32\":1,\"36\":1,\"38\":1,\"40\":1,\"41\":1,\"44\":1,\"57\":1,\"67\":1,\"82\":1,\"91\":1}}],[\"best\",{\"1\":{\"36\":1}}],[\"before\",{\"1\":{\"31\":1,\"33\":1,\"51\":3,\"60\":2,\"63\":2,\"67\":1,\"83\":2,\"90\":1,\"93\":3}}],[\"between\",{\"1\":{\"10\":1,\"35\":2}}],[\"better\",{\"1\":{\"3\":2,\"37\":1,\"76\":1,\"80\":2}}],[\"be\",{\"1\":{\"1\":1,\"3\":1,\"9\":1,\"10\":2,\"11\":1,\"17\":1,\"18\":3,\"20\":2,\"24\":6,\"25\":1,\"28\":1,\"29\":2,\"31\":1,\"32\":1,\"33\":5,\"34\":1,\"35\":1,\"36\":1,\"38\":3,\"40\":1,\"47\":1,\"48\":2,\"49\":1,\"51\":2,\"52\":2,\"55\":1,\"56\":1,\"60\":3,\"62\":1,\"63\":2,\"69\":1,\"70\":2,\"71\":1,\"72\":3,\"74\":4,\"75\":4,\"76\":2,\"78\":1,\"80\":3,\"81\":2,\"84\":2,\"85\":1,\"87\":1,\"88\":1,\"92\":1,\"93\":2}}],[\"pm\",{\"1\":{\"72\":1}}],[\"purpose\",{\"1\":{\"76\":1}}],[\"purposes\",{\"1\":{\"63\":1,\"93\":1}}],[\"pub\",{\"1\":{\"46\":1}}],[\"public\",{\"1\":{\"40\":1}}],[\"publishes\",{\"1\":{\"10\":1}}],[\"publish\",{\"1\":{\"3\":1,\"6\":1}}],[\"puts\",{\"1\":{\"46\":1,\"52\":1}}],[\"per\",{\"1\":{\"60\":1}}],[\"perform\",{\"1\":{\"27\":1,\"36\":1,\"59\":1,\"83\":1}}],[\"people\",{\"1\":{\"33\":3,\"40\":2,\"63\":1}}],[\"pid>\",{\"1\":{\"59\":1}}],[\"pika\",{\"1\":{\"13\":2,\"65\":1,\"67\":6,\"72\":2}}],[\"pipelines\",{\"1\":{\"31\":1,\"44\":1}}],[\"pip\",{\"1\":{\"2\":2,\"13\":1,\"14\":1,\"15\":1,\"21\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"65\":1,\"67\":2}}],[\"policies\",{\"1\":{\"50\":1}}],[\"polling\",{\"1\":{\"36\":1}}],[\"popularity\",{\"1\":{\"40\":1}}],[\"popular\",{\"1\":{\"40\":1}}],[\"populates\",{\"1\":{\"39\":1}}],[\"populate\",{\"1\":{\"39\":3,\"41\":1}}],[\"pool\",{\"1\":{\"38\":2,\"40\":2,\"78\":2,\"80\":2}}],[\"post\",{\"1\":{\"33\":1,\"51\":4}}],[\"possible\",{\"1\":{\"27\":1,\"40\":1,\"43\":1,\"60\":1,\"63\":2,\"73\":1}}],[\"point\",{\"1\":{\"30\":1,\"38\":1,\"91\":1}}],[\"points\",{\"1\":{\"30\":2}}],[\"port=9000\",{\"1\":{\"18\":1}}],[\"port\",{\"1\":{\"10\":2,\"18\":1}}],[\"poetry\",{\"1\":{\"4\":2}}],[\"place\",{\"1\":{\"91\":1}}],[\"plain\",{\"1\":{\"66\":1}}],[\"plugin\",{\"1\":{\"90\":1}}],[\"plugins\",{\"1\":{\"7\":1,\"53\":2}}],[\"please\",{\"1\":{\"3\":2,\"4\":2,\"10\":2,\"11\":1,\"20\":1,\"27\":2,\"36\":1,\"37\":1,\"40\":1,\"50\":1,\"51\":1,\"72\":2}}],[\"pydantic\",{\"1\":{\"57\":1}}],[\"pypi\",{\"1\":{\"53\":1,\"65\":2}}],[\"py\",{\"1\":{\"50\":3,\"55\":2,\"62\":2,\"66\":3,\"67\":4,\"91\":1,\"93\":2}}],[\"pyzmq\",{\"1\":{\"10\":1}}],[\"pyenv\",{\"1\":{\"4\":3,\"6\":1}}],[\"python\",{\"1\":{\"4\":2,\"6\":2,\"30\":1,\"40\":1,\"43\":1,\"50\":1,\"60\":1,\"66\":3,\"67\":4,\"68\":1,\"90\":1}}],[\"pytest\",{\"1\":{\"4\":1,\"6\":5,\"39\":1,\"41\":2,\"90\":2,\"91\":3,\"92\":3,\"93\":6}}],[\"practice\",{\"1\":{\"32\":1}}],[\"primitives\",{\"1\":{\"72\":1}}],[\"printed\",{\"1\":{\"67\":1}}],[\"print\",{\"1\":{\"30\":1,\"33\":2,\"36\":1,\"47\":2,\"48\":3,\"51\":1,\"63\":6,\"66\":3,\"67\":6,\"76\":2}}],[\"priorities\",{\"1\":{\"29\":1}}],[\"priority\",{\"1\":{\"29\":2}}],[\"preparations\",{\"0\":{\"89\":1},\"1\":{\"91\":1}}],[\"prepare\",{\"1\":{\"3\":1}}],[\"predict\",{\"1\":{\"81\":1}}],[\"preserve\",{\"1\":{\"73\":1}}],[\"previous\",{\"1\":{\"63\":1,\"73\":1}}],[\"previously\",{\"1\":{\"40\":1}}],[\"prefetched\",{\"1\":{\"60\":1}}],[\"prefetch\",{\"1\":{\"60\":1}}],[\"pre\",{\"1\":{\"5\":3,\"33\":1,\"51\":3}}],[\"pr\",{\"1\":{\"3\":2,\"6\":1}}],[\"providing\",{\"1\":{\"76\":1}}],[\"provides\",{\"1\":{\"43\":1}}],[\"provide\",{\"1\":{\"38\":1,\"40\":2,\"41\":1,\"50\":1,\"67\":1,\"79\":1,\"80\":1,\"93\":1}}],[\"production\",{\"1\":{\"65\":1,\"93\":1}}],[\"producers\",{\"1\":{\"35\":1}}],[\"propagated\",{\"1\":{\"84\":1}}],[\"propagate\",{\"1\":{\"60\":1,\"84\":3}}],[\"programs\",{\"1\":{\"88\":1}}],[\"programmatically\",{\"1\":{\"78\":1}}],[\"program\",{\"1\":{\"53\":1}}],[\"prometheusmiddleware\",{\"1\":{\"18\":3}}],[\"prometheus\",{\"0\":{\"18\":1},\"1\":{\"18\":2}}],[\"project\",{\"1\":{\"13\":1,\"14\":1,\"15\":1,\"35\":1,\"37\":1,\"38\":1,\"40\":1,\"44\":3,\"50\":8,\"54\":2,\"61\":3,\"71\":1,\"79\":1,\"91\":1,\"92\":4,\"93\":2}}],[\"projects\",{\"1\":{\"1\":1,\"10\":1,\"35\":1,\"44\":2}}],[\"processing\",{\"1\":{\"46\":1}}],[\"process\",{\"1\":{\"10\":1,\"36\":2,\"39\":1,\"40\":2,\"41\":1,\"43\":1,\"54\":1,\"59\":1,\"60\":1,\"67\":2}}],[\"processes\",{\"1\":{\"10\":4,\"50\":1}}],[\"problems\",{\"1\":{\"35\":1,\"72\":1}}],[\"problem\",{\"1\":{\"3\":1,\"27\":1,\"44\":1,\"72\":1,\"93\":1}}],[\"painful\",{\"1\":{\"72\":1}}],[\"pattern\",{\"1\":{\"55\":3,\"62\":3}}],[\"patterns\",{\"1\":{\"1\":1}}],[\"pathlib\",{\"1\":{\"93\":2}}],[\"path\",{\"1\":{\"36\":2,\"38\":1,\"40\":1,\"50\":1,\"60\":1,\"62\":1,\"93\":11}}],[\"passed\",{\"1\":{\"36\":2}}],[\"pass\",{\"1\":{\"27\":1,\"57\":1,\"58\":2,\"73\":1,\"75\":1,\"76\":2,\"82\":1,\"92\":2,\"93\":2}}],[\"package\",{\"1\":{\"18\":1,\"21\":1,\"23\":1,\"25\":1,\"40\":1,\"79\":1}}],[\"packages\",{\"1\":{\"12\":1}}],[\"parse\",{\"1\":{\"30\":2,\"57\":2,\"92\":7}}],[\"parsed\",{\"1\":{\"30\":2}}],[\"parser\",{\"1\":{\"30\":3}}],[\"parses\",{\"1\":{\"24\":1,\"37\":1}}],[\"particular\",{\"1\":{\"66\":1}}],[\"part\",{\"1\":{\"21\":1,\"32\":1,\"39\":1,\"41\":1}}],[\"parts\",{\"1\":{\"12\":1}}],[\"param\",{\"1\":{\"32\":6,\"33\":2,\"39\":1}}],[\"parameter\",{\"1\":{\"10\":1,\"18\":1,\"27\":1,\"30\":3,\"32\":1,\"40\":2,\"56\":1,\"60\":3,\"62\":1,\"81\":4,\"82\":1}}],[\"parameters\",{\"0\":{\"60\":1,\"62\":1},\"1\":{\"6\":1,\"12\":1,\"17\":1,\"21\":1,\"24\":1,\"28\":1,\"57\":2}}],[\"parallel\",{\"1\":{\"6\":1}}],[\"page\",{\"1\":{\"3\":1}}],[\"writing\",{\"1\":{\"39\":2,\"80\":1}}],[\"write\",{\"1\":{\"33\":1,\"35\":1,\"51\":1,\"80\":1,\"88\":2}}],[\"way\",{\"1\":{\"63\":1,\"79\":1,\"80\":1}}],[\"wait\",{\"1\":{\"60\":3,\"63\":2,\"66\":3,\"67\":4,\"75\":1,\"92\":1,\"93\":1}}],[\"waits\",{\"1\":{\"46\":1}}],[\"warning\",{\"1\":{\"27\":1,\"66\":1,\"76\":1}}],[\"was\",{\"1\":{\"17\":1,\"33\":1,\"47\":1,\"51\":7,\"52\":1,\"73\":1,\"75\":1}}],[\"want\",{\"1\":{\"3\":1,\"4\":1,\"6\":2,\"17\":1,\"31\":1,\"32\":1,\"33\":1,\"35\":1,\"39\":1,\"40\":1,\"43\":1,\"50\":2,\"54\":1,\"63\":1,\"66\":1,\"68\":2,\"69\":1,\"70\":1,\"71\":1,\"72\":3,\"73\":2,\"74\":1,\"76\":4,\"78\":3,\"83\":1,\"84\":3,\"87\":1,\"88\":1,\"90\":2,\"92\":2,\"93\":1}}],[\"w\",{\"1\":{\"10\":1}}],[\"will\",{\"1\":{\"4\":1,\"6\":1,\"10\":1,\"18\":1,\"20\":1,\"31\":1,\"32\":1,\"33\":2,\"36\":1,\"50\":1,\"51\":1,\"59\":1,\"60\":1,\"63\":3,\"66\":1,\"68\":1,\"72\":1,\"75\":4,\"76\":1,\"78\":1,\"80\":1,\"81\":2,\"84\":1,\"85\":1,\"93\":1}}],[\"within\",{\"1\":{\"36\":1,\"63\":2}}],[\"without\",{\"1\":{\"5\":1,\"6\":1,\"32\":1,\"36\":1,\"51\":1,\"93\":1}}],[\"with\",{\"0\":{\"74\":1,\"88\":1},\"1\":{\"2\":1,\"3\":1,\"5\":1,\"6\":3,\"10\":3,\"11\":1,\"17\":2,\"18\":1,\"25\":1,\"27\":1,\"28\":1,\"29\":4,\"32\":5,\"33\":3,\"34\":2,\"35\":2,\"36\":1,\"37\":1,\"38\":2,\"39\":2,\"40\":6,\"41\":1,\"46\":1,\"47\":3,\"48\":1,\"50\":2,\"52\":2,\"53\":2,\"54\":1,\"55\":1,\"58\":1,\"59\":1,\"60\":1,\"63\":1,\"66\":2,\"67\":6,\"68\":1,\"70\":2,\"72\":1,\"76\":4,\"80\":1,\"82\":2,\"90\":1,\"91\":1,\"92\":1,\"93\":2}}],[\"whith\",{\"1\":{\"76\":1}}],[\"which\",{\"1\":{\"36\":1,\"38\":1,\"41\":1,\"53\":1,\"55\":1,\"62\":1}}],[\"while\",{\"1\":{\"27\":1,\"35\":1,\"66\":1,\"67\":2,\"72\":1,\"80\":1}}],[\"why\",{\"0\":{\"44\":1},\"1\":{\"34\":1,\"55\":1,\"58\":1,\"73\":1,\"79\":1}}],[\"whether\",{\"1\":{\"32\":3,\"66\":1,\"75\":1}}],[\"when\",{\"1\":{\"16\":1,\"24\":5,\"32\":1,\"33\":1,\"36\":2,\"39\":1,\"40\":1,\"47\":1,\"56\":6,\"58\":1,\"60\":5,\"63\":1,\"68\":1,\"75\":1,\"78\":2}}],[\"where\",{\"1\":{\"10\":1,\"20\":1,\"72\":1,\"78\":1,\"81\":1}}],[\"who\",{\"1\":{\"3\":1,\"52\":1,\"63\":1}}],[\"what\",{\"0\":{\"1\":1,\"43\":1},\"1\":{\"40\":1,\"72\":1,\"92\":1,\"93\":2}}],[\"web\",{\"1\":{\"37\":3,\"38\":3,\"39\":1,\"40\":1}}],[\"were\",{\"1\":{\"36\":1,\"40\":1,\"88\":1}}],[\"well\",{\"1\":{\"18\":1,\"63\":1,\"71\":1,\"93\":1}}],[\"we\",{\"1\":{\"3\":3,\"4\":1,\"5\":2,\"6\":1,\"8\":1,\"22\":1,\"27\":1,\"29\":1,\"32\":1,\"34\":1,\"36\":1,\"37\":2,\"38\":4,\"39\":1,\"40\":6,\"41\":2,\"43\":1,\"44\":2,\"50\":2,\"55\":1,\"57\":1,\"63\":14,\"65\":1,\"66\":1,\"67\":11,\"68\":1,\"69\":1,\"70\":1,\"71\":1,\"72\":6,\"73\":2,\"74\":3,\"76\":3,\"79\":2,\"80\":3,\"81\":2,\"83\":1,\"88\":3,\"90\":3,\"91\":4,\"92\":2,\"93\":8}}],[\"world\",{\"1\":{\"49\":1,\"66\":1}}],[\"words\",{\"1\":{\"45\":1}}],[\"word\",{\"1\":{\"24\":1,\"93\":1}}],[\"working\",{\"0\":{\"74\":1}}],[\"works\",{\"1\":{\"67\":1}}],[\"workers\",{\"0\":{\"50\":1},\"1\":{\"18\":1,\"50\":1,\"58\":1,\"59\":1,\"60\":1}}],[\"worker\",{\"0\":{\"54\":1},\"1\":{\"10\":5,\"36\":4,\"39\":1,\"40\":2,\"41\":1,\"45\":1,\"50\":3,\"51\":2,\"53\":1,\"54\":2,\"56\":3,\"58\":2,\"59\":2,\"60\":2,\"63\":15,\"66\":1,\"67\":6,\"71\":1,\"78\":4,\"80\":1,\"84\":2}}],[\"work\",{\"0\":{\"81\":1},\"1\":{\"1\":1,\"40\":1,\"46\":1,\"50\":1,\"82\":1,\"92\":1}}],[\"would\",{\"1\":{\"17\":1,\"41\":1,\"92\":1}}],[\"won\",{\"1\":{\"1\":1,\"51\":1,\"57\":1,\"58\":1,\"60\":1,\"63\":1,\"76\":1,\"79\":1,\"80\":2}}],[\"os\",{\"1\":{\"91\":2}}],[\"old\",{\"1\":{\"73\":1}}],[\"obvious\",{\"1\":{\"73\":1}}],[\"object\",{\"1\":{\"47\":1,\"66\":1,\"76\":1}}],[\"objects\",{\"1\":{\"22\":1}}],[\"out\",{\"1\":{\"73\":1,\"93\":1}}],[\"outside\",{\"1\":{\"63\":1}}],[\"our\",{\"1\":{\"5\":1,\"40\":1,\"67\":1,\"72\":2,\"74\":1,\"91\":1,\"92\":1,\"93\":1}}],[\"over\",{\"1\":{\"66\":1,\"70\":1,\"85\":1}}],[\"overcome\",{\"1\":{\"63\":1}}],[\"override\",{\"1\":{\"49\":1}}],[\"overridden\",{\"1\":{\"9\":1}}],[\"overview\",{\"0\":{\"45\":1},\"1\":{\"66\":1}}],[\"own\",{\"1\":{\"35\":1,\"51\":1,\"63\":1,\"69\":1,\"70\":1,\"71\":1,\"79\":1}}],[\"ok\",{\"1\":{\"29\":1,\"66\":1}}],[\"optimized\",{\"1\":{\"81\":1}}],[\"optional\",{\"1\":{\"29\":1,\"30\":1,\"33\":4,\"61\":1}}],[\"options\",{\"1\":{\"11\":1,\"55\":1}}],[\"option\",{\"1\":{\"6\":1,\"50\":1,\"55\":2,\"57\":1,\"58\":4,\"62\":2,\"84\":1}}],[\"open\",{\"1\":{\"78\":1,\"84\":1}}],[\"opening\",{\"1\":{\"27\":1}}],[\"operations\",{\"1\":{\"27\":1}}],[\"omit\",{\"1\":{\"82\":1}}],[\"omitted\",{\"1\":{\"24\":3}}],[\"ommited\",{\"1\":{\"24\":1}}],[\"occurs\",{\"1\":{\"16\":1}}],[\"once\",{\"1\":{\"67\":1,\"75\":1,\"81\":1}}],[\"on\",{\"0\":{\"59\":1},\"1\":{\"10\":1,\"17\":4,\"23\":1,\"32\":1,\"33\":1,\"35\":2,\"37\":1,\"38\":3,\"40\":4,\"41\":1,\"43\":1,\"44\":1,\"45\":4,\"47\":1,\"51\":3,\"66\":1,\"75\":1,\"76\":3,\"80\":2,\"81\":2,\"85\":1,\"93\":1}}],[\"ones\",{\"1\":{\"73\":1}}],[\"one\",{\"1\":{\"10\":1,\"22\":1,\"36\":1,\"38\":1,\"40\":1,\"41\":1,\"48\":1,\"57\":1,\"66\":2,\"67\":4,\"72\":3,\"78\":1,\"90\":1,\"92\":3}}],[\"only\",{\"0\":{\"59\":1},\"1\":{\"10\":1,\"22\":1,\"27\":1,\"32\":1,\"38\":2,\"39\":1,\"40\":2,\"53\":1,\"62\":1,\"72\":2,\"73\":3,\"81\":1,\"82\":1,\"84\":1,\"86\":1}}],[\"orjsonserializer\",{\"1\":{\"70\":1}}],[\"orjson\",{\"1\":{\"70\":1}}],[\"ordinary\",{\"1\":{\"66\":1,\"67\":1}}],[\"order\",{\"1\":{\"24\":1,\"51\":1}}],[\"orchestration\",{\"1\":{\"59\":1}}],[\"or\",{\"1\":{\"2\":1,\"3\":2,\"10\":1,\"18\":1,\"24\":2,\"28\":2,\"29\":1,\"30\":1,\"31\":2,\"32\":1,\"36\":2,\"38\":1,\"40\":5,\"43\":1,\"44\":1,\"47\":1,\"48\":1,\"50\":1,\"51\":4,\"52\":5,\"55\":2,\"57\":1,\"58\":1,\"60\":1,\"62\":2,\"65\":2,\"66\":1,\"68\":1,\"69\":1,\"70\":1,\"73\":1,\"74\":2,\"76\":3,\"90\":1,\"93\":1}}],[\"offset\",{\"1\":{\"24\":3,\"74\":3}}],[\"officially\",{\"1\":{\"7\":1,\"8\":1}}],[\"official\",{\"1\":{\"4\":1}}],[\"of\",{\"1\":{\"1\":2,\"3\":1,\"7\":1,\"10\":3,\"12\":3,\"17\":2,\"18\":1,\"21\":2,\"23\":1,\"24\":3,\"27\":2,\"28\":2,\"29\":1,\"30\":1,\"31\":2,\"32\":6,\"33\":2,\"36\":3,\"38\":2,\"40\":2,\"41\":1,\"43\":1,\"44\":2,\"46\":1,\"49\":1,\"51\":2,\"52\":4,\"55\":2,\"56\":2,\"57\":2,\"60\":8,\"62\":3,\"63\":5,\"65\":1,\"66\":3,\"67\":3,\"68\":2,\"69\":1,\"70\":3,\"71\":1,\"72\":4,\"74\":4,\"75\":1,\"76\":5,\"78\":3,\"80\":3,\"81\":3,\"87\":1}}],[\"otherwise\",{\"1\":{\"10\":1,\"36\":1}}],[\"other\",{\"0\":{\"60\":1},\"1\":{\"1\":1,\"18\":1,\"35\":2,\"36\":1,\"38\":1,\"44\":1,\"70\":1,\"82\":1,\"93\":1}}],[\"d\",{\"1\":{\"71\":1}}],[\"dyn\",{\"1\":{\"63\":27}}],[\"dynamically\",{\"1\":{\"63\":1}}],[\"dynamic\",{\"0\":{\"63\":1,\"76\":1},\"1\":{\"23\":2,\"63\":4,\"76\":2}}],[\"day\",{\"1\":{\"72\":1}}],[\"dark\",{\"1\":{\"45\":2}}],[\"data\",{\"1\":{\"66\":1,\"70\":1}}],[\"dataclasses\",{\"1\":{\"57\":1}}],[\"database\",{\"1\":{\"33\":1,\"78\":1,\"84\":1}}],[\"data=message\",{\"1\":{\"28\":1}}],[\"datetime\",{\"1\":{\"24\":1,\"63\":4,\"70\":1,\"74\":1,\"76\":10}}],[\"db\",{\"1\":{\"38\":1}}],[\"dp\",{\"1\":{\"36\":6}}],[\"dumps\",{\"1\":{\"71\":2}}],[\"dumpb\",{\"1\":{\"70\":1}}],[\"dummyresultbackend\",{\"0\":{\"20\":1},\"1\":{\"49\":1}}],[\"during\",{\"1\":{\"17\":1,\"31\":1,\"91\":1}}],[\"declaration\",{\"1\":{\"63\":2,\"66\":1}}],[\"declared\",{\"1\":{\"82\":2}}],[\"declare\",{\"1\":{\"35\":1}}],[\"decorator\",{\"1\":{\"48\":2,\"68\":1}}],[\"detailed\",{\"1\":{\"38\":1}}],[\"dep2\",{\"1\":{\"81\":3}}],[\"dep1\",{\"1\":{\"81\":1}}],[\"dep\",{\"1\":{\"81\":3}}],[\"deployment\",{\"1\":{\"59\":1}}],[\"depends\",{\"1\":{\"93\":1}}],[\"dependenices\",{\"1\":{\"40\":1}}],[\"dependencies\",{\"0\":{\"77\":1,\"79\":1,\"80\":1,\"81\":1,\"83\":1,\"86\":1,\"87\":1},\"1\":{\"4\":3,\"34\":1,\"36\":1,\"37\":2,\"38\":4,\"40\":4,\"41\":1,\"60\":1,\"79\":3,\"80\":3,\"81\":5,\"82\":3,\"83\":1,\"84\":2,\"85\":1,\"86\":1,\"87\":4,\"93\":8}}],[\"dependency\",{\"0\":{\"82\":1,\"93\":1},\"1\":{\"2\":1,\"36\":1,\"37\":3,\"38\":1,\"39\":2,\"40\":4,\"41\":4,\"44\":1,\"80\":2,\"81\":4,\"82\":2,\"84\":2,\"87\":1,\"93\":6}}],[\"depend\",{\"1\":{\"38\":1,\"40\":2,\"81\":1}}],[\"deps\",{\"1\":{\"37\":4,\"38\":2,\"41\":1}}],[\"deprecated\",{\"1\":{\"32\":1}}],[\"described\",{\"1\":{\"61\":1}}],[\"description\",{\"1\":{\"3\":1}}],[\"dest=\",{\"1\":{\"30\":1}}],[\"demo\",{\"1\":{\"30\":4}}],[\"deleting\",{\"1\":{\"33\":1}}],[\"delete\",{\"1\":{\"33\":1,\"76\":2}}],[\"delay=1\",{\"1\":{\"47\":1}}],[\"delayed\",{\"1\":{\"29\":1,\"33\":1,\"36\":1}}],[\"delay\",{\"1\":{\"29\":2}}],[\"delivery\",{\"1\":{\"27\":1}}],[\"developers\",{\"1\":{\"52\":1,\"74\":1,\"75\":1}}],[\"developer\",{\"1\":{\"27\":1}}],[\"development\",{\"1\":{\"9\":1,\"34\":1,\"66\":1}}],[\"defining\",{\"1\":{\"35\":1,\"63\":1}}],[\"define\",{\"1\":{\"11\":2,\"41\":1,\"48\":1,\"63\":4,\"69\":1,\"70\":2,\"71\":3,\"92\":2}}],[\"defined\",{\"1\":{\"11\":1,\"54\":1,\"63\":1,\"67\":1,\"72\":1,\"92\":1}}],[\"def\",{\"1\":{\"11\":1,\"17\":1,\"24\":1,\"27\":5,\"28\":1,\"30\":1,\"32\":5,\"33\":7,\"36\":5,\"39\":1,\"40\":3,\"41\":2,\"47\":2,\"48\":5,\"51\":2,\"57\":1,\"63\":3,\"66\":2,\"67\":4,\"72\":2,\"76\":2,\"80\":1,\"91\":1,\"92\":5,\"93\":3}}],[\"default=\",{\"1\":{\"30\":1}}],[\"default\",{\"0\":{\"86\":1},\"1\":{\"9\":1,\"11\":1,\"16\":1,\"17\":1,\"27\":1,\"30\":2,\"40\":2,\"49\":2,\"50\":1,\"53\":1,\"55\":1,\"58\":1,\"60\":3,\"62\":2,\"69\":2,\"70\":1,\"71\":1,\"73\":1,\"75\":1,\"81\":1,\"86\":1,\"87\":2}}],[\"dramatiq\",{\"1\":{\"44\":1}}],[\"draft\",{\"1\":{\"3\":1}}],[\"drops\",{\"1\":{\"52\":1}}],[\"drop\",{\"1\":{\"1\":1}}],[\"dive\",{\"1\":{\"88\":1}}],[\"didn\",{\"1\":{\"67\":1}}],[\"directory\",{\"1\":{\"50\":1,\"55\":2,\"58\":1,\"62\":1}}],[\"directly\",{\"1\":{\"11\":1,\"65\":1,\"79\":1,\"80\":1}}],[\"diagram\",{\"1\":{\"45\":2}}],[\"disables\",{\"1\":{\"60\":1}}],[\"disable\",{\"1\":{\"57\":1,\"58\":1}}],[\"discover\",{\"1\":{\"50\":2,\"55\":2,\"62\":1}}],[\"discuss\",{\"1\":{\"45\":1}}],[\"discussions\",{\"1\":{\"3\":1}}],[\"dispatcher\",{\"1\":{\"36\":6}}],[\"distributed\",{\"0\":{\"67\":1},\"1\":{\"35\":1,\"43\":2,\"44\":1,\"67\":1,\"90\":1}}],[\"difference\",{\"1\":{\"39\":1,\"63\":1}}],[\"differense\",{\"1\":{\"35\":1}}],[\"different\",{\"1\":{\"1\":2,\"4\":1,\"6\":2,\"25\":1,\"27\":1,\"34\":1,\"35\":4,\"41\":1,\"53\":1,\"71\":1,\"73\":1,\"93\":1}}],[\"dict\",{\"1\":{\"24\":2,\"71\":1}}],[\"docker\",{\"1\":{\"67\":1}}],[\"documentation\",{\"1\":{\"4\":1,\"30\":1,\"35\":1,\"44\":1}}],[\"downtime\",{\"1\":{\"59\":1}}],[\"down\",{\"1\":{\"36\":2}}],[\"done\",{\"1\":{\"43\":1,\"76\":1,\"91\":1}}],[\"don\",{\"1\":{\"24\":1,\"59\":1,\"63\":1,\"66\":1,\"84\":1,\"90\":1,\"93\":1}}],[\"do\",{\"0\":{\"81\":1},\"1\":{\"3\":1,\"6\":2,\"18\":1,\"20\":1,\"27\":1,\"31\":1,\"32\":2,\"33\":2,\"49\":1,\"58\":1,\"65\":1,\"66\":1,\"67\":1,\"68\":1,\"71\":1,\"72\":1,\"73\":1,\"76\":2,\"83\":2,\"93\":1}}],[\"doesn\",{\"1\":{\"1\":1,\"20\":2,\"28\":1,\"29\":1,\"38\":1,\"39\":1,\"41\":1,\"43\":1,\"49\":1,\"66\":1,\"69\":1,\"72\":1,\"81\":2,\"82\":1,\"91\":1}}],[\"nice\",{\"1\":{\"36\":1,\"79\":1}}],[\"named\",{\"1\":{\"50\":1,\"63\":1}}],[\"names\",{\"1\":{\"48\":2}}],[\"namespace\",{\"1\":{\"30\":1}}],[\"name=\",{\"1\":{\"33\":1,\"36\":1,\"48\":1,\"63\":3}}],[\"name\",{\"1\":{\"30\":2,\"36\":1,\"44\":1,\"47\":1,\"63\":3,\"66\":1,\"67\":2}}],[\"nats\",{\"0\":{\"15\":1},\"1\":{\"15\":2,\"65\":1}}],[\"necessary\",{\"1\":{\"66\":1}}],[\"never\",{\"1\":{\"66\":1}}],[\"network\",{\"1\":{\"66\":1,\"70\":1}}],[\"next\",{\"1\":{\"31\":1,\"75\":1}}],[\"new\",{\"1\":{\"23\":1,\"27\":5,\"30\":1,\"32\":1,\"33\":2,\"41\":1,\"46\":1,\"50\":2,\"53\":1,\"59\":1,\"60\":1,\"63\":2,\"67\":1,\"71\":1,\"73\":1,\"76\":2,\"87\":2}}],[\"needs\",{\"1\":{\"43\":1}}],[\"needed\",{\"1\":{\"32\":1,\"39\":1}}],[\"need\",{\"1\":{\"18\":1,\"20\":1,\"23\":1,\"27\":1,\"30\":2,\"35\":1,\"39\":1,\"41\":1,\"65\":1,\"66\":2,\"67\":4,\"72\":1,\"91\":1,\"93\":2}}],[\"normal\",{\"1\":{\"88\":1,\"92\":1}}],[\"noqa\",{\"1\":{\"76\":1}}],[\"non\",{\"1\":{\"70\":1}}],[\"none\",{\"1\":{\"20\":1,\"24\":7,\"27\":5,\"28\":2,\"30\":1,\"32\":3,\"33\":6,\"36\":1,\"39\":1,\"47\":1,\"48\":3,\"51\":1,\"63\":3,\"66\":1,\"67\":3,\"76\":2,\"80\":1}}],[\"now\",{\"1\":{\"32\":1,\"36\":1,\"40\":1,\"63\":5,\"66\":2,\"67\":4,\"72\":1,\"76\":2,\"80\":1,\"93\":2}}],[\"no\",{\"1\":{\"28\":1,\"38\":1,\"41\":1,\"57\":1,\"60\":2,\"62\":1,\"74\":1,\"84\":3}}],[\"note\",{\"1\":{\"32\":1,\"40\":1,\"51\":1,\"66\":1}}],[\"notice\",{\"1\":{\"24\":1}}],[\"not\",{\"0\":{\"44\":1},\"1\":{\"1\":1,\"3\":1,\"12\":1,\"21\":1,\"27\":1,\"32\":1,\"33\":3,\"36\":2,\"40\":3,\"55\":1,\"58\":1,\"63\":2,\"66\":3,\"67\":3,\"68\":1,\"70\":1,\"72\":1,\"73\":1,\"74\":2,\"75\":1,\"81\":1,\"91\":1,\"93\":3,\"94\":1}}],[\"number\",{\"1\":{\"10\":1,\"17\":1,\"29\":2,\"51\":1,\"60\":5,\"72\":1}}],[\"nutshell\",{\"0\":{\"1\":1}}],[\"n\",{\"1\":{\"6\":2,\"10\":2,\"72\":2}}],[\"fs\",{\"1\":{\"55\":1,\"62\":1}}],[\"fsd\",{\"1\":{\"50\":2,\"55\":1,\"62\":1}}],[\"f\",{\"1\":{\"51\":1,\"66\":2,\"67\":4}}],[\"further\",{\"1\":{\"66\":1}}],[\"fully\",{\"1\":{\"44\":1,\"91\":1}}],[\"fun\",{\"1\":{\"34\":1}}],[\"function\",{\"1\":{\"28\":1,\"32\":1,\"36\":6,\"38\":4,\"39\":1,\"40\":3,\"60\":1,\"63\":2,\"66\":4,\"67\":1,\"68\":1,\"72\":1,\"73\":2,\"76\":1,\"78\":1,\"80\":1,\"81\":2,\"82\":1,\"83\":1,\"84\":1,\"87\":1,\"92\":3,\"93\":2}}],[\"functionality\",{\"1\":{\"25\":1,\"43\":2,\"57\":1,\"58\":1}}],[\"functions\",{\"1\":{\"9\":1,\"17\":1,\"36\":2,\"40\":2,\"43\":2,\"44\":1,\"52\":1,\"68\":1,\"73\":2,\"79\":1,\"82\":1,\"88\":1,\"91\":1}}],[\"future\",{\"1\":{\"32\":1,\"76\":1}}],[\"fancier\",{\"1\":{\"66\":1}}],[\"fails\",{\"1\":{\"57\":1}}],[\"failed\",{\"1\":{\"51\":1}}],[\"factory\",{\"1\":{\"38\":1,\"40\":1}}],[\"faster\",{\"1\":{\"70\":1}}],[\"fastapi\",{\"0\":{\"40\":1},\"1\":{\"37\":1,\"40\":14,\"41\":8,\"79\":1,\"93\":1}}],[\"faststream\",{\"0\":{\"35\":1},\"1\":{\"35\":15}}],[\"false\",{\"1\":{\"32\":1}}],[\"favorite\",{\"1\":{\"2\":1,\"30\":1,\"34\":1}}],[\"fly\",{\"1\":{\"76\":1}}],[\"flow\",{\"1\":{\"52\":1}}],[\"float\",{\"1\":{\"29\":1}}],[\"flag\",{\"1\":{\"41\":1,\"75\":1}}],[\"flexible\",{\"1\":{\"1\":1}}],[\"finish\",{\"1\":{\"60\":1}}],[\"finds\",{\"1\":{\"24\":1}}],[\"find\",{\"1\":{\"7\":1,\"38\":1,\"40\":1,\"44\":1,\"50\":1,\"65\":1,\"66\":1,\"73\":1}}],[\"fits\",{\"1\":{\"65\":1}}],[\"fit\",{\"1\":{\"43\":1}}],[\"fixtures\",{\"1\":{\"93\":2}}],[\"fixture\",{\"1\":{\"39\":3,\"41\":5,\"91\":2,\"93\":3}}],[\"filter\",{\"1\":{\"73\":1}}],[\"filters\",{\"1\":{\"36\":1}}],[\"filled\",{\"1\":{\"38\":1}}],[\"files\",{\"1\":{\"55\":3,\"58\":2,\"62\":3}}],[\"file\",{\"1\":{\"36\":1,\"38\":1,\"40\":1,\"50\":1,\"58\":1,\"66\":1,\"67\":2,\"84\":1,\"91\":2}}],[\"field\",{\"1\":{\"27\":1,\"31\":1,\"74\":2}}],[\"fields\",{\"1\":{\"27\":1,\"28\":1,\"74\":2,\"80\":2}}],[\"first\",{\"0\":{\"75\":1,\"87\":1},\"1\":{\"3\":1,\"30\":1,\"38\":1,\"62\":2,\"67\":2,\"75\":2,\"87\":1}}],[\"frameworks\",{\"1\":{\"34\":1}}],[\"framework\",{\"0\":{\"34\":1},\"1\":{\"34\":1,\"37\":1,\"40\":1}}],[\"from\",{\"1\":{\"3\":1,\"4\":1,\"6\":1,\"10\":1,\"11\":1,\"17\":1,\"18\":1,\"23\":2,\"24\":2,\"27\":4,\"30\":3,\"32\":4,\"33\":3,\"35\":3,\"36\":8,\"37\":1,\"38\":2,\"40\":5,\"41\":2,\"46\":2,\"47\":1,\"49\":2,\"51\":2,\"52\":1,\"60\":1,\"63\":7,\"65\":2,\"66\":2,\"67\":6,\"68\":1,\"70\":1,\"71\":1,\"72\":4,\"73\":3,\"74\":1,\"75\":1,\"76\":6,\"78\":2,\"80\":1,\"86\":2,\"91\":1,\"92\":3,\"93\":4}}],[\"frustrated\",{\"1\":{\"3\":1}}],[\"few\",{\"1\":{\"75\":1}}],[\"feature\",{\"1\":{\"44\":1,\"58\":1,\"82\":1,\"84\":1}}],[\"features\",{\"1\":{\"1\":1,\"35\":1,\"57\":1}}],[\"fetching\",{\"1\":{\"32\":2}}],[\"fetch\",{\"1\":{\"22\":1,\"32\":2}}],[\"feel\",{\"1\":{\"3\":1}}],[\"focused\",{\"1\":{\"35\":2}}],[\"found\",{\"1\":{\"25\":1,\"51\":1,\"63\":1,\"66\":1,\"67\":2,\"94\":1}}],[\"following\",{\"1\":{\"24\":1,\"50\":1}}],[\"follow\",{\"1\":{\"4\":1}}],[\"folks\",{\"1\":{\"3\":1}}],[\"force\",{\"1\":{\"69\":1,\"81\":1}}],[\"form\",{\"1\":{\"47\":2}}],[\"formatter\",{\"1\":{\"71\":3}}],[\"formatters\",{\"0\":{\"71\":1},\"1\":{\"71\":3}}],[\"format\",{\"0\":{\"69\":1},\"1\":{\"24\":1,\"69\":4,\"70\":3,\"71\":2}}],[\"forget\",{\"1\":{\"24\":1,\"66\":1}}],[\"for\",{\"0\":{\"0\":1,\"13\":1},\"1\":{\"1\":2,\"3\":3,\"4\":1,\"7\":1,\"9\":1,\"10\":1,\"11\":2,\"17\":2,\"18\":2,\"20\":1,\"22\":1,\"23\":2,\"24\":1,\"27\":2,\"28\":2,\"29\":1,\"31\":1,\"33\":1,\"35\":5,\"37\":2,\"38\":1,\"39\":4,\"40\":1,\"41\":2,\"43\":3,\"46\":4,\"47\":2,\"48\":2,\"49\":1,\"51\":4,\"52\":1,\"53\":1,\"55\":2,\"56\":1,\"57\":1,\"59\":1,\"60\":6,\"61\":1,\"62\":1,\"63\":5,\"65\":1,\"66\":4,\"67\":2,\"70\":2,\"71\":1,\"72\":1,\"73\":2,\"74\":4,\"75\":2,\"76\":4,\"78\":1,\"80\":2,\"81\":5,\"82\":4,\"84\":1,\"87\":2,\"90\":2,\"93\":5}}],[\"msgpackserializer\",{\"1\":{\"70\":1}}],[\"msgpack\",{\"1\":{\"70\":2}}],[\"m\",{\"1\":{\"36\":1,\"66\":1}}],[\"mutate\",{\"1\":{\"93\":1}}],[\"much\",{\"1\":{\"43\":1}}],[\"multiple\",{\"0\":{\"73\":1},\"1\":{\"36\":1,\"44\":2,\"55\":1,\"62\":1,\"73\":1}}],[\"must\",{\"1\":{\"29\":2,\"31\":1,\"32\":2,\"33\":2,\"40\":1,\"46\":1,\"49\":1,\"67\":1,\"93\":1}}],[\"minutes=1\",{\"1\":{\"76\":2}}],[\"minutes=5\",{\"1\":{\"72\":1}}],[\"minutes\",{\"1\":{\"72\":1,\"76\":1}}],[\"minute\",{\"1\":{\"63\":1,\"75\":3}}],[\"minimal\",{\"1\":{\"32\":1,\"33\":1}}],[\"might\",{\"1\":{\"35\":1,\"44\":1,\"70\":1,\"71\":1,\"74\":1,\"75\":1}}],[\"middleware\",{\"0\":{\"17\":1,\"18\":1},\"1\":{\"17\":2,\"31\":3,\"51\":4}}],[\"middlewares\",{\"0\":{\"16\":1,\"31\":1,\"51\":1},\"1\":{\"7\":1,\"16\":2,\"17\":2,\"18\":1,\"26\":1,\"31\":4,\"44\":1,\"51\":4}}],[\"md\",{\"1\":{\"12\":1,\"21\":1,\"37\":1}}],[\"mymiddleware\",{\"1\":{\"51\":1}}],[\"myschedulesource\",{\"1\":{\"33\":1}}],[\"myresultbackend\",{\"1\":{\"32\":1}}],[\"mycommand\",{\"1\":{\"30\":1}}],[\"mybroker\",{\"1\":{\"27\":1,\"38\":1,\"50\":1,\"54\":1,\"56\":1,\"66\":1}}],[\"my\",{\"1\":{\"11\":1,\"24\":1,\"28\":1,\"30\":2,\"36\":4,\"38\":1,\"40\":1,\"47\":3,\"48\":11,\"50\":3,\"51\":2,\"54\":2,\"59\":1,\"61\":3,\"76\":7,\"81\":1,\"82\":1,\"84\":1}}],[\"merge\",{\"1\":{\"73\":5}}],[\"merging\",{\"1\":{\"3\":1}}],[\"me\",{\"1\":{\"72\":1}}],[\"means\",{\"1\":{\"41\":1}}],[\"meant\",{\"1\":{\"34\":1,\"93\":1}}],[\"mechanism\",{\"1\":{\"30\":1}}],[\"message\",{\"0\":{\"69\":1},\"1\":{\"27\":8,\"28\":3,\"29\":3,\"30\":1,\"31\":1,\"35\":1,\"36\":7,\"46\":1,\"47\":2,\"48\":2,\"51\":14,\"52\":3,\"60\":1,\"69\":3,\"70\":2,\"71\":3,\"76\":1}}],[\"messages\",{\"0\":{\"48\":1},\"1\":{\"10\":2,\"28\":1,\"36\":2,\"45\":2,\"46\":3,\"60\":1,\"63\":1,\"78\":1}}],[\"method\",{\"1\":{\"27\":3,\"28\":2,\"30\":1,\"31\":1,\"33\":5,\"46\":2,\"63\":1,\"66\":3,\"68\":1,\"76\":3,\"78\":1,\"93\":1}}],[\"methods\",{\"1\":{\"27\":2,\"46\":1,\"51\":1,\"66\":1,\"70\":1,\"71\":1,\"76\":3}}],[\"metrics\",{\"1\":{\"18\":4}}],[\"mark\",{\"1\":{\"40\":1,\"92\":2,\"93\":2}}],[\"maintained\",{\"1\":{\"44\":1}}],[\"main\",{\"1\":{\"36\":6,\"38\":3,\"40\":1,\"43\":1,\"46\":1,\"47\":2,\"48\":2,\"59\":1,\"63\":11,\"66\":5,\"67\":7,\"91\":1}}],[\"magic\",{\"1\":{\"27\":1,\"37\":1}}],[\"maximum\",{\"1\":{\"17\":1,\"60\":5}}],[\"max\",{\"1\":{\"17\":2,\"60\":4}}],[\"maybe\",{\"1\":{\"72\":1,\"90\":1}}],[\"may\",{\"1\":{\"10\":1,\"27\":1,\"31\":1,\"33\":4,\"46\":1,\"48\":1,\"52\":1,\"53\":1,\"55\":1,\"62\":1,\"66\":1,\"68\":1,\"72\":3,\"73\":1,\"76\":2,\"87\":1,\"92\":1,\"93\":1}}],[\"manner\",{\"1\":{\"43\":1}}],[\"many\",{\"1\":{\"10\":1,\"27\":1,\"40\":1,\"43\":2,\"72\":1,\"81\":1}}],[\"manually\",{\"1\":{\"5\":1,\"50\":1,\"76\":1,\"93\":2}}],[\"managing\",{\"1\":{\"4\":1}}],[\"manager\",{\"0\":{\"0\":1},\"1\":{\"1\":1,\"2\":1}}],[\"malware\",{\"1\":{\"3\":1}}],[\"makes\",{\"1\":{\"37\":1}}],[\"make\",{\"1\":{\"3\":2,\"28\":1,\"34\":1,\"37\":1,\"40\":4,\"43\":2,\"46\":1,\"80\":1}}],[\"most\",{\"1\":{\"46\":1}}],[\"mocked\",{\"1\":{\"38\":1,\"40\":1}}],[\"mock\",{\"1\":{\"38\":1}}],[\"modified\",{\"1\":{\"93\":2}}],[\"modify\",{\"1\":{\"51\":2,\"58\":2,\"91\":1,\"93\":4}}],[\"model\",{\"1\":{\"74\":1}}],[\"models\",{\"1\":{\"57\":1}}],[\"modern\",{\"1\":{\"1\":1}}],[\"module2\",{\"1\":{\"54\":1,\"61\":1}}],[\"module1\",{\"1\":{\"54\":1,\"61\":1}}],[\"module\",{\"1\":{\"50\":1,\"59\":1,\"61\":1,\"66\":1,\"70\":1,\"72\":3,\"73\":1,\"75\":1}}],[\"modules\",{\"1\":{\"24\":1,\"50\":3,\"54\":1,\"55\":1,\"66\":1}}],[\"modular\",{\"1\":{\"43\":1}}],[\"more\",{\"1\":{\"1\":1,\"12\":1,\"21\":1,\"23\":1,\"30\":1,\"35\":5,\"36\":1,\"37\":1,\"38\":1,\"50\":1,\"53\":1,\"63\":1,\"66\":2,\"67\":2,\"72\":1,\"73\":1,\"84\":1,\"87\":1}}],[\"saved\",{\"1\":{\"51\":1,\"56\":2,\"60\":2}}],[\"save\",{\"1\":{\"51\":1}}],[\"same\",{\"1\":{\"1\":1,\"9\":1,\"17\":1,\"29\":1,\"30\":1,\"36\":1,\"38\":4,\"40\":1,\"67\":1,\"81\":1,\"91\":1}}],[\"script\",{\"1\":{\"67\":1}}],[\"scenario\",{\"1\":{\"66\":1}}],[\"scenarios\",{\"1\":{\"49\":1}}],[\"scope=\",{\"1\":{\"93\":1}}],[\"scope\",{\"1\":{\"63\":2}}],[\"scheduling\",{\"0\":{\"72\":1,\"76\":1},\"1\":{\"23\":1,\"35\":1,\"61\":1,\"76\":1}}],[\"schedule=\",{\"1\":{\"24\":1,\"63\":1,\"72\":1}}],[\"scheduledtaskcancellederror\",{\"1\":{\"33\":1}}],[\"scheduledtask\",{\"1\":{\"33\":6,\"74\":2}}],[\"scheduled\",{\"1\":{\"24\":1,\"33\":1,\"76\":2}}],[\"schedulers\",{\"1\":{\"76\":1}}],[\"scheduler>\",{\"1\":{\"61\":1}}],[\"scheduler\",{\"0\":{\"61\":1},\"1\":{\"23\":1,\"24\":2,\"35\":1,\"53\":1,\"61\":4,\"62\":3,\"63\":11,\"72\":11,\"73\":1,\"74\":1,\"75\":6,\"76\":4}}],[\"schedulesources\",{\"1\":{\"76\":1}}],[\"schedulesource\",{\"1\":{\"33\":3}}],[\"schedules\",{\"1\":{\"23\":2,\"33\":2,\"44\":1,\"72\":1,\"73\":3,\"76\":3}}],[\"schedule\",{\"0\":{\"22\":1,\"33\":1},\"1\":{\"7\":1,\"22\":2,\"23\":1,\"24\":3,\"26\":1,\"33\":15,\"61\":1,\"63\":2,\"72\":4,\"73\":3,\"74\":1,\"75\":1,\"76\":24}}],[\"switching\",{\"1\":{\"45\":1}}],[\"smooth\",{\"1\":{\"40\":1}}],[\"smaller\",{\"1\":{\"70\":1}}],[\"small\",{\"1\":{\"10\":1}}],[\"sleep\",{\"1\":{\"36\":1,\"47\":1,\"48\":3,\"51\":1,\"63\":2,\"72\":1}}],[\"system\",{\"1\":{\"46\":2,\"50\":1,\"84\":1}}],[\"systems\",{\"0\":{\"59\":1},\"1\":{\"35\":1,\"60\":1}}],[\"sys\",{\"1\":{\"36\":1}}],[\"sync\",{\"1\":{\"31\":1,\"51\":2,\"60\":1,\"68\":1}}],[\"synchronously\",{\"1\":{\"1\":1}}],[\"synchronous\",{\"1\":{\"1\":1,\"44\":1,\"68\":1}}],[\"skipping\",{\"0\":{\"75\":1}}],[\"skips\",{\"1\":{\"62\":1}}],[\"skip\",{\"1\":{\"32\":1,\"62\":2,\"75\":2}}],[\"still\",{\"1\":{\"63\":1,\"66\":2,\"90\":1}}],[\"stop\",{\"1\":{\"68\":1}}],[\"stops\",{\"1\":{\"52\":1}}],[\"storage\",{\"1\":{\"23\":1,\"32\":1}}],[\"stored\",{\"1\":{\"45\":1,\"50\":1,\"80\":1}}],[\"store\",{\"1\":{\"19\":1,\"20\":1,\"32\":1,\"49\":1,\"51\":1,\"67\":2,\"76\":1,\"80\":1}}],[\"statement\",{\"1\":{\"91\":1}}],[\"state\",{\"0\":{\"77\":1,\"78\":1},\"1\":{\"38\":2,\"40\":1,\"78\":1,\"80\":7,\"86\":1}}],[\"started\",{\"0\":{\"64\":1}}],[\"start\",{\"1\":{\"36\":1,\"39\":1,\"50\":2,\"62\":1,\"67\":2,\"72\":2,\"75\":4,\"78\":1}}],[\"starts\",{\"1\":{\"36\":1}}],[\"starting\",{\"1\":{\"32\":1,\"33\":1,\"36\":1}}],[\"startup\",{\"1\":{\"27\":4,\"32\":1,\"33\":1,\"34\":1,\"36\":3,\"37\":3,\"38\":2,\"40\":4,\"44\":1,\"63\":3,\"66\":4,\"67\":4,\"76\":1,\"78\":5,\"80\":3,\"81\":1,\"83\":2}}],[\"stdout\",{\"1\":{\"36\":1}}],[\"structure\",{\"1\":{\"45\":1,\"50\":1,\"66\":1,\"70\":1}}],[\"struggle\",{\"1\":{\"3\":1}}],[\"stream=sys\",{\"1\":{\"36\":1}}],[\"string\",{\"1\":{\"24\":1,\"27\":1,\"40\":1,\"74\":1}}],[\"str\",{\"1\":{\"24\":4,\"30\":1,\"32\":3,\"33\":1,\"76\":1,\"92\":3,\"93\":2}}],[\"size\",{\"1\":{\"70\":1}}],[\"single\",{\"1\":{\"60\":1}}],[\"since\",{\"1\":{\"3\":1,\"30\":2,\"39\":1,\"72\":1,\"76\":1,\"80\":1,\"81\":1,\"90\":1,\"91\":1,\"92\":1}}],[\"signal\",{\"1\":{\"59\":1}}],[\"signatures\",{\"1\":{\"57\":1}}],[\"signature\",{\"1\":{\"51\":1}}],[\"sighup\",{\"1\":{\"59\":1}}],[\"simultaneously\",{\"1\":{\"60\":1}}],[\"similar\",{\"1\":{\"44\":1,\"63\":1,\"79\":1}}],[\"simply\",{\"1\":{\"37\":1,\"58\":1,\"61\":1,\"73\":1}}],[\"simpleretrymiddleware\",{\"1\":{\"17\":2,\"51\":1}}],[\"simple\",{\"0\":{\"17\":1},\"1\":{\"34\":1,\"36\":1,\"45\":1,\"50\":1,\"66\":1,\"92\":1}}],[\"side\",{\"1\":{\"36\":1,\"45\":2,\"51\":2}}],[\"shipped\",{\"1\":{\"53\":1}}],[\"shifted\",{\"1\":{\"30\":1}}],[\"shutting\",{\"1\":{\"36\":2}}],[\"shutdown\",{\"1\":{\"27\":4,\"32\":2,\"33\":2,\"34\":1,\"36\":3,\"40\":3,\"44\":1,\"60\":3,\"63\":3,\"66\":1,\"67\":2,\"78\":2,\"83\":1}}],[\"show\",{\"1\":{\"30\":1}}],[\"shown\",{\"1\":{\"18\":1,\"72\":1}}],[\"shortening\",{\"1\":{\"47\":1}}],[\"short\",{\"1\":{\"30\":1}}],[\"shoule\",{\"1\":{\"24\":2}}],[\"should\",{\"1\":{\"3\":1,\"28\":2,\"30\":1,\"38\":1,\"40\":2,\"60\":1,\"70\":2,\"72\":1,\"74\":1,\"75\":3,\"92\":2,\"93\":1}}],[\"shared\",{\"0\":{\"11\":2},\"1\":{\"11\":6}}],[\"specify\",{\"1\":{\"36\":1,\"40\":1,\"50\":1,\"54\":1,\"63\":1,\"74\":1}}],[\"specified\",{\"1\":{\"24\":2,\"32\":1,\"55\":1,\"62\":1}}],[\"specific\",{\"1\":{\"16\":1,\"24\":1,\"35\":1,\"69\":1,\"74\":3,\"76\":1}}],[\"special\",{\"1\":{\"9\":1,\"11\":1}}],[\"speedup\",{\"1\":{\"6\":1}}],[\"suggest\",{\"1\":{\"76\":1,\"79\":1,\"91\":1,\"93\":1}}],[\"successfully\",{\"1\":{\"63\":3,\"84\":1}}],[\"such\",{\"1\":{\"27\":1,\"30\":1,\"40\":2,\"58\":1,\"92\":1}}],[\"subdependencies\",{\"1\":{\"81\":1}}],[\"subclass\",{\"1\":{\"70\":1,\"71\":1}}],[\"subclassing\",{\"1\":{\"51\":1}}],[\"subcommand\",{\"1\":{\"30\":1}}],[\"subcommands\",{\"1\":{\"30\":2,\"53\":1}}],[\"submodule\",{\"1\":{\"50\":2}}],[\"subscribes\",{\"1\":{\"46\":1}}],[\"support\",{\"1\":{\"28\":1,\"33\":1,\"60\":1,\"76\":1}}],[\"supports\",{\"1\":{\"28\":1,\"56\":1,\"58\":2,\"70\":1,\"85\":1}}],[\"supported\",{\"1\":{\"7\":1,\"8\":1}}],[\"super\",{\"1\":{\"25\":1,\"27\":4,\"31\":1}}],[\"suitable\",{\"1\":{\"10\":1,\"93\":1}}],[\"sure\",{\"1\":{\"3\":1,\"48\":1}}],[\"solve\",{\"1\":{\"35\":1,\"44\":1,\"72\":1}}],[\"solves\",{\"1\":{\"3\":1}}],[\"sooner\",{\"1\":{\"29\":1}}],[\"somewhere\",{\"1\":{\"40\":1,\"91\":1}}],[\"sometimes\",{\"1\":{\"32\":1,\"55\":1,\"72\":1,\"73\":1,\"74\":2,\"76\":1}}],[\"something\",{\"1\":{\"3\":1,\"32\":2,\"33\":2,\"36\":1,\"38\":1,\"43\":1,\"48\":2,\"81\":1,\"83\":2}}],[\"some\",{\"1\":{\"27\":1,\"31\":2,\"48\":1,\"49\":1,\"51\":1,\"52\":1,\"53\":1,\"66\":1,\"67\":1,\"70\":1,\"72\":2,\"73\":1,\"75\":1,\"76\":1}}],[\"source\",{\"0\":{\"33\":1},\"1\":{\"22\":1,\"23\":4,\"24\":2,\"33\":8,\"73\":1,\"74\":1,\"75\":1,\"76\":13}}],[\"sources=\",{\"1\":{\"23\":1,\"24\":1,\"72\":1,\"76\":1}}],[\"sources\",{\"0\":{\"22\":1,\"73\":1},\"1\":{\"7\":1,\"23\":1,\"24\":2,\"26\":1,\"33\":1,\"63\":1,\"72\":3,\"73\":4,\"76\":3}}],[\"so\",{\"1\":{\"18\":1,\"28\":1,\"31\":1,\"35\":1,\"36\":1,\"38\":1,\"40\":1,\"63\":1,\"72\":1,\"73\":1,\"93\":1}}],[\"searches\",{\"1\":{\"55\":1,\"62\":1}}],[\"search\",{\"1\":{\"53\":1,\"55\":1,\"62\":1,\"65\":1}}],[\"seen\",{\"1\":{\"44\":1}}],[\"see\",{\"1\":{\"36\":1,\"40\":1,\"45\":1,\"67\":1,\"76\":1,\"78\":1,\"82\":2,\"91\":1}}],[\"sequence\",{\"1\":{\"30\":2,\"45\":1}}],[\"sent\",{\"1\":{\"29\":1,\"33\":4,\"45\":1,\"47\":1,\"51\":3}}],[\"sends\",{\"1\":{\"72\":1}}],[\"sending\",{\"1\":{\"40\":1,\"72\":1}}],[\"send\",{\"1\":{\"1\":1,\"24\":1,\"27\":2,\"33\":2,\"36\":3,\"43\":1,\"44\":1,\"51\":4,\"59\":1,\"63\":3,\"66\":3,\"67\":2,\"70\":1,\"71\":2,\"91\":1}}],[\"seriazier\",{\"1\":{\"71\":1}}],[\"serialization\",{\"1\":{\"70\":1}}],[\"serializes\",{\"1\":{\"71\":1}}],[\"serializer\",{\"1\":{\"70\":5,\"71\":1}}],[\"serializers\",{\"0\":{\"70\":1},\"1\":{\"44\":1,\"70\":4}}],[\"serialize\",{\"1\":{\"70\":1}}],[\"serializing\",{\"1\":{\"27\":1}}],[\"server=server\",{\"1\":{\"39\":1}}],[\"server\",{\"1\":{\"18\":2,\"39\":4,\"43\":1}}],[\"self\",{\"1\":{\"27\":5,\"28\":2,\"30\":1,\"31\":2,\"32\":5,\"33\":7,\"51\":2}}],[\"second\",{\"1\":{\"38\":1,\"47\":3,\"63\":1}}],[\"seconds=10\",{\"1\":{\"76\":1}}],[\"seconds=5\",{\"1\":{\"76\":2}}],[\"seconds=2\",{\"1\":{\"63\":1}}],[\"seconds\",{\"1\":{\"19\":1,\"29\":1,\"60\":1,\"66\":2,\"67\":4,\"72\":1,\"75\":1}}],[\"section\",{\"1\":{\"7\":1,\"8\":1,\"23\":1,\"50\":1,\"61\":1,\"66\":1,\"67\":1,\"72\":1}}],[\"separate\",{\"1\":{\"12\":1,\"21\":1,\"66\":1}}],[\"several\",{\"1\":{\"3\":1,\"16\":1,\"29\":1,\"37\":1,\"76\":1}}],[\"sets\",{\"1\":{\"60\":1,\"93\":1}}],[\"setup\",{\"0\":{\"90\":1},\"1\":{\"36\":1}}],[\"settings\",{\"1\":{\"5\":1}}],[\"setting\",{\"0\":{\"4\":1},\"1\":{\"36\":1}}],[\"set\",{\"1\":{\"1\":1,\"27\":1,\"28\":2,\"32\":2,\"60\":2,\"62\":1,\"63\":1,\"66\":1,\"90\":2}}],[\"s\",{\"1\":{\"1\":2,\"10\":1,\"11\":1,\"29\":3,\"30\":1,\"31\":1,\"32\":3,\"33\":4,\"34\":1,\"35\":1,\"36\":4,\"37\":1,\"38\":4,\"39\":2,\"40\":3,\"41\":1,\"44\":1,\"45\":1,\"48\":1,\"50\":2,\"52\":2,\"55\":2,\"58\":1,\"59\":1,\"60\":1,\"62\":1,\"63\":2,\"66\":5,\"67\":4,\"72\":4,\"73\":2,\"74\":2,\"76\":7,\"78\":1,\"79\":2,\"80\":1,\"81\":1,\"82\":4,\"88\":1,\"91\":2,\"92\":3,\"93\":8}}],[\"tzinfo\",{\"1\":{\"76\":1}}],[\"t201\",{\"1\":{\"76\":1}}],[\"tp\",{\"1\":{\"55\":1,\"62\":1}}],[\"tkq\",{\"1\":{\"36\":1}}],[\"transaction\",{\"1\":{\"84\":1}}],[\"treated\",{\"1\":{\"81\":1}}],[\"try\",{\"1\":{\"34\":1,\"40\":1,\"45\":1,\"51\":1,\"63\":3,\"79\":1,\"93\":1}}],[\"true\",{\"1\":{\"11\":1,\"27\":1,\"32\":1,\"72\":1,\"91\":1}}],[\"till\",{\"1\":{\"63\":1}}],[\"tip\",{\"1\":{\"32\":1,\"45\":1,\"65\":1,\"72\":1,\"78\":1}}],[\"timeoutexception\",{\"1\":{\"68\":1}}],[\"timeouts\",{\"0\":{\"68\":1},\"1\":{\"68\":1}}],[\"timeout=2\",{\"1\":{\"66\":1,\"67\":2}}],[\"timeout\",{\"1\":{\"60\":2,\"68\":1}}],[\"timezones\",{\"0\":{\"74\":1}}],[\"timezone\",{\"1\":{\"24\":1,\"74\":2}}],[\"timedelta\",{\"1\":{\"24\":1,\"63\":1,\"72\":1,\"74\":1,\"76\":3}}],[\"times\",{\"1\":{\"10\":1,\"17\":1,\"55\":1,\"62\":1,\"72\":1,\"81\":1}}],[\"time\",{\"1\":{\"3\":2,\"19\":1,\"24\":5,\"47\":1,\"58\":1,\"60\":2,\"63\":3,\"66\":1,\"67\":3,\"68\":1,\"72\":1,\"73\":1,\"74\":3,\"76\":4,\"88\":1}}],[\"typos\",{\"1\":{\"80\":1}}],[\"typing\",{\"1\":{\"27\":1,\"30\":1,\"32\":1,\"33\":1,\"40\":1}}],[\"types\",{\"1\":{\"36\":2,\"38\":1,\"40\":2,\"56\":1,\"57\":1,\"66\":1,\"80\":1}}],[\"typevar\",{\"1\":{\"32\":2}}],[\"typer\",{\"1\":{\"30\":1}}],[\"type\",{\"0\":{\"57\":1},\"1\":{\"10\":1,\"24\":6,\"27\":1,\"32\":2,\"49\":1,\"56\":2,\"57\":3,\"60\":2,\"71\":1,\"80\":1,\"82\":1,\"85\":1}}],[\"tell\",{\"1\":{\"90\":1}}],[\"telegram\",{\"1\":{\"36\":1}}],[\"teardown\",{\"1\":{\"83\":1}}],[\"terms\",{\"1\":{\"74\":1}}],[\"terminal\",{\"1\":{\"50\":1,\"66\":1}}],[\"template\",{\"1\":{\"27\":1}}],[\"testclient\",{\"1\":{\"39\":2}}],[\"test=\",{\"1\":{\"30\":1}}],[\"testings\",{\"1\":{\"6\":1}}],[\"testing\",{\"0\":{\"6\":1,\"39\":1,\"41\":1,\"88\":1,\"92\":1},\"1\":{\"41\":3,\"90\":2,\"91\":1}}],[\"test\",{\"1\":{\"3\":1,\"6\":1,\"17\":1,\"30\":9,\"39\":4,\"41\":1,\"50\":5,\"92\":5,\"93\":6}}],[\"testserver\",{\"1\":{\"39\":2}}],[\"tests\",{\"0\":{\"91\":1},\"1\":{\"3\":1,\"6\":1,\"39\":2,\"41\":2,\"88\":2,\"90\":1,\"92\":1,\"93\":2}}],[\"two\",{\"1\":{\"27\":1,\"34\":1,\"38\":1,\"40\":2,\"43\":1,\"46\":1,\"50\":1,\"53\":1,\"55\":1,\"73\":1,\"86\":1}}],[\"takskiq\",{\"1\":{\"85\":1}}],[\"take\",{\"1\":{\"38\":2,\"50\":1,\"51\":1,\"70\":1,\"71\":1}}],[\"takes\",{\"1\":{\"3\":1,\"27\":1,\"28\":1,\"38\":1,\"40\":1}}],[\"tab\",{\"1\":{\"80\":1}}],[\"table\",{\"1\":{\"44\":1}}],[\"target\",{\"1\":{\"57\":1}}],[\"tasks\",{\"0\":{\"11\":1,\"66\":1,\"72\":1,\"92\":1},\"1\":{\"1\":1,\"9\":2,\"10\":1,\"11\":4,\"22\":1,\"24\":1,\"29\":1,\"31\":1,\"33\":3,\"35\":2,\"36\":2,\"38\":1,\"40\":2,\"41\":1,\"43\":1,\"44\":1,\"48\":1,\"50\":7,\"54\":1,\"55\":5,\"57\":1,\"58\":1,\"60\":8,\"61\":2,\"62\":4,\"63\":5,\"66\":2,\"67\":1,\"72\":3,\"73\":2,\"74\":1,\"75\":3,\"76\":3,\"80\":1,\"84\":1,\"88\":1,\"91\":1,\"92\":1,\"93\":2}}],[\"taskiqevents\",{\"1\":{\"80\":1}}],[\"taskiqdependency\",{\"1\":{\"82\":1}}],[\"taskiqdependencies\",{\"1\":{\"79\":1}}],[\"taskiqdepends\",{\"1\":{\"36\":2,\"40\":4,\"76\":1,\"81\":1}}],[\"taskiqstate\",{\"1\":{\"78\":1,\"80\":1,\"86\":2}}],[\"taskiqserializer\",{\"1\":{\"69\":1,\"70\":1}}],[\"taskiqscheduler\",{\"1\":{\"23\":2,\"24\":2,\"63\":2,\"72\":3,\"73\":1,\"76\":2}}],[\"taskiqformatter\",{\"1\":{\"69\":1,\"71\":1}}],[\"taskiqtask\",{\"1\":{\"66\":1}}],[\"taskiqmessage\",{\"1\":{\"51\":4}}],[\"taskiqmiddleware\",{\"1\":{\"31\":1,\"51\":3}}],[\"taskiqresult\",{\"1\":{\"32\":3,\"49\":1}}],[\"taskiqcmd\",{\"1\":{\"30\":3}}],[\"taskiq\",{\"0\":{\"1\":1,\"25\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"40\":1,\"43\":1,\"69\":1,\"88\":1},\"1\":{\"1\":1,\"2\":2,\"3\":1,\"4\":1,\"7\":1,\"10\":2,\"11\":1,\"12\":1,\"13\":2,\"14\":2,\"15\":2,\"16\":1,\"17\":1,\"18\":2,\"21\":3,\"23\":3,\"24\":2,\"25\":2,\"27\":2,\"28\":1,\"30\":6,\"31\":3,\"32\":3,\"33\":2,\"34\":2,\"35\":10,\"36\":16,\"38\":4,\"39\":3,\"40\":9,\"41\":3,\"43\":5,\"44\":2,\"45\":1,\"46\":2,\"47\":1,\"49\":2,\"50\":7,\"51\":4,\"53\":4,\"54\":1,\"55\":1,\"56\":2,\"57\":2,\"58\":3,\"59\":1,\"61\":2,\"63\":10,\"65\":4,\"66\":4,\"67\":15,\"69\":1,\"70\":4,\"71\":1,\"72\":7,\"73\":1,\"74\":1,\"75\":2,\"76\":2,\"78\":1,\"79\":1,\"84\":1,\"85\":1,\"86\":3,\"87\":2,\"88\":1,\"91\":2,\"92\":2,\"93\":5}}],[\"task\",{\"0\":{\"0\":1},\"1\":{\"1\":1,\"11\":4,\"17\":5,\"24\":9,\"29\":1,\"31\":1,\"32\":10,\"33\":10,\"36\":9,\"38\":1,\"40\":2,\"44\":2,\"46\":1,\"47\":12,\"48\":15,\"50\":1,\"51\":2,\"52\":4,\"55\":1,\"56\":3,\"57\":3,\"60\":1,\"62\":1,\"63\":51,\"66\":9,\"67\":15,\"68\":3,\"71\":1,\"72\":7,\"73\":2,\"74\":2,\"75\":1,\"76\":11,\"81\":1,\"82\":1,\"83\":3,\"92\":8,\"93\":6}}],[\"thrown\",{\"1\":{\"60\":1}}],[\"throw\",{\"1\":{\"57\":1}}],[\"throughout\",{\"1\":{\"63\":1}}],[\"through\",{\"1\":{\"52\":1}}],[\"three\",{\"1\":{\"36\":1,\"56\":1}}],[\"threads\",{\"1\":{\"60\":2}}],[\"threadpool\",{\"1\":{\"60\":1}}],[\"thread\",{\"1\":{\"9\":1}}],[\"than\",{\"1\":{\"35\":1,\"66\":1,\"70\":1,\"72\":1}}],[\"that\",{\"1\":{\"3\":1,\"6\":1,\"17\":2,\"18\":1,\"28\":1,\"30\":3,\"33\":3,\"34\":1,\"35\":2,\"36\":4,\"38\":2,\"39\":1,\"40\":4,\"41\":1,\"43\":1,\"44\":2,\"46\":1,\"47\":1,\"48\":1,\"50\":1,\"51\":1,\"52\":2,\"55\":1,\"57\":1,\"58\":1,\"59\":1,\"65\":1,\"66\":3,\"67\":4,\"71\":1,\"72\":3,\"73\":1,\"74\":3,\"75\":1,\"76\":5,\"79\":1,\"80\":1,\"84\":1,\"85\":1,\"90\":2,\"92\":2,\"93\":3}}],[\"think\",{\"1\":{\"93\":1}}],[\"things\",{\"1\":{\"34\":1,\"40\":1,\"46\":1,\"81\":1}}],[\"thing\",{\"1\":{\"6\":1,\"41\":1}}],[\"this\",{\"1\":{\"3\":1,\"4\":2,\"7\":1,\"8\":1,\"9\":2,\"10\":4,\"11\":4,\"17\":2,\"18\":1,\"19\":1,\"20\":2,\"21\":2,\"23\":2,\"24\":3,\"27\":1,\"29\":2,\"30\":2,\"32\":1,\"33\":9,\"35\":1,\"36\":10,\"37\":1,\"38\":8,\"39\":3,\"40\":5,\"41\":4,\"44\":1,\"45\":1,\"47\":3,\"48\":2,\"50\":2,\"51\":1,\"52\":3,\"54\":1,\"55\":2,\"56\":1,\"57\":2,\"58\":5,\"59\":1,\"60\":3,\"62\":3,\"63\":5,\"66\":4,\"67\":3,\"68\":1,\"69\":1,\"72\":3,\"73\":1,\"74\":1,\"75\":4,\"76\":3,\"78\":4,\"79\":1,\"80\":4,\"81\":7,\"82\":1,\"83\":3,\"84\":2,\"87\":1,\"88\":1,\"90\":1,\"91\":1,\"92\":1,\"93\":5}}],[\"therefore\",{\"1\":{\"80\":1}}],[\"there\",{\"1\":{\"40\":1}}],[\"their\",{\"1\":{\"40\":1,\"63\":1}}],[\"then\",{\"1\":{\"39\":1,\"75\":1}}],[\"they\",{\"1\":{\"18\":1,\"35\":1,\"51\":1,\"75\":2,\"82\":1}}],[\"theme\",{\"1\":{\"45\":2}}],[\"them\",{\"1\":{\"12\":1,\"27\":1,\"29\":2,\"37\":1,\"48\":1,\"63\":3,\"72\":1,\"73\":2,\"88\":1}}],[\"these\",{\"1\":{\"11\":1,\"12\":2,\"22\":1,\"25\":1,\"29\":1,\"35\":1,\"40\":1,\"74\":1,\"76\":2,\"78\":1}}],[\"the\",{\"1\":{\"1\":1,\"3\":2,\"4\":2,\"6\":1,\"7\":1,\"9\":2,\"10\":4,\"12\":1,\"17\":3,\"21\":1,\"24\":9,\"25\":1,\"27\":7,\"28\":2,\"29\":6,\"30\":6,\"31\":2,\"32\":2,\"33\":3,\"35\":3,\"36\":15,\"37\":4,\"38\":10,\"39\":3,\"40\":6,\"43\":4,\"44\":1,\"45\":4,\"46\":10,\"47\":3,\"49\":1,\"50\":5,\"51\":14,\"52\":6,\"54\":1,\"55\":1,\"56\":5,\"57\":5,\"58\":1,\"59\":1,\"60\":3,\"62\":2,\"63\":23,\"65\":4,\"66\":22,\"67\":25,\"68\":2,\"69\":2,\"70\":8,\"71\":5,\"72\":8,\"73\":4,\"74\":4,\"75\":8,\"76\":14,\"78\":9,\"79\":2,\"80\":9,\"81\":14,\"82\":4,\"83\":3,\"84\":1,\"87\":2,\"90\":1,\"91\":6,\"93\":4}}],[\"top\",{\"1\":{\"44\":1}}],[\"took\",{\"1\":{\"66\":2,\"67\":4}}],[\"too\",{\"1\":{\"40\":1,\"82\":1}}],[\"tools\",{\"1\":{\"59\":1}}],[\"tool\",{\"1\":{\"30\":1}}],[\"token\",{\"1\":{\"36\":1}}],[\"token=\",{\"1\":{\"36\":1}}],[\"total\",{\"1\":{\"10\":1,\"72\":1}}],[\"tox\",{\"1\":{\"6\":4}}],[\"together\",{\"1\":{\"3\":1,\"73\":1}}],[\"to\",{\"1\":{\"1\":1,\"3\":2,\"4\":2,\"5\":1,\"6\":5,\"9\":1,\"10\":2,\"11\":4,\"16\":1,\"17\":5,\"18\":2,\"19\":1,\"22\":1,\"23\":3,\"24\":8,\"25\":1,\"27\":6,\"28\":1,\"30\":7,\"31\":4,\"32\":7,\"33\":17,\"34\":4,\"35\":5,\"36\":13,\"37\":5,\"38\":6,\"39\":5,\"40\":9,\"41\":2,\"43\":7,\"44\":1,\"45\":2,\"46\":3,\"47\":5,\"48\":3,\"49\":1,\"50\":11,\"51\":3,\"52\":5,\"53\":2,\"54\":3,\"55\":1,\"57\":4,\"58\":5,\"59\":2,\"60\":8,\"61\":4,\"62\":3,\"63\":14,\"65\":1,\"66\":11,\"67\":11,\"68\":4,\"69\":1,\"70\":6,\"71\":6,\"72\":9,\"73\":8,\"74\":4,\"75\":2,\"76\":14,\"78\":4,\"79\":2,\"80\":1,\"81\":5,\"83\":3,\"84\":6,\"85\":1,\"87\":4,\"88\":3,\"90\":3,\"91\":3,\"92\":2,\"93\":8}}],[\"t\",{\"1\":{\"1\":2,\"20\":2,\"24\":1,\"28\":1,\"29\":1,\"38\":1,\"39\":1,\"41\":1,\"43\":1,\"44\":1,\"47\":1,\"49\":1,\"51\":1,\"57\":1,\"58\":1,\"59\":1,\"60\":1,\"63\":2,\"66\":2,\"67\":1,\"69\":1,\"72\":1,\"76\":1,\"79\":1,\"80\":2,\"81\":2,\"82\":1,\"84\":1,\"90\":1,\"91\":1,\"93\":1}}],[\"cwd\",{\"1\":{\"93\":2}}],[\"cbor\",{\"1\":{\"70\":1}}],[\"cborserializer\",{\"1\":{\"70\":1}}],[\"cmd\",{\"1\":{\"30\":2}}],[\"child\",{\"1\":{\"60\":1}}],[\"changing\",{\"1\":{\"51\":1}}],[\"changed\",{\"1\":{\"69\":1}}],[\"change\",{\"1\":{\"47\":2,\"50\":1,\"67\":1}}],[\"channel\",{\"1\":{\"28\":1,\"46\":1}}],[\"chat\",{\"1\":{\"36\":3}}],[\"check\",{\"1\":{\"32\":2,\"36\":1,\"66\":1,\"72\":1,\"74\":1,\"75\":1}}],[\"choose\",{\"1\":{\"10\":1}}],[\"creation\",{\"1\":{\"63\":2}}],[\"creating\",{\"1\":{\"39\":1,\"43\":1,\"69\":1}}],[\"creates\",{\"1\":{\"39\":1,\"46\":1}}],[\"createdschedule\",{\"1\":{\"76\":1}}],[\"created\",{\"1\":{\"30\":1,\"37\":2,\"38\":1,\"40\":1,\"44\":1,\"63\":2}}],[\"create\",{\"1\":{\"3\":2,\"11\":1,\"32\":1,\"33\":1,\"36\":1,\"37\":1,\"39\":1,\"63\":6,\"66\":1,\"80\":1,\"85\":1}}],[\"critical\",{\"1\":{\"32\":1,\"46\":1}}],[\"cron=\",{\"1\":{\"33\":1}}],[\"crontab\",{\"1\":{\"24\":1}}],[\"cron\",{\"1\":{\"24\":7,\"63\":1,\"72\":1,\"74\":3,\"76\":3}}],[\"custom\",{\"0\":{\"12\":1},\"1\":{\"39\":1,\"41\":2,\"44\":1,\"48\":1,\"60\":2,\"62\":1,\"73\":1,\"93\":2}}],[\"currently\",{\"1\":{\"22\":1,\"73\":1,\"76\":1,\"90\":1}}],[\"current\",{\"1\":{\"9\":1,\"22\":1,\"31\":1,\"32\":1,\"36\":1,\"37\":1,\"38\":3,\"39\":1,\"50\":1,\"52\":1,\"55\":2,\"60\":1,\"62\":1,\"63\":3,\"80\":1}}],[\"came\",{\"1\":{\"93\":1}}],[\"cached\",{\"1\":{\"81\":2}}],[\"cache\",{\"1\":{\"81\":1}}],[\"cache=false\",{\"1\":{\"81\":1}}],[\"case\",{\"1\":{\"75\":1,\"76\":1,\"84\":1}}],[\"cases\",{\"1\":{\"20\":1,\"43\":1,\"51\":1}}],[\"cast\",{\"1\":{\"57\":2}}],[\"casts\",{\"0\":{\"57\":1},\"1\":{\"57\":1}}],[\"caught\",{\"1\":{\"51\":1}}],[\"calculate\",{\"1\":{\"43\":1}}],[\"calling\",{\"1\":{\"52\":1,\"66\":1,\"68\":1,\"76\":1,\"93\":1}}],[\"called\",{\"1\":{\"40\":1,\"53\":1,\"74\":1,\"78\":2,\"87\":1,\"93\":2}}],[\"calls\",{\"1\":{\"36\":2}}],[\"call\",{\"1\":{\"27\":1,\"31\":1,\"36\":2,\"38\":1,\"39\":1,\"40\":2,\"46\":1,\"47\":1,\"57\":1,\"66\":5,\"67\":1,\"72\":1,\"76\":1,\"78\":1,\"92\":2}}],[\"capable\",{\"1\":{\"23\":1}}],[\"careful\",{\"1\":{\"10\":1,\"20\":1,\"72\":2}}],[\"cancelled\",{\"1\":{\"63\":2}}],[\"cancellederror\",{\"1\":{\"63\":3}}],[\"cancel\",{\"1\":{\"63\":3}}],[\"cancels\",{\"1\":{\"33\":1}}],[\"cancelation\",{\"1\":{\"33\":1}}],[\"cannot\",{\"1\":{\"11\":1,\"20\":1,\"40\":1,\"45\":1,\"49\":1,\"60\":1,\"66\":1,\"80\":2,\"81\":1}}],[\"can\",{\"1\":{\"2\":1,\"4\":1,\"5\":1,\"6\":3,\"7\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":2,\"17\":1,\"18\":3,\"21\":2,\"24\":4,\"25\":2,\"27\":3,\"28\":2,\"30\":4,\"31\":2,\"32\":1,\"33\":1,\"35\":4,\"36\":4,\"37\":1,\"38\":5,\"40\":2,\"43\":3,\"44\":1,\"47\":1,\"48\":3,\"49\":1,\"50\":4,\"51\":6,\"52\":2,\"53\":1,\"55\":1,\"56\":1,\"63\":4,\"65\":2,\"66\":4,\"67\":5,\"68\":1,\"69\":2,\"70\":1,\"71\":3,\"72\":3,\"73\":3,\"74\":2,\"75\":1,\"76\":7,\"78\":6,\"79\":2,\"80\":4,\"81\":2,\"82\":5,\"83\":1,\"84\":2,\"85\":1,\"87\":2,\"90\":3,\"91\":1,\"92\":1,\"93\":4}}],[\"clear\",{\"1\":{\"93\":1}}],[\"close\",{\"1\":{\"39\":1}}],[\"closure\",{\"1\":{\"28\":1}}],[\"closing\",{\"1\":{\"27\":1}}],[\"cloned\",{\"1\":{\"4\":1}}],[\"class\",{\"0\":{\"82\":1},\"1\":{\"27\":4,\"30\":5,\"31\":1,\"32\":2,\"33\":2,\"46\":2,\"47\":1,\"51\":1,\"52\":1,\"60\":1,\"69\":2,\"70\":1,\"71\":1,\"74\":1,\"76\":1,\"82\":1,\"85\":2}}],[\"classes\",{\"1\":{\"25\":3,\"40\":1,\"79\":1,\"82\":3}}],[\"clien\",{\"1\":{\"36\":1}}],[\"client\",{\"1\":{\"10\":1,\"18\":1,\"39\":9,\"45\":1,\"51\":1,\"78\":3}}],[\"click\",{\"1\":{\"30\":1}}],[\"cli\",{\"0\":{\"30\":1,\"53\":1},\"1\":{\"24\":1,\"26\":1,\"30\":2,\"43\":1,\"50\":2,\"53\":1,\"58\":1,\"66\":1,\"67\":3}}],[\"covered\",{\"1\":{\"74\":1}}],[\"coroutine\",{\"1\":{\"63\":1}}],[\"correct\",{\"1\":{\"38\":1,\"49\":1,\"67\":2,\"71\":1,\"88\":1,\"90\":1}}],[\"correctly\",{\"1\":{\"24\":1,\"48\":1}}],[\"core\",{\"1\":{\"12\":1,\"21\":1,\"25\":1,\"43\":1,\"53\":1,\"65\":1}}],[\"cool\",{\"1\":{\"24\":1,\"27\":1,\"32\":1,\"40\":2,\"45\":1,\"50\":1,\"65\":1,\"66\":1,\"68\":1,\"72\":1,\"76\":1,\"78\":1}}],[\"couldn\",{\"1\":{\"44\":1}}],[\"course\",{\"1\":{\"18\":1,\"72\":1,\"80\":1}}],[\"count=3\",{\"1\":{\"17\":1}}],[\"code\",{\"1\":{\"16\":1,\"31\":1,\"59\":1,\"63\":1,\"66\":2,\"67\":2,\"78\":2,\"79\":1,\"80\":1,\"81\":1,\"93\":1}}],[\"component\",{\"1\":{\"45\":1}}],[\"components\",{\"0\":{\"7\":1}}],[\"comparison\",{\"1\":{\"44\":1}}],[\"compatible\",{\"1\":{\"27\":1}}],[\"completion\",{\"1\":{\"79\":1,\"80\":3}}],[\"completed\",{\"1\":{\"36\":1,\"83\":1,\"84\":1}}],[\"complete\",{\"1\":{\"36\":1,\"38\":1,\"51\":1,\"67\":2}}],[\"completely\",{\"1\":{\"33\":1}}],[\"complex\",{\"1\":{\"35\":1,\"63\":1,\"73\":1}}],[\"comes\",{\"1\":{\"25\":1,\"53\":1}}],[\"common\",{\"1\":{\"81\":3}}],[\"communication\",{\"1\":{\"35\":1,\"43\":1}}],[\"communicate\",{\"1\":{\"10\":1,\"35\":1}}],[\"commit\",{\"1\":{\"5\":3,\"84\":1}}],[\"commands\",{\"1\":{\"53\":2}}],[\"command\",{\"1\":{\"4\":2,\"5\":1,\"6\":2,\"30\":1,\"36\":3,\"46\":1,\"50\":1,\"63\":2,\"67\":2,\"72\":2,\"75\":1,\"84\":1}}],[\"convert\",{\"1\":{\"83\":1}}],[\"conventions\",{\"0\":{\"29\":1},\"1\":{\"29\":1}}],[\"convinient\",{\"1\":{\"74\":1,\"75\":1}}],[\"conftest\",{\"1\":{\"91\":1}}],[\"conflicts\",{\"1\":{\"73\":1}}],[\"configuration\",{\"1\":{\"60\":1}}],[\"configures\",{\"1\":{\"62\":1}}],[\"configure\",{\"1\":{\"60\":1,\"62\":1}}],[\"configured\",{\"1\":{\"5\":1,\"18\":1,\"56\":1}}],[\"constructor\",{\"1\":{\"82\":1}}],[\"constraint\",{\"1\":{\"68\":1}}],[\"consumers\",{\"1\":{\"35\":1}}],[\"considers\",{\"1\":{\"24\":1}}],[\"consider\",{\"1\":{\"1\":1,\"44\":1}}],[\"connectionpool\",{\"1\":{\"80\":1}}],[\"connections\",{\"1\":{\"27\":1}}],[\"connection\",{\"1\":{\"27\":1,\"40\":1,\"78\":1,\"80\":2,\"91\":1}}],[\"continue\",{\"1\":{\"67\":1}}],[\"control\",{\"1\":{\"52\":1,\"81\":1}}],[\"contributors\",{\"1\":{\"3\":2}}],[\"contributions\",{\"1\":{\"3\":1}}],[\"contribution\",{\"0\":{\"3\":1}}],[\"contexts\",{\"1\":{\"52\":1}}],[\"context\",{\"0\":{\"52\":1},\"1\":{\"37\":1,\"39\":6,\"41\":4,\"52\":4,\"76\":3,\"78\":1,\"79\":1,\"80\":2,\"86\":3,\"87\":1,\"93\":5}}],[\"contents\",{\"0\":{\"26\":1}}],[\"ci\",{\"1\":{\"3\":2}}],[\"celery\",{\"1\":{\"1\":1,\"35\":1,\"44\":1,\"71\":1}}],[\"avoid\",{\"1\":{\"75\":1}}],[\"available\",{\"0\":{\"7\":1,\"8\":1,\"16\":1,\"19\":1,\"22\":1,\"59\":1},\"1\":{\"7\":4,\"18\":1,\"32\":1,\"37\":1,\"66\":1,\"72\":2,\"76\":2,\"87\":1}}],[\"ago\",{\"1\":{\"75\":1}}],[\"again\",{\"1\":{\"67\":1}}],[\"against\",{\"1\":{\"4\":1,\"6\":1}}],[\"amqp\",{\"1\":{\"67\":4,\"72\":2}}],[\"amount\",{\"1\":{\"60\":2,\"68\":1,\"80\":1}}],[\"api\",{\"1\":{\"63\":2}}],[\"app=app\",{\"1\":{\"39\":1}}],[\"append\",{\"1\":{\"37\":1}}],[\"application\",{\"1\":{\"37\":2,\"38\":8,\"39\":4,\"40\":2,\"41\":2,\"62\":1,\"63\":1,\"87\":1}}],[\"applications\",{\"1\":{\"37\":1}}],[\"app\",{\"1\":{\"35\":1,\"37\":4,\"38\":1,\"39\":3,\"40\":7,\"41\":4,\"93\":1}}],[\"approved\",{\"1\":{\"3\":1}}],[\"autocompleted\",{\"1\":{\"80\":2}}],[\"autocompletion\",{\"1\":{\"80\":1}}],[\"autocompetion\",{\"1\":{\"79\":1}}],[\"automatic\",{\"1\":{\"57\":1}}],[\"automatically\",{\"1\":{\"41\":1,\"50\":2,\"93\":1}}],[\"auto\",{\"0\":{\"55\":1},\"1\":{\"55\":1,\"80\":3}}],[\"autouse\",{\"1\":{\"41\":1,\"93\":1}}],[\"autouse=true\",{\"1\":{\"41\":1,\"93\":1}}],[\"adopt\",{\"1\":{\"43\":1}}],[\"advice\",{\"1\":{\"41\":1}}],[\"adaptive\",{\"1\":{\"34\":1}}],[\"adds\",{\"1\":{\"36\":1,\"38\":1,\"73\":2}}],[\"added\",{\"1\":{\"33\":1,\"73\":1,\"91\":1,\"93\":1}}],[\"addition\",{\"1\":{\"76\":1}}],[\"additional\",{\"1\":{\"24\":1,\"47\":1,\"52\":1,\"74\":1,\"76\":1}}],[\"adding\",{\"0\":{\"38\":1,\"87\":1},\"1\":{\"18\":1,\"23\":1,\"51\":1,\"78\":1}}],[\"addr=\",{\"1\":{\"18\":1}}],[\"add\",{\"1\":{\"3\":1,\"11\":1,\"17\":2,\"24\":1,\"27\":1,\"30\":4,\"33\":1,\"34\":2,\"36\":1,\"37\":2,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"47\":1,\"48\":2,\"50\":1,\"53\":1,\"63\":1,\"66\":4,\"67\":6,\"68\":1,\"72\":1,\"76\":3,\"78\":2,\"80\":1,\"84\":1,\"87\":4,\"92\":3,\"93\":3}}],[\"aaa\",{\"1\":{\"30\":2}}],[\"aaaaa\",{\"1\":{\"17\":1}}],[\"await\",{\"1\":{\"27\":2,\"36\":6,\"39\":2,\"40\":2,\"47\":3,\"48\":5,\"51\":1,\"63\":14,\"66\":4,\"67\":9,\"72\":2,\"76\":7,\"92\":4,\"93\":3}}],[\"achieve\",{\"1\":{\"88\":1}}],[\"achieved\",{\"1\":{\"78\":1}}],[\"according\",{\"1\":{\"72\":1}}],[\"access\",{\"1\":{\"36\":1,\"78\":1,\"80\":1}}],[\"action\",{\"1\":{\"59\":1}}],[\"actions\",{\"1\":{\"33\":2,\"36\":1,\"51\":1}}],[\"actively\",{\"1\":{\"44\":1}}],[\"actually\",{\"1\":{\"91\":1}}],[\"actual\",{\"1\":{\"20\":1,\"90\":1,\"91\":1}}],[\"acknowledge\",{\"1\":{\"60\":1}}],[\"acknowledged\",{\"1\":{\"56\":3}}],[\"acknowledgements\",{\"0\":{\"56\":1},\"1\":{\"56\":1,\"60\":1}}],[\"acknowledgement\",{\"0\":{\"28\":1},\"1\":{\"60\":1}}],[\"ack=message\",{\"1\":{\"28\":1}}],[\"ack\",{\"1\":{\"28\":2,\"56\":2,\"60\":1}}],[\"acking\",{\"1\":{\"28\":1}}],[\"ackablemessage\",{\"1\":{\"27\":2,\"28\":3}}],[\"atomic\",{\"1\":{\"84\":1}}],[\"attempts\",{\"1\":{\"51\":1}}],[\"at\",{\"1\":{\"18\":1,\"30\":1,\"38\":1,\"50\":1,\"66\":1,\"67\":2,\"70\":1,\"71\":1,\"72\":2,\"78\":2,\"83\":2}}],[\"aiopika\",{\"1\":{\"67\":1}}],[\"aiopikabroker\",{\"0\":{\"13\":1},\"1\":{\"67\":7,\"72\":4}}],[\"aiotasks\",{\"1\":{\"44\":1}}],[\"aiohttp\",{\"0\":{\"37\":1},\"1\":{\"37\":8,\"38\":8,\"39\":4}}],[\"aiogram\",{\"0\":{\"36\":1},\"1\":{\"36\":14}}],[\"aio\",{\"1\":{\"13\":2,\"65\":1,\"67\":6,\"72\":2}}],[\"article\",{\"1\":{\"63\":1}}],[\"articles\",{\"1\":{\"41\":1}}],[\"arq\",{\"1\":{\"44\":1}}],[\"arg2=\",{\"1\":{\"76\":4}}],[\"arg2\",{\"1\":{\"76\":6}}],[\"arg1\",{\"1\":{\"76\":2}}],[\"arg\",{\"1\":{\"60\":1}}],[\"argument\",{\"1\":{\"30\":1,\"38\":1,\"62\":1}}],[\"argumentparser\",{\"1\":{\"30\":2}}],[\"arguments\",{\"1\":{\"24\":1,\"30\":3,\"38\":1,\"47\":1,\"93\":2}}],[\"argparse\",{\"1\":{\"30\":1}}],[\"args=\",{\"1\":{\"33\":1}}],[\"args\",{\"1\":{\"24\":3,\"30\":4,\"36\":2,\"60\":1,\"63\":1,\"72\":1,\"76\":1}}],[\"architecture\",{\"0\":{\"45\":1},\"1\":{\"10\":1,\"66\":1}}],[\"are\",{\"0\":{\"80\":1},\"1\":{\"9\":1,\"10\":1,\"12\":1,\"19\":1,\"22\":1,\"27\":1,\"29\":2,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"40\":1,\"45\":2,\"46\":1,\"48\":1,\"51\":3,\"60\":1,\"67\":1,\"78\":2,\"81\":2,\"83\":1,\"91\":1}}],[\"ability\",{\"1\":{\"44\":1,\"52\":1,\"87\":1}}],[\"abilities\",{\"1\":{\"12\":1,\"21\":1}}],[\"abc\",{\"1\":{\"25\":1,\"27\":1,\"30\":2,\"31\":1,\"32\":2,\"33\":1,\"46\":1,\"49\":1,\"51\":2}}],[\"abstractions\",{\"1\":{\"43\":1}}],[\"abstract\",{\"1\":{\"25\":3,\"27\":1,\"30\":1,\"31\":1,\"33\":1,\"46\":1}}],[\"abort\",{\"1\":{\"44\":1}}],[\"about\",{\"1\":{\"12\":1,\"21\":1,\"30\":1,\"32\":1,\"35\":1,\"37\":1,\"41\":1,\"50\":1,\"63\":1,\"66\":2,\"67\":2}}],[\"above\",{\"1\":{\"6\":1,\"80\":1}}],[\"able\",{\"1\":{\"1\":1,\"33\":3,\"38\":2,\"52\":1,\"63\":1,\"85\":1}}],[\"after\",{\"1\":{\"4\":2,\"17\":1,\"18\":1,\"30\":1,\"31\":1,\"33\":1,\"36\":1,\"37\":1,\"38\":1,\"41\":1,\"51\":6,\"56\":1,\"62\":1,\"63\":2,\"65\":1,\"67\":3,\"80\":1,\"83\":2,\"91\":1,\"93\":1}}],[\"alert\",{\"1\":{\"68\":1}}],[\"although\",{\"1\":{\"35\":1}}],[\"alter\",{\"1\":{\"27\":1}}],[\"always\",{\"1\":{\"20\":1,\"31\":1,\"72\":1}}],[\"along\",{\"1\":{\"11\":1,\"27\":1,\"35\":1}}],[\"allows\",{\"1\":{\"17\":1,\"35\":2,\"36\":1,\"38\":1,\"57\":1,\"63\":1,\"88\":1}}],[\"allow\",{\"1\":{\"16\":1}}],[\"all\",{\"1\":{\"3\":1,\"4\":2,\"5\":2,\"9\":1,\"10\":2,\"11\":1,\"24\":2,\"25\":1,\"30\":2,\"36\":1,\"37\":1,\"38\":2,\"45\":2,\"50\":2,\"51\":1,\"55\":2,\"59\":1,\"60\":1,\"62\":1,\"63\":1,\"67\":2,\"73\":2,\"75\":1,\"81\":1,\"93\":3}}],[\"also\",{\"1\":{\"1\":1,\"6\":1,\"11\":1,\"30\":2,\"31\":1,\"38\":1,\"39\":1,\"40\":1,\"48\":2,\"52\":2,\"58\":1,\"63\":2,\"66\":2,\"67\":1,\"70\":3,\"76\":1,\"81\":2,\"82\":1}}],[\"almost\",{\"1\":{\"1\":1,\"35\":1}}],[\"annotations\",{\"1\":{\"85\":1}}],[\"annotate\",{\"1\":{\"40\":1}}],[\"annotated\",{\"1\":{\"40\":1,\"80\":1}}],[\"annoying\",{\"1\":{\"58\":1}}],[\"another\",{\"1\":{\"41\":1,\"43\":1,\"85\":1,\"90\":1}}],[\"anywhere\",{\"1\":{\"92\":1}}],[\"anyio\",{\"1\":{\"91\":2,\"92\":2,\"93\":2}}],[\"anything\",{\"1\":{\"20\":1,\"49\":1,\"51\":1,\"76\":1}}],[\"any\",{\"1\":{\"1\":1,\"6\":1,\"20\":1,\"24\":3,\"38\":2,\"40\":2,\"44\":1,\"57\":1,\"66\":1,\"67\":1,\"69\":2,\"71\":1,\"80\":2,\"84\":1}}],[\"and\",{\"0\":{\"11\":1,\"77\":1},\"1\":{\"1\":2,\"3\":1,\"6\":1,\"10\":1,\"12\":1,\"20\":1,\"21\":1,\"24\":1,\"27\":2,\"29\":1,\"30\":1,\"32\":1,\"33\":1,\"34\":4,\"35\":4,\"36\":1,\"37\":2,\"38\":3,\"39\":1,\"40\":6,\"43\":3,\"44\":2,\"45\":3,\"46\":2,\"47\":2,\"48\":1,\"49\":3,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"57\":1,\"63\":5,\"65\":1,\"66\":4,\"67\":2,\"70\":3,\"71\":3,\"72\":2,\"73\":1,\"75\":2,\"76\":3,\"79\":1,\"80\":2,\"81\":2,\"82\":1,\"83\":2,\"84\":1,\"85\":1,\"87\":1,\"91\":2,\"92\":6,\"93\":1}}],[\"an\",{\"1\":{\"1\":1,\"3\":1,\"36\":1,\"38\":2,\"40\":1,\"46\":1,\"47\":1,\"50\":1,\"55\":1,\"63\":1,\"66\":2,\"67\":1,\"71\":1,\"74\":4,\"76\":3,\"78\":1,\"82\":1,\"83\":1,\"87\":1,\"90\":2,\"91\":3}}],[\"aside\",{\"1\":{\"73\":1}}],[\"assert\",{\"1\":{\"92\":2,\"93\":2}}],[\"assemble\",{\"1\":{\"73\":1}}],[\"assume\",{\"1\":{\"50\":1,\"80\":1}}],[\"assumes\",{\"1\":{\"6\":1,\"74\":1}}],[\"assign\",{\"1\":{\"48\":1,\"63\":1}}],[\"assigned\",{\"1\":{\"47\":1,\"76\":1}}],[\"asynchronous\",{\"1\":{\"83\":1}}],[\"asynchronously\",{\"1\":{\"83\":1}}],[\"asyncresultbackend\",{\"1\":{\"32\":3,\"49\":1}}],[\"asyncgenerator\",{\"1\":{\"27\":2,\"28\":1,\"39\":1}}],[\"asyncbroker\",{\"1\":{\"27\":3,\"46\":2,\"87\":1,\"91\":2}}],[\"async\",{\"0\":{\"11\":1,\"91\":1},\"1\":{\"11\":2,\"17\":1,\"24\":1,\"27\":4,\"28\":1,\"31\":1,\"32\":5,\"33\":7,\"35\":1,\"36\":5,\"38\":1,\"39\":1,\"40\":3,\"44\":1,\"47\":4,\"48\":10,\"51\":4,\"57\":1,\"60\":2,\"63\":3,\"66\":2,\"67\":4,\"72\":2,\"76\":2,\"80\":1,\"91\":2,\"92\":5,\"93\":3}}],[\"asyncio\",{\"0\":{\"0\":1},\"1\":{\"1\":1,\"36\":4,\"39\":1,\"44\":1,\"47\":3,\"48\":3,\"51\":2,\"63\":14,\"66\":2,\"67\":4,\"72\":1,\"91\":1}}],[\"ask\",{\"1\":{\"3\":1}}],[\"as\",{\"0\":{\"82\":1},\"1\":{\"1\":1,\"5\":1,\"12\":1,\"18\":1,\"21\":1,\"23\":1,\"24\":1,\"27\":3,\"29\":1,\"30\":1,\"31\":1,\"35\":2,\"38\":2,\"39\":3,\"40\":7,\"41\":1,\"50\":1,\"52\":1,\"57\":3,\"61\":1,\"63\":5,\"65\":2,\"67\":1,\"71\":2,\"72\":1,\"76\":1,\"78\":1,\"79\":1,\"80\":1,\"81\":1,\"82\":2,\"88\":1,\"91\":2,\"92\":2,\"93\":1}}],[\"a\",{\"0\":{\"1\":1,\"82\":1},\"1\":{\"1\":3,\"3\":2,\"5\":2,\"6\":1,\"7\":1,\"9\":1,\"11\":2,\"12\":1,\"17\":3,\"21\":1,\"23\":1,\"24\":1,\"27\":10,\"28\":4,\"30\":1,\"31\":2,\"32\":9,\"33\":6,\"35\":5,\"36\":3,\"37\":2,\"38\":5,\"39\":5,\"40\":7,\"41\":4,\"43\":2,\"44\":4,\"46\":2,\"47\":5,\"50\":5,\"51\":2,\"52\":4,\"55\":1,\"57\":1,\"60\":2,\"62\":2,\"63\":20,\"66\":6,\"67\":2,\"68\":2,\"70\":2,\"71\":7,\"72\":5,\"73\":2,\"74\":2,\"75\":2,\"76\":2,\"78\":3,\"80\":2,\"81\":2,\"84\":1,\"85\":1,\"87\":1,\"91\":1,\"92\":3,\"93\":4}}],[\"illustration\",{\"1\":{\"63\":1,\"93\":1}}],[\"imemory\",{\"1\":{\"91\":1}}],[\"immediately\",{\"1\":{\"62\":1}}],[\"imagine\",{\"1\":{\"41\":1,\"72\":1}}],[\"implements\",{\"1\":{\"29\":1,\"30\":1}}],[\"implement\",{\"1\":{\"25\":1,\"27\":1,\"29\":1,\"31\":1,\"32\":1,\"33\":6,\"43\":1,\"46\":2,\"49\":1,\"51\":1,\"63\":2,\"70\":1,\"71\":1,\"72\":2}}],[\"implementations\",{\"1\":{\"70\":2}}],[\"implementation\",{\"1\":{\"1\":1,\"69\":1,\"70\":1,\"71\":1,\"79\":1}}],[\"importing\",{\"0\":{\"55\":1}}],[\"important\",{\"1\":{\"32\":1,\"39\":1,\"40\":1,\"41\":1,\"51\":1,\"66\":1}}],[\"import\",{\"1\":{\"11\":1,\"17\":1,\"18\":1,\"23\":2,\"24\":3,\"27\":2,\"30\":3,\"32\":3,\"33\":2,\"35\":3,\"36\":11,\"37\":2,\"38\":1,\"39\":1,\"40\":6,\"41\":1,\"47\":2,\"50\":2,\"51\":3,\"55\":1,\"61\":1,\"62\":1,\"63\":11,\"66\":3,\"67\":7,\"72\":5,\"76\":2,\"91\":2,\"92\":5,\"93\":6}}],[\"imported\",{\"1\":{\"11\":1}}],[\"i\",{\"1\":{\"36\":1,\"66\":1,\"67\":1,\"93\":1}}],[\"ide\",{\"1\":{\"80\":1}}],[\"idea\",{\"1\":{\"43\":1}}],[\"id\",{\"1\":{\"32\":10,\"33\":2,\"36\":3,\"47\":1,\"76\":8}}],[\"ignored\",{\"1\":{\"58\":1}}],[\"ignore\",{\"1\":{\"27\":1,\"30\":1,\"32\":2}}],[\"if\",{\"1\":{\"3\":1,\"4\":1,\"6\":2,\"10\":2,\"17\":1,\"18\":1,\"24\":1,\"27\":2,\"28\":2,\"29\":4,\"31\":1,\"32\":2,\"33\":1,\"35\":1,\"36\":5,\"39\":1,\"40\":4,\"41\":1,\"43\":1,\"44\":1,\"45\":1,\"50\":4,\"51\":2,\"57\":2,\"58\":1,\"60\":2,\"62\":1,\"63\":3,\"66\":5,\"67\":5,\"68\":1,\"70\":1,\"71\":1,\"72\":3,\"73\":2,\"74\":2,\"75\":3,\"76\":2,\"78\":1,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":4,\"87\":1,\"88\":1,\"90\":1,\"91\":3,\"92\":2,\"93\":2}}],[\"itself\",{\"1\":{\"93\":1}}],[\"its\",{\"1\":{\"4\":1,\"35\":1,\"38\":1,\"40\":1,\"51\":1}}],[\"it\",{\"1\":{\"1\":5,\"3\":1,\"4\":2,\"5\":1,\"6\":3,\"9\":2,\"10\":2,\"11\":2,\"17\":1,\"20\":1,\"21\":1,\"23\":1,\"24\":3,\"27\":2,\"28\":1,\"29\":2,\"30\":1,\"31\":1,\"32\":3,\"33\":4,\"35\":3,\"36\":3,\"37\":2,\"38\":4,\"39\":1,\"40\":5,\"41\":4,\"43\":2,\"45\":1,\"46\":2,\"47\":2,\"48\":2,\"49\":2,\"50\":2,\"51\":2,\"52\":3,\"55\":2,\"56\":2,\"57\":1,\"58\":1,\"59\":1,\"61\":1,\"62\":2,\"63\":7,\"65\":1,\"66\":7,\"67\":1,\"68\":1,\"70\":3,\"71\":3,\"72\":4,\"73\":3,\"74\":2,\"75\":3,\"76\":4,\"79\":1,\"81\":1,\"82\":3,\"84\":1,\"91\":2,\"92\":5,\"93\":8}}],[\"indicates\",{\"1\":{\"90\":1}}],[\"input\",{\"1\":{\"57\":1}}],[\"inside\",{\"1\":{\"52\":1,\"63\":1}}],[\"instead\",{\"1\":{\"44\":1,\"63\":1,\"67\":1,\"76\":1}}],[\"instances\",{\"1\":{\"63\":1,\"72\":1}}],[\"instance\",{\"1\":{\"36\":3,\"47\":1,\"52\":1,\"72\":1,\"74\":1,\"76\":2}}],[\"installed\",{\"1\":{\"6\":1,\"50\":1}}],[\"install\",{\"1\":{\"2\":2,\"4\":7,\"5\":2,\"10\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"18\":2,\"21\":2,\"23\":1,\"35\":2,\"36\":2,\"37\":2,\"38\":2,\"50\":1,\"58\":1,\"65\":1,\"67\":3,\"70\":2,\"91\":1}}],[\"installation\",{\"0\":{\"2\":1,\"65\":1},\"1\":{\"5\":1,\"36\":1,\"37\":1,\"38\":1,\"65\":1,\"67\":2}}],[\"instructions\",{\"1\":{\"4\":1}}],[\"infinite\",{\"1\":{\"36\":1,\"46\":1}}],[\"info\",{\"1\":{\"32\":1,\"36\":3,\"50\":2,\"60\":1,\"62\":1,\"67\":1}}],[\"information\",{\"1\":{\"23\":1,\"27\":1,\"32\":2,\"51\":1,\"63\":1,\"66\":2,\"67\":1,\"74\":1}}],[\"injected\",{\"1\":{\"40\":2}}],[\"injection\",{\"0\":{\"93\":1},\"1\":{\"37\":2,\"39\":1,\"40\":2,\"44\":1,\"80\":1}}],[\"inject\",{\"1\":{\"31\":1}}],[\"incoming\",{\"1\":{\"30\":1,\"57\":1}}],[\"includes\",{\"1\":{\"19\":1}}],[\"into\",{\"1\":{\"88\":1}}],[\"introduce\",{\"1\":{\"72\":1}}],[\"introduction\",{\"0\":{\"42\":1}}],[\"integrate\",{\"1\":{\"79\":1}}],[\"integration\",{\"0\":{\"38\":1},\"1\":{\"35\":1,\"36\":5,\"38\":1,\"40\":1}}],[\"integrations\",{\"0\":{\"34\":1},\"1\":{\"34\":2}}],[\"intensive\",{\"1\":{\"36\":1}}],[\"interpreted\",{\"1\":{\"90\":1}}],[\"internals\",{\"1\":{\"67\":1}}],[\"internal\",{\"1\":{\"66\":1}}],[\"interservice\",{\"1\":{\"43\":1}}],[\"interact\",{\"1\":{\"33\":3}}],[\"interface\",{\"1\":{\"24\":1,\"50\":1,\"87\":1,\"91\":1}}],[\"int\",{\"1\":{\"29\":1,\"36\":1,\"57\":2,\"66\":2,\"67\":4,\"72\":4,\"76\":1,\"92\":10}}],[\"initially\",{\"1\":{\"47\":1}}],[\"initialize\",{\"1\":{\"36\":1,\"37\":1,\"78\":1}}],[\"initialization\",{\"1\":{\"36\":1,\"38\":1}}],[\"init\",{\"1\":{\"27\":2,\"36\":3,\"37\":1,\"38\":1,\"40\":2,\"41\":1,\"93\":1}}],[\"invoking\",{\"1\":{\"24\":3}}],[\"inmemory\",{\"1\":{\"41\":1,\"47\":1,\"91\":1}}],[\"inmemoryresultbackend\",{\"1\":{\"9\":1,\"49\":1}}],[\"inmemorybroker\",{\"0\":{\"9\":1},\"1\":{\"39\":2,\"41\":1,\"47\":3,\"49\":1,\"66\":6,\"67\":1,\"91\":2,\"92\":1}}],[\"in\",{\"0\":{\"1\":1},\"1\":{\"1\":1,\"3\":2,\"4\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"12\":1,\"19\":1,\"20\":1,\"21\":1,\"23\":1,\"24\":1,\"25\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":2,\"31\":1,\"32\":3,\"33\":2,\"34\":1,\"35\":1,\"36\":2,\"37\":2,\"38\":3,\"40\":11,\"41\":3,\"43\":2,\"45\":1,\"46\":2,\"48\":1,\"49\":1,\"50\":5,\"51\":4,\"55\":2,\"56\":1,\"58\":1,\"60\":2,\"61\":1,\"62\":1,\"63\":5,\"66\":5,\"67\":2,\"68\":1,\"71\":2,\"72\":1,\"73\":1,\"74\":2,\"75\":2,\"76\":4,\"78\":1,\"79\":1,\"80\":3,\"81\":2,\"82\":2,\"83\":1,\"84\":4,\"90\":1,\"91\":3,\"92\":1,\"93\":3}}],[\"isn\",{\"1\":{\"47\":1}}],[\"issue\",{\"1\":{\"3\":1,\"63\":1}}],[\"is\",{\"0\":{\"1\":1,\"43\":1},\"1\":{\"3\":1,\"4\":1,\"9\":1,\"10\":1,\"11\":1,\"17\":1,\"21\":1,\"23\":1,\"24\":1,\"25\":1,\"27\":2,\"28\":1,\"30\":1,\"32\":6,\"33\":4,\"34\":1,\"35\":4,\"36\":7,\"37\":1,\"38\":4,\"39\":3,\"40\":4,\"41\":2,\"43\":2,\"46\":1,\"47\":3,\"48\":1,\"49\":1,\"50\":1,\"51\":3,\"52\":1,\"53\":2,\"55\":2,\"56\":6,\"57\":2,\"58\":2,\"60\":5,\"61\":1,\"62\":3,\"63\":8,\"66\":4,\"67\":5,\"68\":1,\"69\":1,\"70\":1,\"72\":1,\"76\":3,\"78\":2,\"79\":2,\"80\":1,\"81\":1,\"82\":1,\"83\":1,\"84\":2,\"85\":1,\"90\":2,\"91\":3,\"93\":2}}]],\"serializationVersion\":2}}")).map(([e,t])=>[e,zt(t,{fields:["h","t","c"],storeFields:["h","t","c"]})]));self.onmessage=({data:{type:e="all",query:t,locale:s,options:n,id:o}})=>{const u=bt[s];e==="suggest"?self.postMessage([e,o,tt(t,u,n)]):e==="search"?self.postMessage([e,o,Z(t,u,n)]):self.postMessage({suggestions:[e,o,tt(t,u,n)],results:[e,o,Z(t,u,n)]})}; //# sourceMappingURL=index.js.map diff --git a/sitemap.xml b/sitemap.xml index 1d5a741..cf2dd44 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,3 +1,3 @@ -https://taskiq-python.github.io/2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/contrib.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/available-components/2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/available-components/brokers.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/available-components/middlewares.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/available-components/result-backends.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/available-components/schedule-sources.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/broker.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/cli.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/middleware.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/result-backend.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/schedule-sources.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/framework_integrations/2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/framework_integrations/faststream.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/framework_integrations/taskiq-with-aiogram.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/framework_integrations/taskiq-with-aiohttp.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/framework_integrations/taskiq-with-fastapi.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/guide/2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/guide/architecture-overview.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/guide/cli.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/guide/dynamic-brokers.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/guide/getting-started.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/guide/message-format.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/guide/scheduling-tasks.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/guide/state-and-deps.html2024-06-11T21:56:27.000Zdailyhttps://taskiq-python.github.io/guide/testing-taskiq.html2024-06-11T21:56:27.000Zdaily \ No newline at end of file +https://taskiq-python.github.io/2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/contrib.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/available-components/2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/available-components/brokers.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/available-components/middlewares.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/available-components/result-backends.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/available-components/schedule-sources.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/broker.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/cli.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/middleware.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/result-backend.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/extending-taskiq/schedule-sources.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/framework_integrations/2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/framework_integrations/faststream.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/framework_integrations/taskiq-with-aiogram.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/framework_integrations/taskiq-with-aiohttp.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/framework_integrations/taskiq-with-fastapi.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/guide/2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/guide/architecture-overview.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/guide/cli.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/guide/dynamic-brokers.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/guide/getting-started.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/guide/message-format.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/guide/scheduling-tasks.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/guide/state-and-deps.html2024-06-14T06:23:41.000Zdailyhttps://taskiq-python.github.io/guide/testing-taskiq.html2024-06-14T06:23:41.000Zdaily \ No newline at end of file